整合标签超市、角色数据库、AI后处理和文生图功能的统一 SillyTavern 扩展插件。
- 打开 SillyTavern 后台管理界面
- 进入扩展设置页面
- 点击"安装扩展"或"从 Git URL 安装"
- 输入 Git URL:
https://github.com/shaochami/chami_tavern-scene-plugin.git - 选择分支:
main(默认) - 点击"安装"完成安装
- 在扩展列表中启用"酒馆场景插件"
-
将插件目录放置到:
SillyTavern-1.14.0/public/scripts/extensions/third-party/chami_tavern-scene-plugin/ -
重启 SillyTavern
-
在扩展设置中找到 "酒馆场景插件"
- 打开悬浮球 - 页面右下角会出现一个悬浮按钮
- 配置生成器 - 点击悬浮球 → 设置 → 图像生成,配置你的 SD/NAI/ComfyUI 地址
- 开始使用 - 点击悬浮球 → 标签超市,开始选择标签
- 打开标签超市
- 选择标签(可多选)
- 点击 "提交到生成器" 按钮
- 图像自动生成并插入聊天
- 打开角色数据库
- 选择或创建角色
- 填写角色特征
- 点击 "应用到生成器"
- 打开标签超市补充场景标签
- 点击 "提交到生成器"
- 先应用角色特征
- 再选择场景/动作标签
- 在预览中查看完整提示词
- 确认后提交生成
- 浏览标签 - 按分类浏览 16,000+ 标签
- 搜索标签 - 支持中文/英文搜索
- 批量选择 - 连续点击多个标签
- 直接提交 - 一键提交到生成器
- 自定义标签 - 添加自己的标签库
- 角色管理 - 创建、编辑、删除角色
- 分类管理 - 按分类组织角色
- 特征提取 - 自动转换为生成标签
- 傻瓜模式 - 自动匹配角色数据
- 导入/导出 - 备份和恢复数据
- 自动汇聚 - 整合所有模块的数据
- 智能去重 - 自动去除重复标签
- 分类管理 - 基础/角色/场景/质量标签分类
- 实时预览 - 查看完整提示词
- 多引擎支持 - SD / NAI / ComfyUI / Other API
- 统一接口 - 所有引擎使用相同的工作流
- 自动插入 - 生成后自动插入聊天
- 队列管理 - 支持批量生成
- 上下文相似图 - 智能保持图片连贯性,使上下文生成的图片互相关联
- 自动追踪角色状态(着装、相貌、画风、场景等)
- 根据前一张图片状态智能调整标签,确保画面衔接顺畅
- 支持角色特征、服饰状况、动作姿态、表情情绪、位置变化的连贯性
- 转场场景自动识别,避免不必要的关联
- 多端同步 - 图片和配置保存到服务器,支持多设备同步
- 图片文件保存到
data/default-user/user/images/tsp-images/目录 其中\default-user更换成自己的用户名 - 每个角色卡的元数据保存到独立的 JSON 文件(
data/default-user/user/files/tsp-config-{角色卡名}.json) - 全局插件配置保存到
data/default-user/user/files/tsp-plugin-settings.json
- 图片文件保存到
- 统一配置 - 所有模块设置集中管理
- 生成器配置 - 各引擎的详细参数
- 数据管理 - 导入/导出/清空数据
- 界面设置 - 悬浮球、自动插入等
- 打开设置 → 图像生成
- 选择模式:Stable Diffusion
- 填写 API 地址:
http://127.0.0.1:7860 - 配置采样器、步数、CFG Scale
- 设置图像尺寸
- 保存设置
- 获取 API Key
- 在设置中填入 API Key
- 选择模型版本
- 配置步数
- 保存设置
如果官方 NAI API 出现 CORS 拦截,可以使用服务器进行中转:
- 在
nginx反代/目录中提供了 Nginx 反代配置 - 将配置部署到你的服务器上
- 在插件设置中将 NAI API 地址改为你的反代地址(如:
https://your-domain.com/nai/) - 详细配置请参考
nginx反代/nginx.conf或nginx反代/nginx-nai-proxy-only.conf
在设置 → 通用中:
-
默认质量标签 - 自动添加到所有提示词
best quality, amazing quality, very aesthetic, masterpiece -
默认负面提示词 - 自动应用到所有生成
lowres, bad anatomy, bad hands, text, error, missing fingers
插件提供了配套的世界书,可以在 AI 生成文章时自动增加图片标签:
-
导入世界书
- 在 SillyTavern 的世界书设置中,导入
配套世界书/文生图配套世界书.json - 确保世界书已启用
- 在 SillyTavern 的世界书设置中,导入
-
使用方法
- 在对话中触发关键词(如"文生图"),AI 会自动在回复中插入图片标签
- 世界书会指导 AI 根据文本内容生成合适的图片描述和标签
- 生成的图片会自动插入到对话中
-
世界书功能
- 自动识别场景并生成图片标签
- 支持多角色场景描述
- 支持 NAI 和 SD 两种格式的标签生成
- 包含详细的标签生成指南和示例
- 在角色数据库中创建角色模板
- 填写常用特征(如:校服、双马尾)
- 需要时一键应用到生成器
- 补充场景标签后生成
- 先选择基础标签(服装、发型)
- 再选择场景标签(背景、光线)
- 最后选择动作/表情标签
- 在预览中确认后生成
- 在标签超市中连续选择多个标签
- 使用"添加到构建器"累积标签
- 最后统一提交生成
- 使用提示词预览查看完整提示词
- 复制到外部工具优化
- 优化后粘贴回生成器
-
利用上下文相似图功能
- 插件会自动追踪前一张图片的角色状态
- 生成新图片时会智能保留一致的着装、相貌、画风
- 场景变化时会自动识别转场,避免不必要的关联
-
角色特征一致性
- 在角色数据库中设置好角色特征
- 应用到生成器后,后续图片会自动保持角色特征一致
- 包括发型、发色、瞳色、体型等基础特征
-
场景连贯性
- 在同一场景中生成的图片会自动保持背景一致
- 角色位置变化会智能追踪和调整
- 转场时会自动重置关联,开始新的场景
解决方案:
- 检查
data/static-tags.json文件是否存在 - 检查文件路径是否正确
- 查看浏览器控制台错误信息
解决方案:
- 确认生成器服务正在运行
- 检查 API 地址是否正确
- 检查防火墙/网络设置
- 查看浏览器控制台错误
解决方案:
- 检查设置中"显示悬浮球"是否启用
- 刷新页面
- 检查浏览器控制台错误
解决方案:
- 使用设置面板的"导出数据"功能定期备份
- 数据存储在 IndexedDB 中,清除浏览器数据会丢失
- 在设置面板的"检测到图像标签时自动生成"下方增加"手机模拟器"开关
- 开启后显示手机悬浮球按钮
- 点击悬浮球打开手机模拟器界面
- 仿真的手机界面设计
- 包含消息、论坛、朋友圈、设置等应用图标
- 论坛和朋友圈功能预留,显示"开发中"
- 显示当前角色卡的所有联系人
- 显示最后一条消息预览和时间
- 点击进入详细聊天界面
- 支持新朋友添加功能
- 左右对话气泡布局
- 用户消息在右侧,角色消息在左侧
- 附带头像显示
- 支持发送消息和接收AI回复
- 可以为角色上传头像
- 支持命名角色
- 头像上传到服务器,确保唯一性
- 配置聊天接口地址
- 配置API密钥
- 配置模型名称
- 配置保存到服务器
- 聊天记录保存到
/user/files/tsp-chat-{角色卡名}.json - 使用IndexedDB进行本地缓存
- 角色卡切换时自动加载对应聊天记录
- 头像保存到服务器
/user/images/tsp-phone-avatars/
- 使用占位符结构,方便后续修改
- 参考ai-processor.js的_getAutoModeChatInsertionMessages()方法
- 支持自定义请求结构
- 筛选AI返回的内容,只保留带姓名与引号的内容
- 格式:角色:"对话内容"
- 自动将长消息分割为多条短消息
- 确保对话简短自然
-
启用手机模拟器
- 打开插件设置
- 找到"手机模拟器"开关
- 开启后显示手机悬浮球
-
配置API
- 打开手机模拟器
- 进入"设置" > "API 配置"
- 填写API地址、密钥和模型名称
- 点击保存
-
添加联系人
- 打开手机模拟器
- 进入"消息" > "新朋友"
- 上传头像(可选)
- 输入角色名称
- 点击添加
-
开始聊天
- 在消息列表中点击联系人
- 输入消息并发送
- 等待AI回复
-
数据隔离
- 每个角色卡的聊天记录独立存储
- 切换角色卡时自动加载对应记录
- 不会加载其他角色卡的聊天记录
-
性能优化
- 使用IndexedDB进行本地缓存
- 按需加载聊天记录
- 避免一次性加载所有数据
-
服务器同步
- 聊天记录自动保存到服务器
- 支持跨设备同步
- 头像上传到服务器
-
扩展性
- 清晰的文件夹结构
- 模块化设计
- 预留论坛、朋友圈等功能接口
可以在以下位置添加新功能:
-
论坛功能
- 在Phone_emulator/js/phone-emulator.js的_openApp方法中添加forum逻辑
- 创建对应的UI组件
-
朋友圈功能
- 在Phone_emulator/js/phone-emulator.js的_openApp方法中添加moments逻辑
- 创建对应的UI组件
-
更多社交功能
- 可以参考现有的消息列表和聊天详情界面
- 在Phone_emulator/css/phone-emulator.css中添加样式
- 确保API配置正确才能正常使用聊天功能
- 头像上传需要服务器支持
- 聊天记录保存在服务器,注意隐私保护
- 切换角色卡时会自动加载对应聊天记录
- ✅ 新增上下文相似图功能
- 智能追踪角色状态(着装、相貌、画风、场景等)
- 根据前一张图片状态自动调整标签,确保画面衔接顺畅
- 支持角色特征、服饰状况、动作姿态、表情情绪、位置变化的连贯性
- 自动识别转场场景,避免不必要的关联
- ✅ 新增多端同步功能
- 图片文件保存到服务器
/user/images/tsp-images/目录 - 角色卡元数据独立保存到
/user/files/tsp-config-{角色卡名}.json - 全局插件配置保存到
/user/files/tsp-plugin-settings.json
- 图片文件保存到服务器
- ✅ 提供 NAI API 反代配置(解决 CORS 问题)
- 支持宝塔面板和普通 Nginx 配置
- 配置位置:
nginx反代/目录
- ✅ 提供配套世界书
- AI 生成文章时自动增加图片标签
- 世界书位置:
配套世界书/文生图配套世界书.json
- ✅ 完成核心框架搭建
- ✅ 实现标签超市与生成器联动
- ✅ 实现角色数据库与生成器联动
- ✅ 实现提示词构建器
- ✅ 实现悬浮球和设置面板
- ✅ 迁移 16,000+ 静态标签数据
- ✅ 完成 SD 生成器基础实现
本项目整合自以下 Tampermonkey 脚本:
- 酒馆文生图插件 v2.58
- 标签超市UI v2.36
- 标签超市数据源 v1.21
- 角色数据库 v1.42
扩展移植作者:ZhaiKer
原作者:茶蘼
如有问题或建议,请查看文档或提交 Issue