MuseAI 角色卡转 SillyTavern
将 museai.partner-items JSON 中的一个 MuseAI 角色转换为打磨后的中文 SillyTavern 角色卡 V2。
工作流程
- 完整读取源 JSON。选择用户指定的
characterCards[]条目;如果文件中只有一个角色,自动使用它。 - 运行内置转换脚本,先生成结构有效的草稿:
python3 scripts/convert_character.py INPUT.json OUTPUT.json
阅读生成的草稿,并依据源文件事实继续打磨:
- 所有面向角色扮演的内容都保持中文。SillyTavern 结构字段、
{{char}}、{{user}}和<START>可以保留原样。 - 保留源文件中的身份、外貌、性格、价值观、能力、经历、关系、用户关系、边界和关键事件。
- 将零散字段整理为连贯可用的角色指令,而不是直接堆叠原始键值对。
- 编写有场景感的
first_mes,包含动作、对白、张力,并给{{user}}留出开放选择。 - 编写至少三段有差异的
mes_example交流,用来展示语气、反应、边界和关系动态。 - 当源文件支持多个时期或场景时,添加两到三个
alternate_greetings。 - 将稳定事实和受时间线影响的材料放入
character_book.entries。 - 明确要求不得替
{{user}}说话、思考、决定或行动。 - 保持时间线一致,不要在对应时期之前泄露未来事实。
- 不要发明与源文件冲突的身份特征、关系、能力或正史事件。
- 所有面向角色扮演的内容都保持中文。SillyTavern 结构字段、
V2 中顶层和
data内重复出现的载荷字段必须完全一致。编辑其中一处后,要同步镜像到另一处。校验最终文件:
python3 scripts/convert_character.py --validate-only OUTPUT.json
- 汇报输出路径和校验结果。
输出要求
使用 spec: "chara_card_v2" 和 spec_version: "2.0"。必须包含:
namedescriptionpersonalityscenariofirst_mesmes_examplecreator_notessystem_promptpost_history_instructionsalternate_greetingstagscreatorcharacter_versionextensionscharacter_bookdata,并镜像上方所有字段
除非用户要求改名或改路径,否则保留用户指定的目标位置和文件名。只有在用户明确要求,或请求清楚说明要原地转换时,才覆盖源文件。
参考资料
当源文件包含不熟悉的 MuseAI 字段、多个角色卡、关联世界书,或需要判断某条事实该放在哪里时,读取 references/field-mapping.md。
脚本行为
scripts/convert_character.py 支持:
python3 scripts/convert_character.py INPUT OUTPUT
python3 scripts/convert_character.py INPUT OUTPUT --card-name "角色名"
python3 scripts/convert_character.py --validate-only OUTPUT
脚本输出只是结构有效的草稿,不能替代针对具体角色的写作打磨和事实复核。