Labs · 卡格式转换器

v1、v2、v3 互转,
丢什么说在下载前

拖一张卡,选目标版本。升级不丢内容;降级把会丢的字段逐条点名、你确认了才给下载。页面下方的三代对照表,把「v3 到底改了什么」一次讲清。

免费本地运行 · 不上传PNG 进 → PNG 出

把角色卡拖进来,或点击选择

.png / .json(V1 / V2 / V3 都收)

转换在浏览器本地完成——文件不上传、不留存。

转换预览会出现在这里。

三代差异,逐字段对照

V1(约 2018–2022)是平铺在 JSON 顶层的六个字段。V2 把一切装进 data 包裹,加上世界书、备选开场白和扩展位。V3 补的是身份与打包:昵称、资产、群聊开场白、装饰语法,以及 charx 容器。

字段 / 能力V1V2V3
name / description / personality / scenario
first_mes 开场白 · mes_example 示例对话
creator_notes 创作者注记 · tags 标签 · creator 署名
system_prompt · post_history_instructions
alternate_greetings 备选开场白
character_book 内嵌世界书
extensions 扩展字段(随卡正则等)
nickname(prompt 里顶替 {{char}} 的称呼)
group_only_greetings 群聊专用开场白
assets 资产引用(头像 / 立绘 / 背景)
creator_notes_multilingual 多语言注记
source 来源 · creation/modification_date 时间戳
世界书装饰语法(@@activate 等)
.charx zip 容器(卡 + 资产打包)

字段口径对齐 SillyTavern 1.18 的三代数据模型。V1 时代的野生文件里也常见 creator_notes 等字段——那是前规范扩展,本表按规范归位。

映射规则从哪来

字段映射照搬我们 App 里在跑的导入链——那条链拿 34 张真实社区卡和 SillyTavern 1.18 源码逐一核定过:有 data 对象按 V2/V3 读(spec 字符串定版本),没有就按 V1 平铺;列表字段遇到字符串值包成单元素而不是吞掉;talkativeness 提升时限制到 0–1。V3 专属字段清单来自 chara_card_v3 规范的同一份实现——降级报告逐条点名的就是这份清单。

它帮不了你的

转的是结构不是质量——写得弱的卡换个版本还是弱。各前端对 V3 的实现程度不一,转完在你要用的前端里实测一次。.charx 容器这里不拆包:体检器能读出里面的 card.json,但重新打包 charx 是 App 侧的活。

常见问题

v2 卡和 v3 卡到底差在哪?

V3(chara_card_v3)完整保留 V2 结构,新增:nickname(prompt 里顶替 {{char}} 的称呼)、群聊专用开场白、assets 资产引用(头像/立绘/背景)、多语言创作者注记、来源链接与时间戳、世界书装饰语法(@@activate 等),以及 .charx 打包容器。一张卡如果这些都没用到,v2 和 v3 就是同一张卡换了个包装。

v3 降到 v2 会丢什么?

只丢这张卡实际用到的 V3 专属字段——本页在下载前逐条列给你看。常见的有:资产引用、昵称、群聊开场白、多语言注记、来源和时间戳。人设正文、开场白、示例对话、内嵌世界书全部保留;世界书条目里的装饰语法行文本还在,但 V2 前端会把它们当普通文字发给模型。

转换会改我卡里的内容吗?

不会。转换器只搬结构不动文字:字段在包裹之间逐字节归位。仅有的两处机械调整都会在页面上明说——V1 卡 name 为空时按导入器惯例兜成「Unknown」;V1 顶层的 talkativeness 收进 extensions(V2 规范位置)并限制在 0 到 1。

我的卡有 data 结构但没有 spec 字段,算什么版本?

半规范卡,社区导出器和手改卡里很常见。多数前端按 V2 兼容读取;严格校验的工具会拒收。把它拖进来选 V2 转一遍就规范化了:内容不变,补上工具们认的 spec 和 spec_version 字段。

接着用

← 全部免费工具

角色卡格式转换器 — v1 / v2 / v3 互转,丢什么如实列出 · Foreverse · 新梦