目录
1. 角色卡深度定制
如果你已经完成了入门篇的阅读,现在你应该已经能加载社区下载的角色卡并正常对话了。但要让角色真正”活”起来,你需要理解角色卡的内在构造,并学会自己定制。
1.1 角色卡 JSON 结构详解
SillyTavern 的角色卡本质上是 JSON 数据——无论它是独立的 .json 文件还是嵌入在 .png 图片中的 V2 格式。理解这个 JSON 结构是深度定制的第一步。
SillyTavern V2 角色卡(Character Card V2,简称 CCv2)的完整 JSON 结构如下:
{ "spec": "chara_card_v2", "spec_version": "2.0", "data": { "name": "角色名称", "description": "角色的外貌、身份、背景等描述。这是 AI 理解角色外观和基础设定的主要来源。", "personality": "角色的性格特征。AI 会根据这个字段决定回复的语气、用词和态度。", "scenario": "当前所处的场景设定。这为对话提供了一个背景舞台。", "first_mes": "角色的开场白。用户加载角色后看到的的第一句话。", "mes_example": "对话示例。提供一个或多个示范对话,展示角色的说话风格。这是让 AI 理解角色语调最有效的手段。", "creator_notes": "创作者笔记。私有字段,用户可见但 AI 不可见,用于记录灵感或备注。", "system_prompt": "在系统提示中追加的自定义指令。如果你希望 AI 在每次对话中都遵循某些规则,可以写在这里。", "post_history_instructions": "对话开始后追加的指令。每次对话都会在历史记录后注入这段文本,用于维持角色行为一致性。", "tags": ["标签1", "标签2"], "creator": "创作者名称", "character_version": "角色版本号", "extensions": { "world": "关联的世界书名称(可选)", "fav": false, "talkativeness": 0.5, "prompt": "自定义提示词覆盖(可选)", "depth_prompt": { "depth": 4, "role": "system", "prompt": "深度提示词内容" } }, "alternate_greetings": ["可选的开场白2", "可选的开场白3"], "voice": { "name": "voice_name", "mode": "off", "level": 80, "rate": 0 } }}各关键字段详解:
| 字段 | 作用 | 对 AI 行为的影响 | 建议 |
|---|---|---|---|
name | 角色名称 | AI 知道自己的名字 | 保持简洁,不要加后缀 |
description | 外貌和身份描述 | 影响 AI 对自身形象的认知 | 200-500 字,包含视觉特征 |
personality | 性格特征 | 直接影响回复的语气和态度 | 用关键词罗列 + 简短解释 |
scenario | 场景设定 | 约束对话发生的物理/社交环境 | 包含地点、时间、当前状态 |
first_mes | 开场白 | 定调整个对话的起点 | 150-300 字,有场景感和互动 |
mes_example | 对话示例 | 最关键的质量杠杆 | 2-5 轮高质量示范对话 |
system_prompt | 系统指令 | 叠加在全局 system prompt 后 | 用于角色特定的行为约束 |
alternate_greetings | 备用开场白 | 加载角色时可选择不同开场 | 准备 2-3 种不同场景的开场 |
mes_example 的写法(最重要):
很多用户低估了 mes_example 的价值。这个字段在 prompt 中直接作为 few-shot 示例呈现给 AI,比任何抽象描述都更有效。正确写法示范:
<START>{{user}}: 今天天气真不错。{{char}}: (伸了个懒腰,眯起眼睛看向窗外)是啊,阳光暖洋洋的,让人想出去走走。你要一起去吗?<END>每段对话用 <START> 和 <END> 包裹,角色用 {{char}}、用户用 {{user}} 占位。2-3 段示范就能让 AI 迅速掌握角色的说话节奏和风格。
depth_prompt 字段:
这是 CCv2 提供的一个高级控制机制。你可以设置一个”深度提示词”,它会在对话达到一定轮次后开始注入:
"depth_prompt": { "depth": 4, "role": "system", "prompt": "你已经和用户相处了一段时间,你对用户产生了深厚的感情,但你在努力克制。"}depth 值表示在对话超过这个轮次后开始生效,用于表达角色随关系发展而产生的性格变化。
1.2 从 Web UI 创建原创角色卡
在入门篇中你学会了导入现有角色卡。现在我们来创建一个完全原创的角色。
操作步骤:
- 点击左侧栏的 角色管理 图标(两个人形头像)
- 点击 创建角色 按钮
- 填写以下信息:
基本信息标签页:
| 字段 | 填写说明 |
|---|---|
| 姓名 | 角色的名称 |
| 描述 | 角色的外貌、身份等,支持 Markdown |
| 性格 | 性格关键词,建议用逗号分隔的短语 |
| 开场白 | 角色的第一句话(最重要!用心写) |
| 场景 | 当前场景设定 |
| 对话示例 | 示范对话,格式见上文说明 |
| 标签 | 便于分类检索的标签 |
头像设置:
- 点击头像区域上传图片
- 支持裁剪和缩放
- 建议 512x512 像素以上,PNG 格式支持透明背景
高级标签页:
- Creator’s Notes:你的私人笔记,AI 看不到
- System Prompt:追加系统指令
- Post-History Instructions:对话后的持续指令
- Alternate Greetings:添加多条备用开场白,角色加载时可选
- 点击 保存,新角色即出现在角色列表中
编写高质量开场白的技巧:
一个好的开场白应该包含三个要素:角色状态 + 环境描写 + 互动邀请。
较差的: “你好,我是小雨。”
较好的: “雨滴顺着伞沿滑落,在石板路上溅起细碎的水花。小雨站在咖啡馆的屋檐下,朝你招了招手——‘这里这里!快过来,位置我已经占好了。’”
前者只是一个自我介绍,后者则建立了场景、情绪和互动入口。
1.3 角色卡嵌入世界书与自定义背景
嵌入世界书:
在角色卡的 extensions.world 字段中,可以指定一个已有的世界书名称。当加载这个角色时,对应的世界书会自动激活:
"extensions": { "world": "中土世界设定", ...}你也可以在角色编辑界面的 扩展 区域直接关联世界书——从下拉列表中选择即可。
关联世界书后,该世界书中的所有条目都会在对话中生效(触及关键词时自动注入)。这比在 description 中硬编码世界观描述高效得多,因为世界书只在被触发时才消耗 token。
自定义聊天背景:
为角色设置独特的聊天背景,可以大幅增强沉浸感:
- 进入角色编辑界面
- 找到 聊天背景 设置区域
- 上传一张背景图片(建议 1920x1080 以上)
- 设置背景模糊程度(Blur)和暗度(Darken)
- 保存后,该角色的所有对话都会使用此背景
背景图片存放在 ./data/user/backgrounds/ 目录下(手动安装)或对应数据卷中(Podman 安装)。
1.4 Character Expressions 配置
Character Expressions(角色表情/立绘切换)让角色在对话中根据情绪或场景自动切换图像。这是目前社区 CCv2+ 的主流标配功能。
文件命名规则:
表情立绘通过文件命名约定来工作。你的角色图片目录结构应当如下:
./data/user/characters/你的角色名/├── base.png # 基础立绘(默认显示)├── happy.png # 开心├── sad.png # 悲伤├── angry.png # 愤怒├── surprised.png # 惊讶├── blush.png # 害羞/脸红├── cry.png # 哭泣├── smile.png # 微笑└── custom.png # 自定义表情(可选)截图辅助: 建议将角色卡目录的文件夹截图保存,可以清晰看到表情文件命名结构和对应关系。
在角色卡中配置表情:
在角色编辑界面或直接编辑 JSON 的 extensions 区域:
"extensions": { "expressions": { "happy": "happy.png", "sad": "sad.png", "angry": "angry.png", "surprised": "surprised.png", "blush": "blush.png", "cry": "cry.png", "smile": "smile.png", "custom": "custom.png" }}表情切换触发方式:
- 手动触发:在聊天输入框上方点击表情图标,手动选择表情
- AI 自动触发:当启用 Expression Image 扩展后,SillyTavern 会分析 AI 的回复内容,自动匹配对应的表情图像。AI 在回复中加入
*表情名*(如*blush*)即可触发切换,或在扩展设置中选择”根据回复情感分析自动匹配” - 快捷键:在扩展设置中可以为常用表情绑定快捷键
表情图片规格建议:
- 尺寸:建议与基础立绘一致(如 512x512 或 1024x1024)
- 格式:PNG(支持透明背景)
- 构图:保持角色位置一致,仅改变面部表情——否则切换时会有”跳跃感”
- 工具:可以使用 ComfyUI 配合 Image-to-Image + ControlNet(OpenPose)批量生成统一构图的不同表情(见第 4 章的 ComfyUI 集成)
2. 世界书
世界书(Worldbook / Lorebook)是 SillyTavern 最强大的功能之一。它解决了角色扮演中的一个核心矛盾:世界观信息太多,但 AI 的上下文窗口有限。
2.1 工作原理
世界书的核心机制是条件触发:
用户输入 ──→ SillyTavern 扫描所有世界书条目 │ ├── 如果未触发任何条目 → 不注入额外信息 │ (节省上下文) │ └── 如果触发条目关键词 ──→ 将该条目的内容注入到 prompt 中 (仅在需要时消耗 token)为什么世界书有用?
假设你正在玩一个中世纪奇幻角色。如果你把整个世界观(七个王国、三种魔法体系、百年战争历史、数十个地名人名)全部塞进角色卡的 description 字段,会发生两个问题:
- 浪费上下文窗口:每次对话无论是否涉及这些信息,AI 都要”记住”它们
- 信息稀释:世界观信息挤占了角色自身设定的空间,导致角色行为一致性下降
世界书完美解决了这个问题——只在需要时才注入相关信息。用户提到”龙石城”时,世界书自动注入这座城市的地理位置、历史背景和当前状态。用户提到”冰霜魔法”时,世界书注入该魔法体系的规则和使用限制。
注入位置:
世界书条目通常注入在 prompt 的角色描述区域之后、对话历史之前。具体位置可以通过 SillyTavern 的预设管理中的 Lorebook 注入位置 设置调整。
2.2 创建第一本世界书
操作步骤:
- 点击左侧栏的 世界书 图标(一本书的图案)
- 点击 创建世界书 按钮
- 填写基本信息:
| 字段 | 说明 |
|---|---|
| 名称 | 世界书的名称,如”中土世界设定” |
| 描述 | 可选,给自己看的备注 |
| 扫描类型 | 选择条目的触发方式(详见 2.3 节) |
- 点击 保存,世界书创建完成
- 在空白世界书中点击 添加条目 开始创建具体内容
启用世界书:
创建完成后,需要为世界书分配角色或对话:
- 全局启用:在设置中将世界书设为”全局世界书”,对所有角色生效
- 角色绑定:在角色卡的
extensions.world字段指定世界书名称,加载该角色时自动激活 - 手动切换:在聊天界面点击世界书图标,在当前对话中手动启用或禁用
截图辅助: 建议截取世界书列表页和条目编辑弹窗的界面图,标注关键设置项的位置。
2.3 条目设计详解
每个世界书条目包含触发条件和内容两大组成部分。理解触发机制是设计高质量世界书的关键。
关键词触发 vs 递归触发
关键词触发(Primary / Secondary Keys):
这是最常用的触发方式。条目维护一个关键词列表,当用户或 AI 的输入中出现这些关键词时,条目被激活。
条目名称: 龙石城主要关键词: [龙石城, 龙石, 城堡, Dragonstone]次要关键词: [坦格利安, 龙, 火山]概率: 100%- 主要关键词(Primary Keys):出现即触发(可配置概率)
- 次要关键词(Secondary Keys):出现时按概率触发
- 概率设置:如果不想每次提到都触发,可以设置触发概率(如 30%)
递归触发(Recursive):
启用递归触发后,已经注入到 prompt 中的世界书内容本身也会被扫描触发新的条目。这适用于需要”连锁反应”的场景——提到一个地名,自动引出该地的人物,再引出相关事件。
注意: 递归触发需要谨慎使用。设置不当可能导致连锁注入失控、瞬间耗光上下文窗口。建议递归深度限制在 2-3 层以内。
权重与优先级
当多个条目同时被触发时,权重(Weight) 决定了注入顺序:
| 权重值 | 含义 | 使用场景 |
|---|---|---|
| 10(最高) | 绝对优先级 | 核心剧情线索、当前任务目标 |
| 5(默认) | 标准条目 | 大多数常规设定 |
| 1(最低) | 低优先级 | 背景细节、非关键信息 |
权重高者排在 prompt 的更前面。如果多个条目权重相同,按 添加顺序 排列。
深度/层级控制
深度(Depth) 控制条目内容注入到上下文 prompt 中的位置:
- Depth = 0:最靠前(靠近角色卡定义处,AI 首先”看到”这些信息)
- Depth 越大:越靠后(远离角色卡,但仍在前置上下文区域内)
低 Depth 的世界设定对角色影响更大,高 Depth 的补充信息在后排填充。这用于设计信息优先级——核心设定(世界法则、种族特征)放低 Depth,次要细节(地名来源、历史典故)放高 Depth。
层级(Order / Priority within same depth):
同一深度层级内,Order 值决定条目的排列顺序。SillyTavern 注入时按 Depth 从小到大、同一 Depth 内按 Order 从小到大的顺序排列内容。
渐进式展开 Tips: 虽然 Depth 本身不提供”对话轮次门控”(那需要配合扩展或角色卡 scripting),但可以通过关键词设计实现类似效果——初期场景用通用关键词(如”森林”),深入后的线索用特定关键词(如”远古圣殿”),这样信息随着剧情推进自然解锁。
2.4 实践案例:奇幻世界观
下面为一个名为”艾兰西亚”的虚构奇幻世界设计一组完整的世界书条目。Depth 值控制注入位置(0=靠近角色卡,越高越靠后),概率列控制次要关键词的触发几率(主要关键词始终 100% 触发)。
世界书名称: 艾兰西亚世界观
条目 1:世界概览(Depth=0, Weight=5)
| 字段 | 内容 |
|---|---|
| 主要关键词 | 艾兰西亚, 大陆, 世界 |
| 概率 | 100% |
| 内容 | 艾兰西亚是一片被远古魔法塑造的大陆,由五个王国组成。千年前的精灵战争在这片土地上留下了深重的痕迹,被称为”裂痕”的神秘能量裂隙散布在大陆各处。 |
条目 2:银月森林(Depth=0, Weight=5)
| 字段 | 内容 |
|---|---|
| 主要关键词 | 银月森林, 精灵, Sylvan |
| 次要关键词 | 森林, 月亮, 古老 |
| 概率 | 80% |
| 内容 | 银月森林位于艾兰西亚东部,是精灵族最后的庇护所。这里的树木通体银白,在月光下会散发微光。森林深处隐藏着通往远古精灵圣殿的入口。精灵女王艾莉丝特拉在此统治,她对人类的态度微妙而谨慎。 |
条目 3:裂痕能量(Depth=2, Weight=5)
| 字段 | 内容 |
|---|---|
| 主要关键词 | 裂痕, 能量裂隙, 虚空 |
| 概率 | 100% |
| 内容 | 裂痕是精灵战争遗留的能量裂隙,散发出紫色的不稳定魔法能量。接触裂痕会导致生物异变或获得不可控的魔法能力。王室派出的”裂痕学者”团队正在研究封闭裂痕的方法。裂痕正在以每年约半米的速度扩张。 |
条目 4:暗影议会(Depth=5, Weight=10)
| 字段 | 内容 |
|---|---|
| 主要关键词 | 暗影议会, 影会, Shadow Council |
| 次要关键词 | 阴谋, 秘密组织, 幕后 |
| 概率 | 50% |
| 内容 | 暗影议会是一个渗透了五大王国高层的秘密组织,由十二名”影主”领导。他们的目标是利用裂痕的能量打破远古封印,释放被囚禁的虚空之主。议会成员的身份连国王们都不知晓。 |
条目运作示意:
当用户第一次问”艾兰西亚的人如何看待魔法”时——条目 1(世界概览)触发,注入世界基本信息。当用户说”我走进银月森林”——条目 2 触发,注入森林描述。当对话深入(超过 5 轮),用户提到”有人在暗中操纵一切”——条目 4 以 50% 的概率触发,引入暗影议会。
这就是世界书的精髓——随着对话自然推进,世界信息逐层展开,而不是一次性地把所有设定塞给 AI。
3. 高级对话控制
3.1 Author’s Note 与 Character Note
这两个功能都允许你在 prompt 中注入自定义文本,但它们的注入位置和作用范围不同。
Author’s Note(作者注释)
注入位置: 紧贴在用户最新输入之前,对话历史的末尾。
作用: 在每次生成回复时,为 AI 提供一个”当前焦点”的提示。适合用于临时引导剧情方向。
使用场景:
- 希望 AI 在接下来的回复中侧重某个情绪:“(角色最近失去了亲人,她的笑容底下藏着悲伤)”
- 引导故事走向:“(窗外传来了马蹄声,似乎有重要的客人到访)”
- 临时调整行为:“(角色今天心情很好,比平时更爱开玩笑)”
设置方式:
- 点击输入框上方的 人形+铅笔 图标(Author’s Note 按钮)
- 在弹窗中输入注释文字
- 设置 注入频率(建议 1-4 条消息注入一次)
- 点击保存
配置建议:
注释位置: 在对话历史之后注入频率: 2 # 每 2 条消息注入一次角色深度: 4 # 对话 4 轮后才开始生效Character Note(角色注释)
注入位置: 角色描述区域(与角色卡的 description 和 personality 同区域)。
作用: 持续影响角色对自身的认知。适合用于定义角色的固定特征。
使用场景:
- 角色隐藏的秘密:“{{char}} 实际上是一名卧底,但绝不能透露这个身份”
- 角色的身体特征:“{{char}} 左眼失明,听力异常敏锐”
- 长期目标:“{{char}} 正在寻找一本失落的魔法书”
设置方式:
- 在角色编辑界面找到 Character Note 字段(也可在对话界面右侧面板中找到)
- 输入注释文本(支持
{{char}}和{{user}}占位符) - 设置 插入深度(从第几轮对话开始生效)
- 保存
两者的区别总结:
| 维度 | Author’s Note | Character Note |
|---|---|---|
| 注入位置 | 用户消息之前(对话历史末尾) | 角色描述区域 |
| 影响范围 | 临时、当前焦点 | 持续、角色认知 |
| 典型长度 | 短(1-3 句) | 中(1-5 句) |
| 更新频率 | 经常修改 | 设置后少改 |
| 最佳用途 | 引导剧情走向 | 维持角色一致性 |
3.2 向量化记忆(Vector Storage)
SillyTavern 的向量化记忆功能是解决”AI 长期记忆不足”痛点的主要方案。它通过 ChromaDB 将对话内容转换为向量(embedding),在需要时检索相关片段重新注入 prompt。
工作原理
对话进行 ──→ SillyTavern 将每条消息转为向量 ──→ 存入 ChromaDB │ └── 新消息到来时 ──→ 检索 ChromaDB 中的相关历史 │ └── 将检索到的相关片段注入 prompt安装 ChromaDB
方式 A:Podman 安装(推荐)
# 拉取 ChromaDB 镜像podman pull chromadb/chroma:latest
# 创建数据卷podman volume create chromadb-data
# 启动 ChromaDB(注意使用 8090 端口,避免与 SillyTavern 的 8000 端口冲突)podman run -d \ --name chromadb \ -p 8090:8000 \ -v chromadb-data:/chroma/chroma \ chromadb/chroma:latest
# 验证运行podman logs chromadb# 看到 "chromadb" 相关启动日志即成功(例如 "Uvicorn running on http://0.0.0.0:8000")方式 B:pip 安装(适合手动部署)
# 创建虚拟环境python -m venv chroma-envsource chroma-env/bin/activate # Windows: chroma-env\Scripts\activate
# 安装 ChromaDBpip install chromadb
# 启动服务(使用 8090 端口避免冲突)chroma run --host 0.0.0.0 --port 8090在 SillyTavern 中配置
- 进入 扩展管理 → Vector Storage
- 启用 启用向量存储(Enable Vector Storage)
- 配置连接参数:
| 参数 | 值 |
|---|---|
| API 地址 | http://127.0.0.1:8090(Podman 使用 http://host.containers.internal:8090) |
| 集合名称 | sillytavern-memories(可自定义) |
| Embedding 模型 | all-MiniLM-L6-v2(默认,可选 all-mpnet-base-v2 更精确但更慢) |
| 检索数量 | 3-5(每次检索几条相关记录) |
| 相似度阈值 | 0.7(低于此值不注入,减少噪音) |
- 点击 连接,测试连通性
- 成功后,对话中的消息会自动被索引
注意事项:
- ChromaDB 首次运行时需要下载 embedding 模型(约 80MB)
- 向量化记忆会增加每次 API 请求的 token 消耗(注入检索到的历史片段)
- 如果使用 Podman 安装,SillyTavern 需要通过网络访问 ChromaDB。Linux 下使用
host.containers.internal,Windows/Mac Podman Desktop 使用host.docker.internal
效果说明
启用向量化记忆后,AI 能”想起”更早的对话细节:
- 之前:50 轮对话后,AI 可能忘记第 3 轮提到的关键物品
- 之后:即使到了 200 轮,AI 仍能准确 recall 早期设定
但不要过度依赖——向量检索不是完美的。如果检索到的内容与当前对话不相关,反而可能混淆 AI。建议检索数量设为 3-5,相似度阈值不低于 0.7。
3.3 多角色群聊
群聊功能让你创建包含多个角色的房间,体验多角色互动的角色扮演。
创建群聊房间
- 点击左侧栏的 对话管理 → 创建群聊
- 为群聊命名
- 从角色列表中选择加入的角色(至少 2 个)
- 点击 创建
添加角色与消息路由
房间创建后,你可以在房间设置中:
- 添加/移除角色:随时调整房间的角色阵容
- 设置角色出场顺序:决定角色在输入框中出现的默认顺序
- 角色发言模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 轮流发言 | 所有角色按序轮流回复 | 餐桌对话、会议场景 |
| 仅指定角色 | 只让指定角色回复 | 引导特定角色说话 |
| 自动选择 | AI 根据上下文判断谁应该说话 | 自由互动场景 |
消息路由规则:
在多角色对话中,你可以在消息中指定目标角色:
@艾琳 你昨天说的那件事,现在可以告诉我详情了吗?这样只有被 @ 的角色会回复。如果不指定,SillyTavern 会根据当前对话焦点自动选择回复角色——通常是与上一条消息相关的角色。
调整角色回复权限: 在群聊设置中,你可以勾选哪些角色可以主动说话、哪些角色只在被 @ 时才回应。这样能避免”所有角色同时抢话”的混乱局面。
群聊性能提示
- 群聊的多角色设定会占用更多上下文 token(每个角色的描述都要注入)
- 建议群聊角色不超过 4-5 个,否则上下文消耗过快
- 角色描述长的角色,考虑使用世界书替代部分设定
3.4 角色分组与场景切换
角色分组允许你为不同角色设置”群组”,方便在类似场景中快速切换:
- 在角色管理中创建 分组
- 将相关角色拖入同一分组(如”校园组”、“奇幻组”、“现代都市组”)
- 切换分组即可快速过滤角色列表
场景切换功能让你在同一个对话中切换地点或时间:
- 在对话界面中点击 场景管理
- 选择一个预设场景(或创建新场景)
- 场景切换会自动更新
scenario字段 - 下次 AI 回复将基于新场景生成
场景可以与角色分组联动——例如”校园组”默认关联”教室”和”天台”两个场景,“奇幻组”关联”森林”和”城堡”。
4. 扩展与插件系统
SillyTavern 的扩展系统是其生态的核心。通过扩展,你可以为角色扮演添加图片生成、语音输出、实时翻译、网络搜索等功能。
4.1 扩展管理界面概览
扩展管理入口位于左侧栏的 拼图图标(扩展中心)。
界面主要区域:
- 已安装扩展列表:显示所有可用的扩展,每个扩展有独立的开关和设置面板
- 扩展设置:点击扩展名称展开详细配置选项
- 添加扩展:从社区下载或从本地加载扩展包
扩展通常以 JavaScript 文件(.js)形式放在 ./plugins/ 目录下(手动安装),或通过 Podman 的数据卷挂载。撰写本文时,SillyTavern 的内置扩展已经覆盖了大多数常见需求,大部分功能开箱即用。
4.2 ComfyUI 集成
ComfyUI 是一个基于节点工作流的 Stable Diffusion 图像生成工具。SillyTavern 的 ComfyUI 扩展让 AI 可以”看见”和”创造”图像。
ComfyUI 安装
方式 A:Podman 安装(推荐)
# 拉取 ComfyUI 镜像podman pull ghcr.io/comfyanonymous/comfyui:latest
# 创建数据目录和模型目录mkdir -p ~/comfyui/modelsmkdir -p ~/comfyui/outputmkdir -p ~/comfyui/custom_nodes
# 启动 ComfyUIpodman run -d \ --name comfyui \ -p 8188:8188 \ -v ~/comfyui/models:/workspace/ComfyUI/models \ -v ~/comfyui/output:/workspace/ComfyUI/output \ -v ~/comfyui/custom_nodes:/workspace/ComfyUI/custom_nodes \ --device nvidia.com/gpu=all \ ghcr.io/comfyanonymous/comfyui:latest注意:
--device nvidia.com/gpu=all仅在安装了 NVIDIA Container Toolkit 的 Linux 系统上生效。Windows/macOS 的 Podman 目前不支持 GPU 透传,建议在 Linux 上部署 ComfyUI。
方式 B:手动安装(跨平台兼容)
# 克隆仓库git clone https://github.com/comfyanonymous/ComfyUI.gitcd ComfyUI
# 安装依赖pip install -r requirements.txt
# 下载模型(以 SDXL 为例)# 将 SDXL 基础模型放到 models/checkpoints/ 目录
# 启动python main.py --listen 0.0.0.0 --port 8188模型下载: SDXL 基础模型可从 Hugging Face 或 CivitAI 下载。将
.safetensors文件放入models/checkpoints/目录。
基本文生图工作流
以下是一个完整的 ComfyUI 工作流 JSON,实现 SDXL 文生图功能。将此 JSON 通过 ComfyUI 的 Load 按钮加载:
{ "3": { "class_type": "KSampler", "inputs": { "seed": 42, "steps": 20, "cfg": 7, "sampler_name": "euler", "scheduler": "normal", "denoise": 1, "model": ["4", 0], "positive": ["6", 0], "negative": ["7", 0], "latent_image": ["5", 0] } }, "4": { "class_type": "CheckpointLoaderSimple", "inputs": { "ckpt_name": "sd_xl_base_1.0.safetensors" } }, "5": { "class_type": "EmptyLatentImage", "inputs": { "width": 1024, "height": 1024, "batch_size": 1 } }, "6": { "class_type": "CLIPTextEncode", "inputs": { "text": "", "clip": ["4", 1] } }, "7": { "class_type": "CLIPTextEncode", "inputs": { "text": "", "clip": ["4", 1] } }, "8": { "class_type": "VAEDecode", "inputs": { "samples": ["3", 0], "vae": ["4", 2] } }, "9": { "class_type": "SaveImage", "inputs": { "filename_prefix": "ComfyUI", "images": ["8", 0] } }}加载后在节点编辑界面填入正面提示词(positive)和负面提示词(negative),即可运行。SillyTavern 的 ComfyUI 集成扩展会自动替换 prompt 节点中的文本,因此你只需要在 ComfyUI 中配好其他固定参数即可。
截图辅助: 建议截取 ComfyUI 节点编辑界面和运行成功后的图像输出界面,标注输入/输出节点和关键参数位置。
SillyTavern 端 API 连接配置
- 在 SillyTavern 的 扩展管理 中找到 ComfyUI 扩展并启用
- 配置连接参数:
| 参数 | 值 |
|---|---|
| API URL | http://127.0.0.1:8188(同一台机器) |
| Workflow JSON | 上传上面创建的文生图工作流 JSON |
| 正面提示词节点 | 输入工作流中 CLIPTextEncode 的节点 ID(上面例子中是 6) |
| 负面提示词节点 | 输入工作流中对应节点的 ID(上面例子中是 7) |
| 图片保存路径 | 可选,默认使用 ComfyUI 的输出目录 |
- 点击 连接测试 验证连通性
- 保存配置
触发方式
方式 1:手动触发角色立绘
在对话中选择角色消息,通过扩展菜单中的”生成立绘”按钮触发。SillyTavern 会将角色描述和当前对话上下文组装成 prompt 发送给 ComfyUI。
方式 2:自动生成场景插图
在扩展设置中启用 自动插图。当对话进入新场景时(如用户说”我们走进了一座黑暗的城堡”),SillyTavern 自动触发 ComfyUI 生成场景插图并显示在对话中。
方式 3:表情包批量生成
利用 ComfyUI 的批处理能力,结合 ControlNet(OpenPose + Canny),可以一次性生成同一角色不同表情的立绘集:
工作流:基础角色图 → ControlNet OpenPose → 不同表情 prompt → 批量输出这要求 ComfyUI 中预先配置好带有 ControlNet 的工作流,并设置 batch_size 为需要生成的表情数量。
注意事项
- ComfyUI 图像生成需要 GPU,集成显卡(iGPU)通常无法使用
- 生成一张 1024x1024 的 SDXL 图片在 RTX 4060 上约需 5-8 秒(20 步),实际速度受采样器、步数和 batch size 影响
- 批量生成表情包可能需要几分钟,建议在不使用时关闭自动触发
4.3 TTS 文字转语音
TTS(Text-to-Speech)扩展让角色的回复可以”读出来”,大幅增强沉浸感。2026 年有多种方案可选,下表汇总对比:
| 方案 | 部署方式 | 中文效果 | 语种 | 是否需要 GPU | 声音质量 | 推荐度 |
|---|---|---|---|---|---|---|
| Edge TTS | 云服务(免费) | 优 | 多语种(70+语言) | 无需 | Microsoft 神经网络语音,自然流畅 | ★★★★★ |
| XTTS-v2 | 本地 | 良 | 17 语种 | 推荐 4GB+ | 少数据声音克隆,可微调 | ★★★★ |
| GPT-SoVITS v2 | 本地 | 优(中文最强者) | 中/英/日/韩 | 推荐 6GB+ | 少数据克隆,中文表现顶级 | ★★★★ |
| F5-TTS | 本地 | 良 | 多语种 | 推荐 8GB+ | 端到端架构,自然度高 | ★★★ |
| CosyVoice 2 | 本地 | 优 | 中/英 | 推荐 6GB+ | 阿里通义团队出品,中文优秀 | ★★★★ |
推荐方案分析:
首选:Edge TTS(零配置、零成本)
Edge TTS 使用微软 Azure 的神经网络 TTS 服务,完全免费,无需注册 API Key,无需 GPU。它通过 Edge 浏览器的语音 API 调用,SillyTavern 中安装对应扩展后填入语音偏好即可。
SillyTavern 扩展配置: 提供商: Edge TTS 语音: zh-CN-XiaoxiaoNeural(中文女声,推荐) zh-CN-YunxiNeural(中文男声) 语速: 1.0(0.5-2.0 可调) 音调: 1.0(0.5-2.0 可调)如果你需要自定义角色声线(中文):GPT-SoVITS v2
GPT-SoVITS v2(GitHub)是目前中文语音克隆效果最好的开源方案。只需 10-30 秒的语音样本,就能复刻出角色独有的声线。
# GPT-SoVITS v2 安装(Podman,社区维护镜像)podman pull breakstring/gpt-sovits:latest
podman run -d \ --name gpt-sovits \ -p 9870:9870 \ -v ~/gpt-sovits-data:/workspace/data \ --device nvidia.com/gpu=all \ breakstring/gpt-sovits:latest
# 启动后访问 http://localhost:9870 进入 Web UI# 在 TTS 推理页面加载角色语音样本并生成如果你需要多语种 + 简单使用:XTTS-v2(注意维护状态)
XTTS-v2(原 Coqui TTS,2024 年后项目已归档)支持 17 种语言。社区维护的 fork 仍在更新,但中文效果不如 GPT-SoVITS 自然。如果主要用于中文,优先选择 GPT-SoVITS。
# XTTS 原始安装(仓库已归档,可能无法直接用 pip 安装最新依赖)pip install TTStts-server --model_name tts_models/multilingual/multi-dataset/xtts_v2在 SillyTavern 中配置 TTS:
- 打开 扩展管理 → TTS
- 启用 Text-to-Speech 扩展
- 选择提供商(Edge TTS / XTTS / GPT-SoVITS / SillyTavern TTS 等)
- 填写 API 地址(本地 TTS 服务)或选择语音(Edge TTS)
- 设置语言和语音偏好
- 保存后,每条角色回复都会自动朗读
4.4 实时翻译扩展
实时翻译扩展用于跨语言角色扮演场景——角色说日语,你看中文;或者你发中文,角色回复英文。
配置步骤:
- 在 扩展管理 中启用 Translate 扩展
- 选择翻译引擎:
| 引擎 | 是否需要 API Key | 免费额度 | 推荐场景 |
|---|---|---|---|
| Google Translate | 无需 | 完全免费 | 大多数场景,够用 |
| DeepL | 需注册 | 每月 50 万字 | 需要更高质量的翻译 |
| LibreTranslate | 自托管 | 免费 | 隐私场景,自部署 |
| OpenAI Translate | 需 OpenAI API Key | 按量计费 | 需要上下文感知的翻译 |
- 设置源语言和目标语言
- 选择翻译范围:
- 仅角色回复:用户不翻译,角色回复翻译
- 双向翻译:用户和角色的消息都翻译
- 自动检测:自动检测源语言并翻译成目标语言
典型配置示例(Google Translate,中文用户看日文角色):
翻译引擎: Google Translate源语言: 日语(自动检测)目标语言: 中文(简体)翻译范围: 仅角色回复显示模式: 双语对照(原文 + 翻译)启用双语对照模式后,角色回复会同时显示原文和翻译,方便你学习语言也便于校验翻译质量。
4.5 Web Search 扩展
Web Search 扩展让 AI 能够搜索互联网获取最新信息,突破了模型知识截止日期的限制。
前提条件: 需要一个搜索 API 的 Key。推荐方案:
| 搜索引擎 | API 接入 | 费用 | 说明 |
|---|---|---|---|
| DuckDuckGo | 无需 API Key | 免费 | 无需注册,直接可用,但有速率限制 |
| Google Custom Search | API Key | 前 100 次/天免费 | 需创建 Programmable Search Engine |
| SearXNG | 自托管 | 免费 | 元搜索引擎,隐私优先 |
配置步骤:
- 在 扩展管理 中启用 Web Search
- 选择搜索引擎:
- 选择 DuckDuckGo(最简单,零配置)
- 或 Google(需填写 Search Engine ID 和 API Key)
- 或 SearXNG(需填写自托管实例 URL)
- 设置搜索触发方式:
- 自动:AI 判断需要时自动搜索
- 手动:用户在消息中使用
/search 关键词触发 - 混合(推荐):AI 建议搜索,用户确认后执行
- 设置搜索结果注入数量(建议 3-5 条)
使用场景:
- 实时信息:问 AI”今天天气如何”时搜索天气预报
- 设定考据:基于真实历史/地理的角色扮演中搜索细节
- 知识问答:用户询问真实世界的事实性信息
注意: 启用 Web Search 后,API 调用会变慢(网络请求耗时),且搜索结果的 token 消耗需要计入上下文。建议只在需要实时信息的场景中开启。
5. 自托管本地模型
5.1 为什么自托管
在入门篇中,我们推荐新手使用 DeepSeek API 起步。当你深入使用 SillyTavern 后,自托管本地模型有几个独特的优势:
隐私:
- 所有对话数据完全在本地,不会离开你的机器
- 适合涉及敏感话题、原创世界观或商业机密的角色扮演
免费:
- API 调用虽便宜(DeepSeek 几分钱一次完整对话),但高频使用月消费可达数十至上百元
- 本地模型一次硬件投入,永久使用
无内容审核:
- API 提供商通常有内容政策(Claude 最为严格)
- 本地模型没有任何审查限制
离线可用:
- 不需要互联网连接
- 飞机上、偏远地区、网络故障时均可使用
劣势(需接受):
- 需要一定硬件投入(显卡显存)
- 中文角色扮演质量暂时不及顶尖 API 模型
- 配置和维护需要一定技术能力
5.2 Ollama 安装
Ollama 是目前最便捷的本地模型运行工具,支持 Windows、macOS、Linux 三平台。
安装
Linux(推荐,性能最佳):
curl -fsSL https://ollama.com/install.sh | sh
# 验证安装ollama --version# 示例输出:ollama version 0.9.x 或更高macOS:
从 ollama.com/download 下载 macOS 安装包(.dmg),或使用 Homebrew:
brew install ollamaWindows:
从 ollama.com/download 下载 Windows 安装包(.exe),双击安装。Ollama Windows 版本内置了 WSL2 后端。
拉取模型
Ollama 使用 ollama pull 命令下载模型。以下是最常用的模型及其大小:
# Qwen3 系列(2026 年推荐)ollama pull qwen3:8b # ~4.7GB(Q4_K_M 量化)ollama pull qwen3:14b # ~8.2GBollama pull qwen3:32b # ~19GBollama pull qwen3:235b-a2b # ~137GB(需要多 GPU)
# Qwen2.5 系列(稳定兼容)ollama pull qwen2.5:7b # ~4.2GBollama pull qwen2.5:14b # ~8.0GBollama pull qwen2.5:32b # ~18GBollama pull qwen2.5:72b # ~42GB
# DeepSeek 开源版ollama pull deepseek-r1:14b # ~8.0GB(Q4_K_M)ollama pull deepseek-r1:32b # ~19GBollama pull deepseek-r1:70b # ~42GB
# 其他值得尝试的模型ollama pull llama3.1:8b # ~4.5GBollama pull llama3.1:70b # ~40GBollama pull mistral:7b # ~4.1GB模型大小说明: 以上大小是量化后的 GGUF 模型体积。Ollama 默认使用 Q4_K_M 量化级别,在质量和占用之间达到了较好的平衡。
5.3 推荐中文模型
截至 2026 年 5 月,以下是在 SillyTavern 上中文角色扮演表现最佳的本地模型:
第一梯队(推荐首选):Qwen3 系列
Qwen3 是阿里云于 2025 年 4 月发布的最新大模型系列,中文能力在开源模型中处于顶尖水平:
| 模型 | 参数量 | 最低显存 | 中文 RP 质量 | 特点 |
|---|---|---|---|---|
| Qwen3-8B | 8B | 6GB | 良好 | 速度快,入门首选 |
| Qwen3-14B | 14B | 10GB | 优秀 | 性价比最优选 |
| Qwen3-32B | 32B | 20GB | 优秀 | 接近闭源模型水平 |
| Qwen3-235B-A2B | 235B (A2B) | 48GB (4-bit) | 顶级 | 混合专家架构,需多 GPU |
A2B 说明: Qwen3-235B-A2B 使用 MoE(Mixture of Experts)架构,每次推理只激活约 40B 参数,但总参数 235B。效果接近同规模密集模型,但推理速度快得多。
第二梯队:Qwen2.5 系列
Qwen2.5 虽然已被 Qwen3 取代,但作为上一个稳定版本仍然广泛使用,且 7B/14B 等小模型兼容性更好:
- Qwen2.5-14B-Instruct:入门级中文模型,8-10GB 显存即可运行
- Qwen2.5-32B-Instruct:性价比较高,需要 20GB 左右显存
- Qwen2.5-72B-Instruct:高质量模型,需要 48GB 显存(常见于 2x3090/4090 或单张 A6000)
第三梯队:DeepSeek 开源版
DeepSeek R1 的开源权重系列在推理和创意写作方面表现出色:
- DeepSeek-R1-Distill-Qwen-32B:经过 R1 蒸馏,推理能力强,中文 RP 质量好
- DeepSeek-R1-Distill-Qwen-14B:较小蒸馏版本,适合中端显卡
- DeepSeek-V3-0324(原始权重):需要 4-bit 量化后才能本地运行
5.4 量化级别选择指南
GGUF 是 llama.cpp 生态的量化格式。同一个模型的不同量化版本,在质量和大小之间做权衡。
GGUF 量化级别对比
以 Qwen3-14B 为例,不同量化级别的参数:
| 量化级别 | 文件大小 | 显存需求 | 质量保留 | 推理速度 | 推荐场景 |
|---|---|---|---|---|---|
| Q4_K_M | ~8.2GB | ~10GB | ~98% | 最快 | 日常使用首选 |
| Q5_K_M | ~9.7GB | ~12GB | ~99% | 很快 | 想提升一点质量时 |
| Q8_0 | ~14GB | ~16GB | ~99.5% | 快 | 显存充裕时 |
| FP16 | ~28GB | ~32GB | 100% | 一般 | 质量无关场景 / 微调 |
| Q3_K_L | ~6.8GB | ~8GB | ~95% | 最快 | 低显存妥协方案 |
| Q2_K | ~5.5GB | ~7GB | ~90% | 最快 | 显存极低时 |
选择建议:
- Q4_K_M 是最佳平衡点——质量损失几乎不可感知,体积和速度最优。Ollama 默认也是此级别
- 如果你的显存刚好够(如 8GB 运行 14B),降级到 Q3_K_L
- 如果显存充裕(如 24GB 运行 14B),可以上 Q8_0
- 通常不建议 Q2_K——质量下降明显,一般只在 6GB 显卡运行 14B 模型时考虑
显存需求速查表(GGUF Q4_K_M)
| 模型 | 显存需求 | 推荐最低显卡 |
|---|---|---|
| Qwen3-8B / LLaMA 3.1-8B | 6-8 GB | RTX 2060 8G / RTX 3050 8G |
| Qwen3-14B / Qwen2.5-14B | 10-12 GB | RTX 3060 12G / RTX 4060 Ti 16G |
| Qwen3-32B / Qwen2.5-32B | 20-24 GB | RTX 3090 24G / RTX 4090 24G |
| DeepSeek-R1-Distill-32B | 20-24 GB | RTX 3090 24G / RTX 4090 24G |
| Qwen2.5-72B / LLaMA 3.1-70B | 42-48 GB | 2x RTX 3090 / RTX 6000 Ada |
| Qwen3-235B-A2B (4-bit) | 48-64 GB | 2x RTX 3090 / 2x RTX 4090 |
注意: 以上为运行模型的最小显存需求。实际使用中,上下文长度(num_ctx)也会占用显存——每 2048 token 的上下文约额外消耗 0.5-1GB 显存(取决于模型大小)。
5.5 连接 SillyTavern
Ollama 启动并拉取模型后,连接 SillyTavern 非常简单。
启动 Ollama 服务:
# 确保 Ollama 服务在运行ollama serve
# 在另一个终端验证连接curl http://127.0.0.1:11434/api/tags# 返回 JSON 列表,显示已拉取的模型SillyTavern 配置:
在 API 连接 界面中填写:
| 参数 | 值 |
|---|---|
| API 类型 | Chat Completion |
| API 源 | Ollama |
| API 端点 URL | http://127.0.0.1:11434/v1 |
| 模型 | qwen3:14b(你拉取的模型名) |
| API Key | 留空 |
如果 SillyTavern 运行在 Podman 容器中,使用
http://host.containers.internal:11434/v1来访问宿主机的 Ollama。
点击 连接 测试。成功后,就可以像使用任何云端 API 一样使用本地模型了。
Ollama 多模型切换:
Ollama 支持同时保持多个模型在内存中。在 SillyTavern 的 API 连接界面下拉菜单中可以选择不同模型,Ollama 会自动加载或卸载。
5.6 性能调优
本地模型的性能优化主要集中在三个参数:上下文长度(num_ctx)、GPU 加速层数、并发设置。
上下文长度(num_ctx)
Ollama 默认为 2048 token 的上下文长度,对于角色扮演来说太短。SillyTavern 中可以自定义:
# 方法一:在 SillyTavern 预设中设置 Context Size# 方法二:通过 Ollama 的 modelfile 调整
# 创建自定义 Modelfilecat > Modelfile << 'EOF'FROM qwen3:14bPARAMETER num_ctx 8192EOF
# 创建自定义模型ollama create qwen3:14b-ctx8k -f Modelfile
# 在 SillyTavern 中使用 qwen3:14b-ctx8k上下文长度与显存关系:
| 模型 | 2048 ctx | 4096 ctx | 8192 ctx | 16384 ctx | 32768 ctx |
|---|---|---|---|---|---|
| Qwen3-8B (Q4) | 6GB | 6.5GB | 7.5GB | 9GB | 12GB |
| Qwen3-14B (Q4) | 10GB | 11GB | 13GB | 17GB | 23GB |
| Qwen3-32B (Q4) | 20GB | 22GB | 26GB | 34GB | 48GB |
建议: 8GB 显卡用户保持 4096-8192,16GB 用户可用 8192-16384,24GB 用户可达 16384-32768(14B 模型接近上限)。
GPU 加速层数(num_gpu)
对于部分运行在 CPU+GPU 混合模式的系统,可以指定 GPU 层数:
# 在 Ollama 中使用 GPU 加速# 通过 modelfile 设置PARAMETER num_gpu 35 # Qwen3-14B 有 41 层,35 层在 GPU 上运行
# 或通过环境变量(一次性)OLLAMA_NUM_GPU=35 ollama run qwen3:14bNVIDIA GPU 加速前提:
# Linux 需要安装 NVIDIA Container Toolkit(如果使用 Podman)# 或直接通过系统 Ollama 使用(推荐,无需容器)nvidia-smi # 确认驱动和 CUDA 可用ollama run qwen3:14b # Ollama 自动检测并使用 GPUAMD GPU 加速(ROCm):
# Linux 下使用 ROCm 版 Ollama 安装脚本curl -fsSL https://ollama.com/install.sh | sh -s -- --rocm
# 启动后,Ollama 会自动检测 AMD GPU 并使用 ROCm 加速ollama run qwen3:14bmacOS(Metal):
Ollama for macOS 自动使用 Metal API 加速,无需特殊配置。
并发请求
Ollama 默认可处理并发请求。SillyTavern 中的滑动回复(Swipe)功能会同时发送多个请求,Ollama 会自动排队处理:
# 查看 Ollama 运行状态ollama ps
# 查看正在处理的请求数# Ollama 会显示当前活跃的模型和正在处理的任务如果并发生成时速度过慢,可以限制 SillyTavern 中的并发生成数(在预设设置中)。
5.7 硬件选型参考
如果你正在考虑为本地模型购买或升级硬件,以下参考表可以帮助你做决策:
入门级(8GB 显存)
| 显卡 | 二手价格(2026.05) | 可运行模型 |
|---|---|---|
| RTX 2060 SUPER 8G | ¥600-800 | Qwen3-8B (8K ctx), Qwen2.5-14B (Q3_K_L, 4K ctx) |
| RTX 3050 8G | ¥800-1,000 | 同上 |
| RTX 4060 8G | ¥1,600-2,000 | 同上,速度快 30-50% |
推荐配置: Qwen3-8B Q4_K_M + 8192 ctx
进阶级(12-16GB 显存)
| 显卡 | 二手价格(2026.05) | 可运行模型 |
|---|---|---|
| RTX 3060 12G | ¥1,200-1,600 | Qwen3-14B (8K ctx), Qwen2.5-32B (Q3_K_L, 4K ctx) |
| RTX 4060 Ti 16G | ¥2,500-3,000 | Qwen3-14B (16K ctx), Qwen3-32B (Q3_K_L, 4K ctx) |
| RTX 4070 12G | ¥3,000-3,500 | Qwen3-14B (16K ctx) |
推荐配置: Qwen3-14B Q4_K_M + 8192-16384 ctx
高端(24GB 显存)
| 显卡 | 二手价格(2026.05) | 可运行模型 |
|---|---|---|
| RTX 3090 24G | ¥4,000-5,000 | Qwen3-32B (8K ctx), DeepSeek-R1-32B (8K ctx) |
| RTX 4090 24G | ¥10,000-13,000 | Qwen3-32B (16K ctx), Qwen2.5-72B (Q3_K_L, 4K ctx) |
| Tesla P40 24G | ¥800-1,200 | 同上(但无 FP16 支持,速度较慢) |
推荐配置: Qwen3-32B Q4_K_M + 8192-16384 ctx
旗舰(48GB+ 显存)
| 配置 | 估价格(2026.05) | 可运行模型 |
|---|---|---|
| 2x RTX 3090 (48GB) | ¥8,000-10,000 | Qwen2.5-72B (8K ctx), Qwen3-235B-A2B (4K ctx) |
| RTX 6000 Ada (48GB) | ¥25,000-30,000 | Qwen2.5-72B (16K ctx) |
| Apple M2 Ultra / M4 Max (128GB+ 统一内存) | ¥50,000+ | 几乎任何开源模型 |
推荐配置: 双 3090 性价比最高,Mac Studio 统一内存方案对超大上下文友好
不推荐配置
- 集成显卡 / Intel UHD Graphics:显存不足且不支持 ROCm/CUDA,无法运行任何超过 1B 参数的模型
- AMD 消费级显卡(RX 系列):ROCm 兼容性参差不齐,建议 NVIDIA 或 Mac
- 仅有 CPU:可以运行,但速度极慢(~1-2 tokens/s 对于 7B 模型),体验很差
关于 Mac 统一内存
Apple Silicon(M2/M3/M4 系列)统一内存在运行本地大模型方面有独特优势:显存等效于系统内存,意味着 M3 Max (128GB) 或 M3 Ultra (192GB) 可以运行常规独显无法企及的大模型。
# macOS Ollama 使用 Metal 加速ollama run qwen3:32b# 将在 M 系列芯片上自动启用 GPU 加速但需要注意:Mac 的 GPU 计算能力(FLOPS)低于同价位 NVIDIA 独显,推理速度约慢 30-50%。Mac 的优势在于容量而非速度。
以上就是 SillyTavern 进阶篇的全部内容。你现在已经掌握了角色卡深度定制、世界书设计、高级对话控制、扩展插件集成,以及自托管本地模型的完整知识体系。
在入门篇中你学会了”如何让 AI 回答”,在这篇进阶篇中你学会了”如何让 AI 回答得更好”。角色的表情切换让对话更有画面感,世界书让世界观更丰满,ComfyUI 赋予了 AI “看见”的能力,TTS 让它”开口说话”,而本地模型让你完全摆脱了云服务的束缚。
下一站可以阅读本系列第三篇:运维篇 — 生产部署与日常维护,学习如何将 SillyTavern 部署为可远程访问的生产服务,以及数据备份、安全加固、故障排查等运维技能。
参考链接汇总
- SillyTavern 官方文档:https://docs.sillytavern.app/
- SillyTavern 扩展文档:https://docs.sillytavern.app/extensions/
- SillyTavern GitHub:https://github.com/SillyTavern/SillyTavern
- ComfyUI GitHub:https://github.com/comfyanonymous/ComfyUI
- Ollama 官方文档:https://ollama.com/docs
- Qwen 模型系列:https://huggingface.co/Qwen
- GPT-SoVITS GitHub:https://github.com/RVC-Boss/GPT-SoVITS
- ChromaDB 文档:https://docs.trychroma.com/
- DeepSeek 官方文档:https://platform.deepseek.com/api-docs/
- CivitAI(模型下载):https://civitai.com/
- SillyTavern Discord:https://discord.gg/sillytavern