ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

SillyTavern角色卡片实战:30分钟把完整AI人格装进一张PNG图片

SillyTavern角色卡片实战:30分钟把完整AI人格装进一张PNG图片 SillyTavern角色卡片实战30分钟把完整AI人格装进一张PNG图片【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern换电脑时我花半个月调教的 AI 角色差点全丢——设定、开场白、示例对话散落在七八个文件里搬一次耗掉一个下午。直到用了 SillyTavern面向进阶用户的 LLM 前端它的角色卡片功能把完整人格打包进一张 PNG 图片分享和迁移都变成了发一张图。这张粉头发女孩的立绘是项目自带的示例角色 Seraphina。她可不只是一张好看的图——名字、性格、说话方式全都藏在图片内部肉眼却看不出任何痕迹。接下来我带你一步步拆开看。先弄明白一件事人格数据是怎么住进图片里的你可以把 PNG 图片想象成一张明信片正面是能看见的画面背面本该留白。而 PNG 格式在文件内部留了一个夹层叫 tEXt 数据块专门用来存文字信息完全不影响正面画面。SillyTavern 做的就是把角色的全部设定写成信一段 JSON 文本悄悄塞进这个夹层里。不过信不能直接塞。角色数据是纯文本直接存容易出乱码所以程序会先把 JSON 转成 base64 编码的字符串再写进 tEXt 块——就像把信先折好、封口再放进夹层全程不碰明信片正面的画面。这也是为什么角色卡片看起来和普通图片毫无区别。读取时反向操作程序找到夹层取出字符串base64 解码回 JSON。这套进进出出的逻辑集中在 src/character-card-parser.js 里的 read 和 write 两个函数中一共没几行代码。你可能会注意到chara和ccv3这两个关键字老一些的 V2 卡片用 chara新一些的 V3 卡片用 ccv3能携带更丰富的元数据。读取时会优先认 ccv3找不到再退回 chara——正是这种先后顺序让很多年前的老卡片到今天依然能正常导入。跟着我一起做30分钟造出第一张角色卡片先别急着碰代码角色卡片完全可以在界面上完成。项目安装方式见仓库 READMEclone 命令是 git clone https://gitcode.com/GitHub_Trending/si/SillyTavern。启动后进入角色管理新建角色上传一张立绘剩下的就是填表。真正决定角色像不像的是几个核心字段name 是名字description 是一段背景介绍personality 是性格描述scenario 说明角色身处什么情境first_mes 是你们第一次见面时它说的第一句话直接决定开场氛围mes_example 则是几段对话示例相当于手把手给 AI 做示范。我第一次做卡片时只填了名字和性格结果 AI 回话干巴巴的补上 first_mes 和示例对话之后它立刻活了过来。如果你习惯手动控制也可以直接写 JSON格式大致长这样{ name: Seraphina, description: 一个喜欢在夜晚屋顶上唱歌的女孩, personality: 温柔、害羞但对音乐极其执着, scenario: 你在旧书店的阁楼里发现了她, first_mes: 啊……你、你是怎么找到这里的, mes_example: START\n{{user}}: 你在唱什么\n{{char}}: 是一首关于星星的歌……要听吗 }填完点保存SillyTavern 会调用 write 函数把这段 JSON 编码后写进图片这张图就正式升级成角色卡片。导出后你可以发给任何人对方拖进自己的 SillyTavern 就能直接用。这里你可能会卡一下如果导入时提示没有找到角色数据或干脆没反应八成是图片本身不含夹层——比如你拿一张普通截图当头像那当然读不出人格。记得一定要用导出角色功能生成的文件。再往前走一步让角色在场景里活起来基础卡片做好接下来是加分项。SillyTavern 允许给角色配一组表情立绘和场景背景让互动更有画面感。项目自带的 default/content/Seraphina/ 目录里就有 29 张表情图高兴、生气、害羞一应俱全AI 会根据对话情绪切换对应立绘。你只需打开角色的表情面板把图片和情绪名一一对应之后每次对话它都会跟着剧情换表情。![SillyTavern角色卡片的酒馆场景背景设定](https://raw.gitcode.com/GitHub_Trending/si/SillyTavern/raw/51ad27fb86d39a3daca3adaa970375c9670c12df/default/content/backgrounds/tavern day.jpg?utm_sourcegitcode_repo_files)场景背景同理。白天的小酒馆、深夜的中世纪街道不同背景给角色提供不同的环境暗示它的语言和行动也会随之调整。设置方法很简单在角色设定里选一张背景图再在描述里补一句此刻你们正坐在酒馆里剩下的交给模型发挥。![SillyTavern角色卡片的中世纪夜景背景增强沉浸感](https://raw.gitcode.com/GitHub_Trending/si/SillyTavern/raw/51ad27fb86d39a3daca3adaa970375c9670c12df/default/content/backgrounds/cityscape medieval night.jpg?utm_sourcegitcode_repo_files)顺带一提想让角色拥有长期记忆和完整世界观可以试试世界书World Info功能项目自带的 Eldoria.json 就是一个现成示例。它就像给角色配了一本随身百科对话需要时自动翻页给 AI 看。遇到这几个问题先别慌多半是这些原因玩得多了踩过的坑也就有了规律。下面几个是我见过最多的你对号入座看看。朋友导入我的卡片却提示格式不对。最常见的原因是图片在传输中被动过手脚。微信、QQ 这类聊天软件默认压缩图片很多还会偷偷转码夹层里的 tEXt 块就这么被删掉了。解决办法是发原图或者打包成 zip 发送确保文件一个字节都不差。导入成功了但角色说话完全不像我设定的性格。多半是 personality 写得太抽象。只写温柔善良四个字模型没法转化成具体行为。试试加场景和对比平时轻声细语但有人欺负朋友时会立刻变得强硬。越具体越像人。用修图软件另存过一次后卡片就废了。不少图片工具在优化或另存时会重写 PNG 结构把不认识的数据块清掉。所以务必保留原始导出文件动手前先复制一份备份改完再拖回 SillyTavern 验证一下最稳妥。老卡片报错或新卡片旧版读不了。这是格式版本在捣乱。V1 只有最基础的几个字段V2 引入 chara 标记V3 是带 ccv3 的完整规范。好在项目里的 TavernCardValidator 会按 V1、V2、V3 顺序自动检测能兼容就尽量兼容。如果你经常分享卡片建议都用当前版本重新导出一次省得别人踩版本坑。回到开头那张图片到底帮你省了什么还记得我搬家丢角色的经历吗现在我的整个角色库就是几十张 PNG 图片。备份时复制一个文件夹换设备时整包搬走分享时发一张图对方十秒钟导入完成。那个曾耗掉我一下午的迁移工程如今压缩到十分钟以内——如果只算复制文件的时间可能一分钟都用不到。更妙的是把结构化数据藏进标准格式文件的思路并不只属于角色扮演。你完全可以给图片附加作者信息、版本说明、参数配置——凡是需要一个文件随身带的场景它都适用。下次再有人问你这角色怎么分享的你可以把那张 PNG 递过去然后说秘密都在这张图里。✨【免费下载链接】SillyTavernLLM Frontend for Power Users.项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表