Files
Popiai-skill/video-creation/mv-creator/phases/07-props.md
T

91 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.
# 关键物件图生成
## 目标
基于脚本中标注的关键物件,为需要跨镜头保持视觉一致的非人物元素生成统一参考图。
## 物件类别
- **道具**:武器、信物、乐器、书信等手持/随身物品
- **载具**:马、车、船、摩托等交通工具
- **场景地标**:反复出现的特定建筑、标志性场所、门牌等
- **动物/宠物**:有辨识度的伴随动物
## 流程
### 1. 自动提取
读取 `script.md` 中所有 `**关键物件:**` 字段,汇总并去重。列出在 **2 幕及以上** 重复出现的物件,附带每个物件的出场幕列表和外观描述摘要。
### 2. 用户确认
通过 `AskUserQuestion` 让用户确认/增删物件列表(选项:确认当前列表 / 我要增减物件)。
如果最终列表为空(脚本中无跨镜头物件),通过 `AskUserQuestion` 确认后跳过此阶段。
### 3. 生成参考图
为每个物件生成 2~3 张候选图。宽高比根据物件类型选择:
| 物件类型 | 宽高比 | 说明 |
|----------|--------|------|
| 道具/小物件 | **1:1** | 正方形,突出物件细节 |
| 载具/动物 | **3:2** 横版 | 展示整体形态和比例 |
| 场景地标 | **16:9** 宽屏 | 展示建筑/场所全貌 |
使用 `all_in_one_image_generation`model_name: `all_in_one_pro`)或 `nano_banana_image_generation`model_name: `nano_banana_2`)生成候选图。提示词融合:物件外观描述(从 script.md 汇总)+ 美术风格关键词 + `art_style.md``风格JSON` 内容(如在提示词末尾附加 `Art style: {JSON 内容}`)。
### 4. 用户选图
启动预览,展示物件卡片和候选图网格,用户为每个物件选定最终参考图。调用 MCP 工具 `preview_and_collect_feedback`
- **script**: `.opencode/skills/mv-creator/scripts/render_preview.py`
- **args**: `[".mv/{song_name}/{theme}", "--type", "props", "--lang", "{lang}"]`
- **feedback_path**: `.mv/{song_name}/{theme}/feedback.md`
预览页面展示各物件信息卡片和候选图。
每个物件默认选中第一张候选图作为兜底,用户点击图片切换选定。
反馈处理逻辑同人设图阶段:
-`LGTM` 开头 → 将各物件的选定候选图复制为 `selected.jpg`,更新 `design.md`,进入下一阶段
- 包含 `修改建议:` → 解析建议,调整 prompt 重新生成候选图,更新后重新校验和预览
## 输出格式
每个物件独立一个目录和设计文件。**严格按用户语言选择对应的 example 和字段名**(参见 SKILL.md「输出控制」和「Markdown 字段名中英对照表」):
- 中文用户:参考 `references/props-design-example.md`,字段用中文(`外观描述``叙事作用``生图设定``候选图``选定图`),内容用中文
- 非中文用户:参考 `references/props-design-example-en.md`,字段用英文(`Appearance``Narrative Role``Image Settings``Candidates``Selected`),内容用对应语言
关键要点:
- 一级标题 `#` 用于物件名
- 外观描述/Appearance 用列表逐项描述(类型、形态、颜色/材质、尺寸/比例、细节特征)
- 生图设定/Image Settings 包含三个子字段:`提示词/Prompt`(英文)、`模型/Model``参考图/Reference`
## 格式校验
design.md 写入后,**必须**运行校验脚本:
```bash
# 校验单个物件
python3 .opencode/skills/mv-creator/scripts/validate_props_design.py .mv/{song_name}/{theme}/props/{item_name}/design.md
# 校验所有物件
python3 .opencode/skills/mv-creator/scripts/validate_props_design.py .mv/{song_name}/{theme}/props/
```
校验规则:必需分区完整性、外观描述列表项、生图设定子字段、候选图非空且文件存在。
- **通过** → 启动预览供用户选图
- **未通过** → 由 LLM 根据校验错误信息自动修正,修复后重新校验
## 文件存储
**目录名规则**`{item_name}` 统一使用英文小写 + 下划线(如 `guitar``pickup_truck`),不使用中文或显示名。该目录名是分镜阶段引用物件的唯一标识。
```
./.mv/{song_name}/{theme}/props/
├── {item_name}/
│ ├── design.md # 物件设计说明
│ ├── candidate_01.jpg # 候选图
│ ├── candidate_02.jpg
│ └── selected.jpg # 最终选定图(用户挑选)
```