---
name: short-drama-storyboard
description: 把中文短剧剧本和视觉设定写成有戏剧职责、连续性边界与冻结关键帧提示词的分镜 Markdown。用户提出“拆分镜/设计镜头/做镜头表”“场次视觉计划/调度故事板”“比较导演方案”“写首帧/关键帧提示词”或检查轴线、站位、视线、持物连续性时使用；不生成媒体。
license: MIT
---

# 短剧分镜与冻结关键帧

把剧本和视觉事实转成有镜头职责、空间连续性和可冻结起点的 `剧集/<EP>/分镜.md`。
每镜使用二级标题 `## SHOT-...`，同镜下用 `### 冻结关键帧提示词` 写起始帧正文。

## Quick Start

```text
用 $short-drama-storyboard 完成 EP001 的正式分镜和每镜冻结关键帧
```

## 入口

当前剧本加必要视觉事实即可直接进入。资产图片提示词与分镜是兄弟分支，不互相等待。只有关键场次
真的存在多个成立导演方案时，才在上下文比较覆盖方案；普通场次直接设计。

创作者可读说明跟随项目语言；冻结关键帧的可复制正文跟随
`short-drama.json#/format/prompt_language`。没有 `short-drama.json` 时正文默认使用 `en`。
分配镜头时长前读取
`short-drama.json#/creator_authority/production_profile/choices/native_duration_seconds`。已声明目标模型但
没有原生时长时先补这一个选择；目标模型也未声明时照常按叙事节奏设计，不猜供应商限制。

冻结关键帧写完之前，谁会出现在这一格画面里还没有定下来。所以三条依据都在关键帧之后回填，
读的是成稿画面，不是镜头意图。

用户没有手工点名参考图，不等于选择文生视频。冻结关键帧后先根据本镜可见人物、地点、关键道具与
起始构图判断一致性需求，再检查项目中已有的真实图片。只有当前可读、内容与用途可核对的图片才能自动绑定；
文件名像某个角色但内容未核对时，仍视为未准备好。

项目里一张都没有时，创作者有三条路，一次把三条都说清楚再让他选，不要只给「先生成参考图」和
「改成文生视频」两个：把手上已有的图片放进项目再绑成 `REF-...`；在自己的工具里出图、本轮先用
`PLAN-...` 写出挂图计划；或者明确改走文生视频。用本套件的生产技能出图只是第一条路的一种做法，
需要项目外的 adapter 与凭据，不是唯一入口。

开始分镜前读 `剧集/<EP>/剧本.md` 的当前内容。创作者说「剧本已确认采用」指的是那个文件，
不是对话里更早的草稿；两者不一致时以文件为准，并把差异说出来。

## 工作流

1. 读取已接受的目标模型原生时长区间，再确认每个场景动作、对白、声音、画面文字和转折由哪些镜头承载。
2. 确定观众何时知道什么、对齐谁、空间如何揭示、转折落在哪个可见动作。
   剧本或 Brief 用“前半段 / 后半段 / 前三分之一 / 最后 N 秒”等相对时间限定首次出现、释放或禁止时，
   先用已接受集长换成明确时间边界再分镜；例如 60 秒作品的“后半段首次出现”不得早于 30 秒。
