Files
Popiai-skill/video-creation/mv-creator/phases/05-character-design.md
T

73 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 人设图生成
## 目标
基于确定的美术风格,为核心人物生成角色设计图。
## 重点
- 每个角色独立一个目录和设计文件
- **统一使用 `all_in_one_image_generation`model_name: `all_in_one_pro`/ `nano_banana_image_generation`model_name: `nano_banana_2`)生成候选图**
- 保留每张图和对应的用户指令(prompt / 描述)
- 最终由用户在预览页面中挑选人设图
- **宽高比统一使用 2:3 竖版**(`aspect_ratio: "2:3"`
- **禁止生成 N 宫图**(多视角拼合图):提示词中必须包含 `single character, single view, no split screen, no multiple panels, no collage, no reference sheet`
## 流程
1. 根据故事概念中的核心人物描述 + 美术风格,生成角色设计 prompt(提示词末尾追加反 N 宫图指令)
2. **风格 JSON 注入**:从 `art_style.md``风格JSON` 字段读取结构化风格数据,将 JSON 内容融入生图提示词中(如在提示词末尾附加 `Art style: {JSON 内容}`
3. 使用 `all_in_one_image_generation`model_name: `all_in_one_pro`)或 `nano_banana_image_generation`model_name: `nano_banana_2`)生成多版本候选图,**aspect_ratio 统一设为 2:3**
4. 将角色信息和候选图写入各角色的 `design.md`
## 输出格式
每个角色独立一个目录和设计文件。**严格按用户语言选择对应的 example 和字段名**(参见 SKILL.md「输出控制」和「Markdown 字段名中英对照表」):
- 中文用户:参考 `references/character-design-example.md`,字段用中文(`外貌特征``性格气质``标志物件``生图设定``候选图``选定图`),内容用中文
- 非中文用户:参考 `references/character-design-example-en.md`,字段用英文(`Appearance``Personality``Signature Items``Image Settings``Candidates``Selected`),内容用对应语言
关键要点:
- 外貌特征/Appearance 用列表逐项描述(年龄/性别、体型、发型、面部、服装、配饰)
- 生图设定/Image Settings 包含三个子字段:`提示词/Prompt`(英文)、`模型/Model``参考图/Reference`
- 候选图/Candidates 记录文件名、模型和构图说明
- `选定图/Selected` 生成后留空,待用户在预览页面中挑选
## 格式校验
design.md 写入后,**必须**运行校验脚本:
```bash
# 校验单个角色
python3 .opencode/skills/mv-creator/scripts/validate_character_design.py .mv/{song_name}/{theme}/characters/{character_name}/design.md
# 校验 theme 下所有角色
python3 .opencode/skills/mv-creator/scripts/validate_character_design.py .mv/{song_name}/{theme}/
```
校验规则:必需分区完整性、外貌特征列表项、生图设定子字段、候选图非空且文件存在。
- **通过** → 调用 MCP 工具 `preview_and_collect_feedback` 启动预览:
- **script**: `.opencode/skills/mv-creator/scripts/render_preview.py`
- **args**: `[".mv/{song_name}/{theme}", "--type", "character_design", "--lang", "{lang}"]`
- **feedback_path**: `.mv/{song_name}/{theme}/feedback.md`
预览页面展示各角色信息卡片和候选图网格。
每个角色默认选中第一张候选图作为兜底,用户点击图片直接切换选定。
角色卡片的每张候选图有 `@` 按钮,点击可将 `@角色目录/候选图文件名` 插入底部反馈框,用于引用特定候选图。
工具返回反馈内容后:
-`LGTM` 开头 → 将各角色的选定候选图复制为 `selected.jpg`,更新 `design.md`,进入下一阶段
- 包含 `修改建议:` → 先处理选图,再解析建议中的 `@` 引用(候选图 `@角色/候选图` 或上传参考图 `@上传路径`)和修改意见,调整 prompt 重新生成候选图。更新 `design.md`,重新校验和预览
- **未通过** → 由 LLM 根据校验错误信息自动修正,修复后重新校验
## 文件存储
**目录名规则**`{character_name}` 统一使用英文小写 + 下划线(如 `traveller``bar_owner`),不使用中文或显示名。该目录名是后续阶段(分镜、视频生成)引用角色的唯一标识。
```
./.mv/{song_name}/{theme}/characters/{character_name}/
├── design.md # 角色设计说明
├── candidate_01.jpg # 候选图
├── candidate_02.jpg
└── selected.jpg # 最终选定图(用户挑选)
```