| name | creator-keyframe-prompts |
| description | Creator 把 keyframes.json 翻译成关键帧 .md 文件(含视觉描述和图像生成提示词),落盘到 assets/keyframes/{ep}/。 |
| user-invocable | false |
| context | fork |
| agent | creator |
| allowed-tools | Read, Write, Edit, Glob, Bash |
| model | sonnet |
输入
文件读取
story/episodes/$ARGUMENTS[0]/keyframes.json — 必须读取(关键帧描述源)
story/episodes/$ARGUMENTS[0]/outline.md — 必须读取(本集资产清单,验证 composition 中 <> 标签)
config.md — 必须读取(语言、视频风格、目标图像模型)
assets/**/*.md — Glob 列出现有资产文件路径(用于解析 composition 中 <> 标签到 .md 文件路径)
skills/creator-keyframe-prompts/rules.md — 必须读取并严格遵循
动态参数($ARGUMENTS)
$ARGUMENTS[0] — 当前集数(如 ep01)
$ARGUMENTS[1] — 模式(可选,full 或 incremental,缺省为 full)
$ARGUMENTS[2] — 仅 incremental 模式:dirty 列表(空格分隔的 KF id,如 KF-EP01-003 KF-EP01-005)
职责描述
核心使命
把 keyframes.json 中每张关键帧的结构化描述(composition / scene / characters / props / shot_size / camera_position / lighting_tone / action / emotion)翻译成图像模型可消费的提示词,并落盘为独立 .md 文件到 assets/keyframes/{集数}/{KF-id}.md。下游消费者是 creator-generate-images(按集扫 .md 出图)和 creator-image-dreamina(吃 .md 直接出图)。不修改 keyframes.json——keyframes.json 是 director 的产物,本 skill 只读不写。
工作思路
- 读 keyframes.json,得到关键帧数组
- 读 config,确定目标图像模型、视频风格、语言
- Glob
assets/**/*.md 建立"资产名 → .md 路径"映射表(用于把 composition 中 <张三> 解析到 assets/characters/张三.md)
- 增量模式:仅处理
$ARGUMENTS[2] 列出的 KF id;全量模式:处理全部
- 对每张关键帧:
a. 解析 composition 中所有
<资产名> 标签
b. 校验每个资产名能在 Glob 出的资产清单中找到(找不到则报错——说明 director-keyframes 没正确登记资产清单)
c. 整理 ## 引用资产 区块:按 composition 中 <> 标签首次出现顺序枚举、去重,每条写 - [资产名](从 keyframe .md 到资产 .md 的相对路径)
d. 写 .md 文件:拼接 composition + 镜头语言(shot_size + camera_position)+ lighting_tone + 视频风格 suffix → 形成 prompt(资产名以裸名字出现,不带 markdown 链接)
e. 落盘到 assets/keyframes/{集数}/{KF-id}.md
- 清理孤儿 .md:full 模式扫描
assets/keyframes/{集数}/ 中所有 .md,删除不在 keyframes.json 的;incremental 模式仅在 dirty 列表中的 id 不在 keyframes.json 时删对应 .md
- 输出生成摘要:成功 N 张、删除 N 张、失败 N 张
常见误区
- 改 keyframes.json — 本 skill 只读 keyframes.json,不修改它;任何对描述的修订都是 director-keyframes 的职责 — 严格只读
- prompt 写得过于自由 — 模型容易把 description 重写一遍;prompt 应该忠实保留 description 中的所有视觉信息(角色位置/朝向/动作/光线/景别)— 翻译不是改写,结构化字段必须 1:1 反映到 prompt
- 资产引用断链 — composition 写了
<某资产> 但 assets/ 中找不到对应 .md — 报错并停止处理本帧(不影响其他帧),不要"自动创建"或"忽略"
- 自动切英文 — 模型本能切换 prompt 语言为英文 — 严格遵循 config.md 语言设置
- 风格漏注 — 写 prompt 时忘了加 config 的视频风格 suffix("3D写实风"等)— 每条 prompt 末尾必须包含视频风格描述
- 增量模式越权 — 收到 dirty 列表后顺手处理列表外的 keyframe — 严格只处理 dirty 列表中的 id
- prompt 正文写 markdown 链接 — 「图像生成提示词」段写成
[张三](../../characters/张三.md)站在...❌ — 引用关系只在 ## 引用资产 区块声明;正文写裸名字 张三站在...✅
## 引用资产 区块漏写或顺序乱 — composition 写了 <硬币> 但 ## 引用资产 没列;或顺序不是 composition 中首次出现顺序 — 按 composition 标签首次出现顺序枚举、去重,每个 <资产名> 都必须在区块里
规则参考
skills/creator-keyframe-prompts/rules.md — 必须读取并严格遵循
输出
文件操作
- 使用 Write 创建/覆写
assets/keyframes/{集数}/{KF-id}.md(每张关键帧一个文件)
- 使用 Bash 删除孤儿
assets/keyframes/{集数}/{KF-id}.md(按上述清理规则)
返回内容