3. 每镜写清唯一职责、来源、时长、景别/机位、起点、唯一主要动作、终点和声音；用
   `起点 → 唯一动作 → 终点` 直接说明人物、双手与持物怎样完成本镜状态转换。三条依据留到第 6 步。
   有对白、VO 或 OS 时，先按原文和人物说话方式估算完整发声时间，再安排不能重叠的动作、停顿与
   末尾反应；把估时依据简写在本镜「声音」里。具体做法见 [对白估时](references/shot-craft.md#对白估时)。
4. 锁定人物朝向、位置、视线、持物、出入口、屏幕方向和必要状态；上游已有会限制动作空间的持续关系时，把关系投影进本镜起点与终点。
5. 冻结关键帧只投影镜头起点；删除终点才出现的文字、动作、姿态或道具状态。
6. 关键帧成稿后，先从成稿正文读出这一格里需要保持身份、造型或地理的人物、地点和道具，
   再用同一份清单一次填满三条依据：

   - **视觉依据**：清单里每一项写成《视觉设定.md》的条目引用，这是必写字段；
   - **图片提示词项**：清单里已有合适 `IMG-...` 条目的写上，没有的留「无」；
   - **输入参考图**：按清单在用户提供的输入、`剧集/<EP>/制作成果/` 和文档已指向的其他可见媒体中查找匹配图片；
     命中就写入 `REF-...`。一张都没命中时写「无（待补参考图：<本镜缺失的起始帧、人物、地点、道具>）」；
     只命中一部分时，在已有 `REF-...` 后追加「；待补参考图：<仍缺的图片>」，缺口之间只用 `、` 分隔。
     创作者说图片由他自己在别处准备时，把这份清单写成 `PLAN-...` 槽位，本镜即告就绪；
     只有创作者明确表示不用图时，才写「无（创作者已明确选择文生视频）」。

   三条依据读的是同一格画面，所以不能互相矛盾：关键帧里点名的人物或道具，一定出现在视觉依据里。
7. 整集请求完成整集，末端一次报告覆盖、节奏和真实未决选择。

## 镜头要求

- 每镜有唯一职责、明确来源、可见起止状态和合理时长。「来源」以《剧本.md》里真实存在的场景 ID 开头，
  ID 之后可以跟必要短引文，跨场次的镜头用 `、` 连写多条；`creator_markdown_check.py` 会核对每个 ID 都解析得到。
- **引文是认领，不是背景。** 「来源」里引了哪一句，就等于说这一镜负责拍它。引一个本镜画面里
  根本没有的人做的动作——把「另一个人低头去翻自己的稿子」写进一个只拍某一个人的特写——
  那个动作就从所有人的清单上消失了：没有别的镜头认领它，也没有任何一步报它缺失，
  于是它根本不会被拍出来，而这个缺口只有等人看完成片、问「他的反应呢」才浮出来。
  确实看不见就在「视觉依据」末尾写 `；画外：<类别>「<名称>」`，机械核对认这个写法。
- 剧本里的每个场景都要有镜头承载。确实决定不拍某一场时，在《分镜.md》正文开头写一行
  `- 未拍场次：<场景 ID>（理由：……）`，多项用 `；` 连接。SHT-01 一直允许带理由的省略，
  但省略和漏拍在成稿文档里长得一模一样，所以理由要写下来，而不是留在对话里。
- 已声明原生时长时，每个一镜一生成的镜头都落在其最短与最长秒数内。短于下限的叙事动作在合法
  镜长内完成后保持终点；长于上限的动作按可见状态闭合点拆镜，拆出的每镜仍各有唯一职责与可信交界。
- 「唯一动作」写从本镜起点到终点的那条可见状态链；涉及交接、换手、放置或取回时，把接触者、
  接触方式和物件落点写在同一链里，不能让合法终点之间靠镜外瞬移衔接。
- 切镜必须带来信息、权力、情绪、空间或节奏变化；同义重复镜头删掉。
- 相对时间词约束的是事件首次可见或可听的时刻，不因前置动作已经完成就提前释放；分镜时间轴直接
  写出该边界，不把“稍后”“交接后”等叙事顺序当成数值时间的替代。
- 同一动作不跨镜重复发生；终点应能成为下一镜可信起点。
- 关键信息的可读性优先于装饰性运镜，竖屏构图优先保证主体和反应可见。
- 复杂群戏先锁空间锚点和屏幕方向，再决定景别变化。
- 起终边界除了逐人姿态，还要写清本镜依赖的身体—物件—空间关系。关系在镜内不变时两端都保留；确需改变时，过程与终点必须有剧本依据。
- 冻结关键帧只写该瞬间能看见的内容；文字、手指、反射和遮挡要可生成。
- 《视觉设定.md》的连续性锁在生效镜头上原样写进冻结关键帧正文；锁面不因“参考图会交代”而省略。
- 检查发现遗漏就直接修正文档，不生成覆盖表来证明自己检查过。镜头块里的「视觉依据」是本镜的依据字段，不是这里说的覆盖表。

## 视觉依据与图片

- `IMG-...` 是《图片提示词.md》里的**提示词条目 ID**，不代表图片已生成、已提供或可用。
- 已有《图片提示词.md》且本镜需要其中条目时，写「图片提示词项」：ID 必须匹配该文档的可见二级标题，同时写中文名称和它控制的身份、造型、地理、构图或其他边界。ID 只用于查找，不让英文 slug 承担含义。
- 没有《图片提示词.md》或没有合适条目时，写「图片提示词项：无」，再以中文指向《视觉设定.md》的人物、地点或道具项及控制范围。这是正常直接入口；不为继续分镜而编造 ID，也不补造另一个阶段。
- 「视觉依据」是每镜必写字段：冻结关键帧成稿后按实际画面反查，需要保持身份、造型或地理的可见人物、地点和道具**必须**逐项写成
  `《视觉设定.md》·<人物|造型|地点|道具>「<名称>」（控制：<范围>）`，多项用 `；` 连接，名称必须能在《视觉设定.md》里找到同名标题。
  小比例或背景人物只要需要认出身份仍在范围内，画外人声和不可识别局部不算；本镜确实没有这类条目时写「视觉依据：无」。
- 关键帧正文出现了某个条目的名字，但它本镜确实不在画面里（物主已离场、名字只出现在屏幕文字上、和某个词同形），
  在「视觉依据」末尾追加 `；画外：<类别>「<名称>」`。这是如实记录，不是把不在场的人写成在场。
- 某个条目的名字在正文里根本不可靠（`道具「手机」` 会撞上「手机店」，`人物「小雨」` 会撞上「下着小雨」），
  在《视觉设定.md》该条目写 `画面代称：无`，机械核对就不再按名字找它；这一镜是否画到它仍由「视觉依据」如实回答。
- 三条依据都描述同一格画面，不是本镜的资产花名册。「控制」只写这一格承担得起的范围：手背特写不写「本集造型」，
  只出现屏幕和一根手指的镜头不写「体态」。上一镜的绑定不因为“角色还在这场戏里”就顺延到下一镜。
- 关键帧正文点名的人物、地点或道具（《视觉设定.md》条目名称或它声明的「画面代称」），必须出现在本镜「视觉依据」里；
  `creator_markdown_check.py` 会机械核对这一条。它只抓**被名字点到**的那一类：正文只描述不点名
  （"a boy in a hooded jacket"）时机器不发声，画面里有谁仍然要靠这一步自己读出来，不能等报错。
- 本镜需要保持一致、但《视觉设定.md》里还没有条目的可见物件（跨镜出现的道具尤其常见），不能因为
  「写不进视觉依据」就当它不需要一致性。四镜都出现的一支笔和一件外套是同一类问题。做两件事：
  正文里逐镜用完全相同的描述把它钉住，并在本轮末尾报告里点名它、建议 `$short-drama-assets` 补条目。
  不自行新增《视觉设定.md》条目，也不把它塞进「视觉依据」冒充已有条目。
- 「输入参考图」是独立的另一条轴：创作者已提供，或经确认生产且当前可读的实际图片，用不同于 `IMG-...` 的稳定 `REF-...` 槽位引用。每个槽位同时写显式顺序、仅用 `/` 分隔的项目相对路径、中文名称、「用途」、「控制」和「不得控制」范围；没有时必须区分「待补参考图」和「创作者已明确选择文生视频」，只准备了一部分时则保留已有 `REF-...` 并追加「；待补参考图：……」。不得把提示词条目、还没生成的图或对话中的描述写成 `REF-...`——`REF-...` 的意思是「文件此刻在项目里」。
  创作者会在生成时自己挂载的图片走下面的 `PLAN-...`：它同样不声称文件存在，只是把这一镜要挂哪几张写清楚。
- 每个 `REF-...` 必须逐字遵循唯一格式：`REF-<slot>（顺序：<n>）· <项目相对路径>《<中文名称>》（用途：<用途>；控制：<范围>；不得控制：<范围>）`。注意「顺序：」后的全角冒号和路径前的中点 `·`；不得用 `/` 代替字段分隔符。多图只用中文分号 `；` 连接，部分缺图则在最后一个完整槽位后接 `；待补参考图：<缺口>`，缺口之间用 `、` 分隔。写完后按此格式回读一次再交付。
- `用途` 只能取 `身份`、`造型状态`、`地理`、`构图`、`尺度`、`效果`、`起始帧`、`结束帧`、`风格` 之一；逐条能控制什么见 `$short-drama` 的《参考角色》。
  本镜的起始画面图写 `用途：起始帧`，人物图写 `用途：身份` 或 `造型状态`，场景图写 `用途：地理`，道具状态图按它决定的那一件写。
  一张图承担两件事就拆成两个槽位；一镜最多一张 `起始帧` 和一张 `结束帧`，写 `结束帧` 时必须同时有 `起始帧`。
  下游视频提示词靠 `用途` 说清「本镜送哪一张分镜起始帧、哪些人物/道具/场景图」，所以缺 `用途` 的槽位不算准备好。
- 本镜还没有起始画面图时有两条路。创作者用本套件生产：`用途：起始帧` 那一张由 `$short-drama-produce`
  用本镜的冻结关键帧正文生成，job 的 `source` 写 `剧集/<EP>/分镜.md`、`source_entry` 写本镜 `SHOT-...`，
  产出落在 `剧集/<EP>/制作成果/images/`，拿到真实文件后再绑成 `REF-...`。创作者在自己的工具里生产：
  把冻结关键帧正文复制过去出图，再把文件放进项目绑成 `REF-...`，或者本轮先写成
  `PLAN-SHOT-START（顺序：<n>）· <本镜 SHOT-...>《本镜冻结关键帧》（用途：起始帧；……）`。
  两条路都没走时，它仍然只是「待补参考图」里的一项。
- 创作者在项目外出图、图片不进项目时，用 `PLAN-...` 槽位：语法与 `REF-...` 逐字相同，只把项目相对路径
  换成 `IMG-...` 或 `SHOT-...` 条目 ID，`IMG-...` 的中文名称必须与《图片提示词.md》标题一致。
  它声明的是「这张图由创作者在生成时按这个顺序挂载」，不声称项目里有文件，因此不是「待补」，
  也不能拿来投产。真实文件进了项目就改写成 `REF-...`。两种槽位可以混用，`顺序` 统一连续编号。
- 自动绑定不是把所有图都塞进一镜。只选本镜可见、且身份、造型、地理、关键道具状态或起始构图确实需要稳定的图；逐张写清它的用途、能控制什么、不得控制什么。
- 两条轴可以独立组合：有合法的图片提示词项时，输入参考图仍可为「待补」或创作者明确选择的文生视频；创作者给了真实参考图时，图片提示词项也可为「无」。

## 按需知识

默认只读本 SKILL、当前剧本和必要视觉事实。遇到对应问题时只打开一份：

- 阶段边界与规则分级：[阶段契约](references/stage-contract.md)
- 镜头职责、切镜理由和边界：[镜头手艺](references/shot-craft.md)
- 实际制作所需的镜头语法：[生产镜头语法](references/production-shot-grammar.md)
- 关键场次比较导演方案：[场次视觉计划](references/scene-visual-plan.md)
- 检查原文是否都有画面承载：[Coverage Audition](references/coverage-audition.md)
- 多人、群体和复杂空间调度：[调度手册](references/blocking-playbooks.md)
- 冻结瞬间、注意中心和可读性：[关键帧手艺](references/keyframe-craft.md)
- 漫剧/二维漫画形态的共享画风词汇：[漫剧关键帧词表](references/comic-keyframe-lexicon.md)
- 剧本事实到关键帧的完整示例：[剧本到关键帧](references/screenplay-to-keyframe-example.md)
- 拆镜、并镜和稳定镜头 ID：[镜头修订身份](references/shot-revision-identity.md)
- 完成前的连续性检查：[审查与示例](references/review-and-fixtures.md)

## 修订

保留未受影响的镜头 ID。拆镜、并镜或改变镜头职责时，说明哪些下游视频提示词需要刷新，但不自动
重写用户没点名的文件。

## 完成

点名范围的原文都有镜头落实，每镜职责不重复、空间与状态连续、起止边界可制作、关键帧可冻结，
每镜「来源」解析到《剧本.md》的真实场景、剧本里每个场景都有镜头承载或已记入「未拍场次」，
且每镜关键帧里的可见人物、地点、道具都在本镜「视觉依据」里，即完成。画面需要、但《视觉设定.md》
还没有条目的可见物件，在末尾报告里逐项点名。本次请求同时修改
《图片提示词.md》与《分镜.md》时，当轮刷新受影响镜头的引用；不另建覆盖表。
视频提示词、生产和审查只有用户点名时开始。
五份创作文档齐备后，可转 `$short-drama` 对跨文档结构做一次机械核对；内容质量仍由创作者审查。

## 安装维护

只有安装、升级或排障时运行 `python3 scripts/selftest.py`。
