# 导入角色

> 把 SillyTavern 或 CharacterHub 的角色卡搬进 Reverie。

Source: https://reverie.im/zh/docs/characters/import-characters
Language: zh

Reverie 能读 V1、V2 和 V3 格式的角色卡——也就是 SillyTavern、CharacterHub 以及多数卡站导出的那些。导入器填的是一份可编辑的草稿；在你自己按下保存之前，什么都没存。

## 导入一张卡 \[#import-a-card]

### 新建一个角色 \[#open-a-new-character]

去 `/app/characters/create`，按顶部的**导入角色卡**。这个按钮只在你创建角色时存在——已经存在的角色是没法往里导入的。

### 把文件拖进去 \[#drop-the-file]

**支持 PNG、JSON · 最大 10 MB**。卡是在你的浏览器里解析的，并不会先上传再读。PNG 卡把 JSON 藏在图片里；JSON 卡则直接读。

聊天记录和单独的世界书文件是另外的格式，各有各的工具——见[导入你的历史记录](https://reverie.im/zh/docs/getting-started/importing-your-history)和[世界书](https://reverie.im/zh/docs/writing/world-books)。

### 看清楚它会填什么 \[#review-what-it-will-fill]

对话框会显示识别出的卡片版本、头像，以及一份**准备填入**清单，列出它要写的每个字段和对应的值。在你确认之前，什么都不会变。

如果你已经往表单里打了字，你还要在**只填入空白字段**（保留你的修改，只补缺的）和**替换对应字段**（卡里有值的地方以卡为准）之间做个选择。

### 你也可以让 AI 收拾一下 \[#optionally-let-ai-tidy-it-up]

**使用 AI 整理并补全导入草稿**会对结果跑一遍清理。大多数卡会把所有东西都塞进一段很长的描述里，所以这一遍会把描述、场景和指令切成一段段，再把每一段原封不动地挪到它该在的字段：外貌归到**外观描述**，你对角色来说是谁归到**与玩家的关系**，长期生效的规则归到**系统提示**。超出描述长度上限的文字会留在这张卡的世界书里。然后它只补写卡里缺的东西，比如简介、建议回复，再加两三个额外场景。纯导入会先落地，就算这一遍失败了它也还在，所以你不会因为要了这一步而丢掉卡里的内容。它可能消耗积分。

### 检查并保存 \[#check-and-save]

你会回到编辑器，草稿已经填好。把卡里没有的必填项补上——**角色类别**是必填的，而任何卡片格式都没有这一项——然后保存。

## 什么对应到什么 \[#what-maps-to-what]

| 卡里的字段                                                                            | 变成                                                                   |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| `nickname`，没有则 `name`                                                            | **角色名称**，截到 50 个字符                                                   |
| `description`，没有则 `char_persona`                                                 | **详细描述**，截到 10,000 个字符                                               |
| `tagline`，没有则取描述或性格                                                              | **角色简介**，摘录到 500 个字符                                                 |
| `personality`                                                                    | **角色性格**                                                             |
| `appearance`                                                                     | **外观描述**                                                             |
| `player_relationship`                                                            | **与玩家的关系**                                                           |
| `first_mes` / `char_greeting`，接着是 `alternate_greetings` 和 `group_only_greetings` | 每条问候一条**开场对话**，按顺序排，不带建议回复                                           |
| `mes_example` / `example_dialogue`                                               | **示例对话**，解析成用户／角色的成对内容                                               |
| `scenario` / `world_scenario`                                                    | 接在**详细描述**末尾，放在“Scenario:”之后。这张卡的聊天都从那个情境开场，而 Reverie 的场景只会进入从它开始的聊天 |
| `system_prompt`、`post_history_instructions` 和 `depth_prompt`                     | **系统提示**，按这个顺序拼在一起。它们多半是角色设定和长期规则，而**回复格式提示**会取代 Reverie 自己的格式规则     |
| `nsfw_prompt`                                                                    | **NSFW 提示**                                                          |
| `tags`                                                                           | **标签**，去重后保留前 20 个                                                   |
| `gender`、`age`                                                                   | **角色性别**、**角色年龄**                                                    |
| NSFW 标记                                                                          | **NSFW内容**开关                                                         |
| `creator_notes`                                                                  | **创作者笔记**                                                            |
| `character_book` 条目                                                              | 一本单独的**世界书**，以角色命名并挂在它上面                                             |

内嵌的和外链的图片会被复制到 Reverie 的存储上。取不下来的那些仍旧指向原站，对话框会告诉你有多少张属于这种情况。

**不会带过来的：** 聊天记录、按用户存的记忆，以及上面这些字段之外任何平台专属的扩展数据。

## 导入文本里的宏 \[#macros-in-imported-text]

* `{{char}}` 在解析卡片时就被换成角色的名字。
* `{{original}}` 会从提示词字段里剔掉。
* `{{user}}` 原样保留——Reverie 支持它作为活的宏。见[宏列表](https://reverie.im/zh/docs/characters/advanced-settings#macros)。

## 你可能看到的提示 \[#messages-you-might-see]

| 提示                                | 发生了什么                              |
| --------------------------------- | ---------------------------------- |
| 源角色名称超过 Reverie 的 50 字符上限，已缩短     | 卡里的名字比 Reverie 允许的长                |
| 源角色描述超过 Reverie 的 10,000 字符上限，已缩短 | 同上，只是换成描述。原始角色卡不会被修改               |
| 源角色年龄不在 Reverie 支持的范围内，因此没有导入     | Reverie 只接受 18 岁及以上的年龄             |
| 角色卡包含无法识别格式的示例对话                  | 示例解析器拆不开它。开启 AI 整理来恢复，或者导入之后自己重打一遍 |
| 这个文件是空的／角色卡大小不能超过 10 MB           | 文件在解析之前就被拒了                        |

## 从别的地方导入 \[#importing-from-anywhere-else]

角色卡格式是一回事；Character.AI 的导出、一张截图或者一段白话描述是另一回事。那些走实验室里的**角色导入 Skill**（`/app/labs/character-importer`），它跑在你自己的 Claude 客户端里，再通过 Reverie 的 API 把做好的角色传上来。

页面会给你一段现成的消息，粘进 Claude Code、Claude Desktop 或别的任何客户端即可：它会装好这个 skill 并存下你的 Reverie API 密钥。之后在同一个对话里丢进文件、截图或描述，说一句“把这个角色导入 Reverie”。新角色会出现在**我的角色**下。

> 那段准备好的消息里带着一把个人 API 密钥。把它当密码看待，一旦泄露就从**设置 → API
> 密钥**里轮换或吊销它。见 [API 密钥](https://reverie.im/zh/docs/integrations/api-keys)。

## 相关 \[#related]

* [角色快速上手](https://reverie.im/zh/docs/characters/quick-start)
* [世界书](https://reverie.im/zh/docs/writing/world-books)
* [高级设置](https://reverie.im/zh/docs/characters/advanced-settings)
* [发布角色](https://reverie.im/zh/docs/characters/publishing)
* [把你的角色一起带过来 →](https://reverie.im/zh/blog/bring-your-characters)
