# Short Storyboard

> Storyboarder将剧本转化为完整分镜提示词。包含内部自检循环（最多3轮）。

- Skill: `wddxh/short-storyboard` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add wddxh/short-storyboard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wddxh/short-storyboard/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wddxh (https://skillmd.com/u/wddxh)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wddxh/short-storyboard

---


## 输入

### 文件读取
- 从 `story/episodes/$ARGUMENTS[0]/outline.md` 的「本集资产清单」中提取本集引用的资产名称
- 使用 Glob 获取 `assets/**/*.md` 全部文件路径列表，仅读取文件名与清单中资产名称匹配的文件
- `story/episodes/$ARGUMENTS[0]/keyframes.json` — 必须读取（关键帧描述与序号，决定每个 shot 引用哪些 keyframe）
- 使用 Glob 获取 `assets/keyframes/$ARGUMENTS[0]/*.md` — 必须列出（本集所有关键帧 .md，用于 shot 引用）
- `story/episodes/$ARGUMENTS[0]/script.md` — 必须读取
- `story/episodes/$ARGUMENTS[0]/outline.md` — 必须读取（含资产清单）
- `config.md` — 必须读取
- `skills/short-storyboard/rules.md` — 必须读取并严格遵循（输出格式、字段约束、规则）

### 动态参数（$ARGUMENTS）
- `$ARGUMENTS[0]` — 当前集数（如 ep01）

## 职责描述

### 核心使命

把短视频剧本转化为完整分镜——每个镜头是即梦视频模型的一次独立提交，提示词必须自包容、画面与声音连贯叙事、状态与上下镜头衔接。**每个 shot 必须围绕 keyframes 展开**：keyframes.json 是 director 提供的本集视觉锚点序列，每个 shot 必须引用 ≥1 张 keyframe 作为画面参考；相邻 shot 若需要画面连续，应在前 shot 末段与后 shot 起始段引用同一张 keyframe（首尾共享）。下游和 storyboarder-storyboard 相同（即梦视频模型 + short-review-storyboard）。和系列剧分镜不同：单集短视频时长有限（通常 1-3 分钟），铺垫和高潮挤在一集内，分镜密度更高、节奏更紧。

### 工作思路

**整体规划（动笔前）：**

1. **建立三层认知**：通读 script + outline，建立三层心理模型——剧情层（铺垫/冲突/高潮/收束的弧线）、信息层（本集需要观众知道的事——主角姓名/身份/伏笔，对照「角色出场」和故事弧线）、状态层（角色的视觉与知识状态如何演变）
2. **读 keyframes.json 建立视觉锚点序列**：按集内序号通读所有 keyframe 的 narrative_purpose + composition，形成本集"视觉节拍"——每张 keyframe 是一个剧情视觉节点，shot 规划必须围绕这些节点展开
3. **划分场景节拍 + 围绕 keyframes 切分 shot**：剧本已按场景组织，每个场景内识别关键节拍。**按 config「单镜头时长」规划每个 shot 包含哪些 keyframe 对应的剧情**——若一个 shot 时长够覆盖多张 keyframe 的画面演进，则该 shot 引用多张 keyframe；若一个 keyframe 的画面需要长时间表现则单 keyframe 撑一个 shot。**对照 config「每集分镜数」预算分配镜头**——短视频时长有限，节拍数要节制，节拍太多让节奏支离破碎，太少让镜头空洞
4. **首尾策略决定**：第一镜头——根据故事类型设计开场抓眼方案（紧张/悬念/视觉冲击/共鸣），前几秒决定观众是否继续看；集尾镜头——呼应大纲的「结局设计」（反转/温馨/幽默/...），结局执行必须有力度，最后几秒包含结束转场

**每个镜头的设计：**

5. **shot ↔ keyframe 引用映射**：本 shot 涵盖的剧情画面对应 keyframes.json 中的哪些 KF-id？两处都要写：(a) 头部「引用资产」字段加入 keyframe 引用（用于人类可读与自检）；(b)「画面与声音描述」正文中以 `画面参考 [KF-id](path)：{叙事}` 形式引用同一批 keyframe（用于视觉锚定）；头部声明与正文引用必须一致。**相邻 shot 画面连续时**首尾共享同一 keyframe 作为视觉衔接锚
6. **节奏曲线分配**：短视频节奏比系列剧更紧——铺垫段适度（不能像系列剧那样长），冲突段加快，高潮短而强。**若 config「单镜头时长」是范围** → 在范围内按节奏需要灵活分配，不要每个镜头都同样时长；**若 config「单镜头时长」是单一数字** → 每个镜头时长必须严格等于该值，节奏曲线只通过镜头数量、内容密度、景别变化来体现。**镜头总数遵循 config「每集分镜数」**
7. **景别按叙事功能选择**：远/全景建立场景与空间、中景表现互动与动作戏、近景承载对白和反应、特写放大情绪/关键道具/决定性表情、俯/仰表达力量关系或视角差异。**一段戏的景别要有变化**——全程同一景别会让短视频更显平淡
8. **镜头运动按情绪选择**：固定（稳定叙事/对白）；推（聚焦关键/情绪积累）；拉（揭示全貌/情感后撤）；摇/移/跟（跟随角色或揭示空间）；升/降（突破或压抑）
9. **声音设计层级**：信息传达**优先用主角内心独白**——短视频节奏快，观众无法慢慢推断，内心独白还能增强代入感；其次对白和讨论；最后才是旁白；旁白必须以具体角色口吻并标声音特征；任何镜头不得超过 2s 无声窗
10. **状态衔接先于内容**：写本镜头前先提取上一镜头结束状态（视觉位置/姿势/手持物 + 知识"已告知什么"），本镜头开头要么直接衔接，要么用一两句写出过渡。任何视觉或知识突变必须有显式过渡描写。**衔接通过本镜头自身的描述实现，绝不通过"延续上镜头"等引用实现**
11. **「画面与声音描述」连贯叙事**：每个时间段是一段连贯文字，画面动作与台词自然交织。视觉描述用 AI 视频模型能理解的具体直白语言——直接描写身体姿态、动作轨迹、面部表情、环境细节、光影效果——禁止文学比喻和抽象修辞。禁止画面/台词/音效分栏列项
12. **画面文字与不可感知信息处理**：招牌/屏幕/信件等画面文字 → 改角色读出（AI 难以稳定渲染文字）；气味/温度/触感等不可感知信息 → 改角色台词表达

**整集级自检：**

13. **keyframe 覆盖自检**：枚举 keyframes.json 中所有 KF-id，每张 keyframe 必须至少被一个 shot 引用；未被引用的 keyframe 必须返工。**每个 shot 必须引用 ≥1 张 keyframe**——零 keyframe 引用的 shot 必须返工
14. **铺垫覆盖**：枚举剧本中的铺垫元素+回收点，逐项映射到具体镜头，时序检查。短视频铺垫挤压风险更高，必须保证每个回收点在前都有铺垫镜头
15. **时长综合流程**：估算非台词时间 → 推算台词可用时间 → 创建阶段心算评估 → 综合判断。短视频总时长本就紧，台词超时风险更高，脚本批量验证不可省

### 常见误区

- **零 keyframe 引用 shot** — 模型容易写出"画面我自己描述就够了"的 shot 而忘了引用 keyframe — 每个 shot 必须引用 ≥1 张 keyframe 作为视觉锚点；自检必查
- **跳过 keyframe** — keyframes.json 有 N 张，模型只引用了部分 — 每张 keyframe 必须至少被一个 shot 引用，未被引用必须补
- **相邻 shot 画面连续却不共享 keyframe** — 本 shot 结尾画面 = 下 shot 起始画面，但两 shot 引用了不同 keyframe → 视频生成时画面不连续 — 首尾共享同一 keyframe
- **剧本搬运** — 把剧本台词直接搬到镜头「画面与声音描述」里，没做视听设计；剧本是舞台指示，分镜是视频模型提示词，性质不同 — 每镜头先想画面构图（景别/运动/视觉重点），再嵌入台词
- **跨镜头引用** — 模型本能想写"接上镜头"，但 dreamina 每镜头独立生成，rules.md 已禁但写流畅故事时本能违反 — 每镜头独立描述完整起始状态
- **铺垫挤压** — 短视频时长有限，模型本能压缩铺垫多塞冲突；但缺铺垫的高潮是"莫名其妙的反转" — 宁可少一个事件，保证每个事件有足够铺垫镜头
- **状态突变** — 模型按剧情节点直跳，不管视觉/知识连贯 — 执行状态连贯自检（前镜头结束状态=本镜头开头状态？）
- **台词超时** — 短视频总时长本就紧，超时更明显 — 执行时长综合流程，关键是脚本验证不是估算

## 规则参考

- `skills/short-storyboard/rules.md` — 必须读取并严格遵循

## 分镜自检

生成分镜后，按照 `skills/short-storyboard/rules.md` 中的输出格式、字段约束和规则逐条自检（最多 3 轮）：
1. 全部达标 → 完成
2. 不达标 → 按照反馈修正问题 → 重新自检
3. 3 轮后仍有不足 → 接受当前结果

## 输出

### 文件操作
- 使用 Write 将分镜写入 `story/episodes/$ARGUMENTS[0]/storyboard.md`

