Expression Images(角色表情)
这是什么?
表情图片是你的 AI 角色的图片(也称为"精灵图"),显示在聊天窗口旁边(或后面)。
表情图片可以根据分类结果自动切换,以适应 AI 最近聊天回复中所表达的情感。
添加角色表情图片
-
打开扩展面板并展开"角色表情"部分。如果你已打开角色聊天,将看到一个图片占位符网格。
表情抽屉 -
点击网格中每个图片左上角的"上传图片"按钮,并选择要应用到该情绪的图片。这将把图片以正确的文件名保存在
/data/<user-handle>/characters/(character_name_here)/文件夹中。 -
对所有要分配图片的表情重复此操作。
导入表情图片 ZIP 文件
使用" 上传精灵图包(ZIP)"按钮,你可以导入包含表情图片集合的 zip 文件,这些图片将自动添加到当前选定角色的正确文件夹中。ZIP 文件必须以扁平结构(无子文件夹)包含所有图片,且文件名正确。导入 zip 文件不会自动重命名图片以使其与情绪名称匹配。
手动更改表情
- 点击任何已上传的表情图片(精灵图)以在聊天界面附近(默认 UI 模式)或屏幕中央(视觉小说模式)显示它们。
- 使用
/expression-set (名称)斜杠命令或匹配的快速回复来设置精灵图,无需打开扩展菜单。
自动更改表情
要在角色回复时自动设置表情,你有多种选择。 当启用消息流式传输时,表情会在每条消息或定期间隔更改。
分类模块如何工作?
classify 模块使用一个在 SillyTavern 服务器旁运行的小型"情感解析"模型。该模型接收 AI 的新输出并检测文本所表达的情感类型。虽然一条消息中可能表达多种情感,但模型只选择最可能的一种并返回给 SillyTavern。前端扩展随后显示与该情感关联的图片。
设置说明(本地)
- 打开扩展面板并展开"角色表情"扩展菜单。
- 在分类来源下拉菜单中选择"本地"。
- 这将启动一次性从 HuggingFace Hub 下载分类模型(约 ~100 MB)。
- 生成任意消息以验证分类是否正常工作并且精灵图是否出现。也可以检查服务器控制台的调试日志。
本地分类默认有 28 个可能的图片标签:Cohee/distilbert-base-uncased-go-emotions-onnx
若要使用 6 选项分类模型,请将 config.yaml 文件中 extensions.models.classification 变量的值更改为:Cohee/bert-base-uncased-emotion-onnx
设置说明(使用 LLM)
- 通过** API 连接**连接到任何受支持且正确配置的 API。
- 按照上述方式导入表情图片。
- 在分类来源下拉菜单中选择"主 API"。
- 可选择配置分类指令提示词。
- 生成任意消息以验证分类是否正常工作并且精灵图是否出现。也可以检查服务器控制台的调试日志。
提示词构建策略
主 LLM 来源允许选择如何构建分类提示词:
- 有限上下文:仅发送最后一条消息和系统指令提示词。
- 完整上下文:发送整个聊天历史记录,包括角色卡。
设置说明(WebLLM)
- 安装官方 WebLLM 扩展。
- 按照上述方式导入表情图片。
- 在分类来源下拉菜单中选择"WebLLM"。
- 可选择配置分类指令提示词。
- 生成任意消息以验证分类是否正常工作并且精灵图是否出现。也可以检查服务器控制台的调试日志。
设置说明(使用 Extras)
Warning
Extras 已弃用,可能会在未来更新中删除。
- 安装并运行 Extras,并启用
classify模块:python server.py --enable-modules=classify - 按照上述方式导入表情图片。
- 在分类来源下拉菜单中选择"Extras"。
- 当 AI 向你发送回复时,适当的表情图片将自动显示。
Extras API 默认使用具有 6 个选项的分类模型:nateraw/bert-base-uncased-emotion
还有一个具有 28 个选项的模型:joeddav/distilbert-base-uncased-go-emotions-student
要使用此模型,需要在 Extras 命令行中添加以下参数(前后各有一个空格):--classification-model=joeddav/distilbert-base-uncased-go-emotions-student
自定义表情
如何获得比默认更多的表情选项?你可以在扩展设置中设置自定义表情。可以为自定义表情分配任意名称。它们将出现在表情图片列表中,可以像其他表情一样分配图片。它们会有一个指示符表明这些是自定义表情。
Tip
本地分类和 Extras 仅支持有限的表情列表。
如果你希望显示自定义表情,需要训练一个支持对应标签的分类模型(超出本指南范围),或者使用 LLM 或 WebLLM 作为分类来源,两者都会自动使用所有现有表情——包括默认表情和任何自定义表情。
表情支持哪些图片格式?
允许任何图片格式,包括 webp 和动态 gif。
最常见的格式是带有透明背景的 PNG 文件。
使用默认表情
如果你没有角色的全部表情图片,或者根本没有图片,有多种默认显示选项。 所有这些都可以通过"默认/备用表情"下的下拉菜单进行选择。
- 选择备用表情:如果选择了一个没有图片的表情,则会显示备用表情。只需从下拉菜单中选择一个可用的表情。
- [无备用]:当没有图片时,不显示任何内容。
- [默认表情符号]:可以使用 SillyTavern 内置的默认表情,这些是简单的表情符号风格图片。
每个表情使用多张图片
可以为每个表情添加多张图片,以便在显示的表情中提供更多变化。 要启用此功能,只需切换允许每个表情使用多个精灵图。 你现在可以上传多张图片,任何额外的图片都将显示一个小标记。
可以通过点击手动选择单张图片,或通过 /expression-set type=sprite 命令选择,该命令将列出可用的精灵图图片,而不是表情。
每当自动选择具有多张图片的表情时,将随机选择其中一张。 如果你想在多次使用同一表情时强制选择该表情的新图片,可以启用若再次使用同一精灵图则重新抽取。
每个表情多张图片的命名规范
在每个表情有多张图片的情况下,文件需要以特定方式命名。
文件需要以表情名称开头,然后跟一个后缀,用点或连字符分隔。示例:joy.png、joy-1.png、joy.expressive.png
文件名必须遵循此格式,无论是直接上传还是 ZIP 导入。
精灵图文件夹覆盖
Note
显示名称(而非角色卡文件名)决定使用哪个图片集
如果你有多个具有相同显示名称的角色,它们都将使用相同的表情图片集。
如果你想为同名角色的每个版本使用不同的图片集,可以使用精灵图文件夹覆盖。 文件夹覆盖也可用于为同一角色定义不同的精灵图集(服装等)。
如何设置覆盖
- 在
/data/<user-handle>/characters中创建一个任意名称的文件夹并将图片放在那里,例如/data/<user-handle>/characters/Boris。 - 打开要覆盖精灵图的角色的聊天。
- 在"精灵图文件夹覆盖"输入框中输入覆盖文件夹的名称并点击"提交"。
- 精灵图列表将重新加载,"精灵图集"指示器应显示覆盖文件夹。
- 或者,可以使用
/costume斜杠命令达到相同的效果:/costume Boris。 - 通过在覆盖文件夹名称前加上反斜杠,它将解析为当前角色精灵图文件夹中的子文件夹,例如对于名为 Boris 的角色,
/costume \tracksuit将解析为/data/<user-handle>/characters/Boris/tracksuit文件夹。