# 五份创作文档

正文优先供创作者阅读；下文的标题、引用和参考字段用于跨文档核对与投产定位，应按所示语法填写。
内容按本集需要组织，不为填满示例补造事实。

## `剧本.md`

- 一级标题必须以集号开头，例如 `# EP001 集名`。
- 每场用 `## EP001-SC001 内 · 地点 · 时间/天气`（空间性质也可写 `外` 或 `内外`）。
- 对白使用 `角色（可选表演提示）：台词`；画外音、画外对白、声音、可见文字、连续性和转场分别使用 `[VO]`、`[OS]`、`[SFX]`、`[画面文字]`、`[连续性]`、`[转场]`，不要把含冒号的动作叙述误写成对白。
- 不为每段台词生成 block ID，不另写节拍表、索引或录音表；用户明确需要时再做。

## `视觉设定.md`

按人物、造型、地点和道具分节，每一项自己是一个二级标题。每项只写后续生成真正需要保持的识别锚点、
当前状态与变化原因，不要抄剧情摘要，也不要把瞬时姿势或镜头角度升级成新资产。

```markdown
## 人物 · 许棠
- 识别锚点：窄长眼、左眉尾旧疤、肩背略绷。
- 本集造型：深灰旧西装，右袖口有雨水深痕。
- 状态变化：EP001-SC003 后右手掌沾血。
- 画面代称：Jiangchen
- 连续性锁：LOCK-XUTANG-SUIT《许棠深灰旧西装》（镜头：入画；图片提示词项：IMG-XUTANG-SHEET）· 锁面：dark-grey worn wool suit
```

二级标题固定写成 `## <人物|造型|地点|道具> · <名称>`；分镜的「视觉依据」按这个标题定位条目。

**画面代称**是提示词正文里直接叫到这一条的名字，按项目提示词语言写；多个写法用 `、` 分隔，
拼写与正文保持一致。未声明这一行时，检查器回退到条目名称；显式声明后只匹配列出的代称，
不会自动加入中文名。需要同时匹配两者时都写入；写 `画面代称：无` 则取消名称匹配。
`creator_markdown_check.py` 用这些名称核对冻结关键帧与「视觉依据」的覆盖。

完整检查按已接受生产档案中的 `video_prompt_language`、项目 `format.prompt_language`、默认 `en`
的顺序取语言。该语言不是中文时，**所有人物条目**都要给出可用代称，或在正文从不点名时写
`画面代称：无`，不以是否已被镜头引用为条件。显式代称至少两个字符；仅列出与条目名相同的中文名
仍不能满足这项非中文检查。地点和道具不强制声明，名称容易误匹配时可主动取消名称匹配。

识别锚点写给创作者读；**连续性锁**写给执行端逐字带走。跨镜出现、观众看得出不一致、又不随剧情
改变的可见事实（服装主色与形制、道具颜色材质、发型长度、伤口位置）才上锁，会变的部分留在
`状态变化`。一行一把锁：

- `LOCK-...` 在本集唯一，与 `IMG-...`、`REF-...`、`SHOT-...` 互不混用；
- `镜头：` 写 `入画`、`全集` 或 `、` 分隔的 `SHOT-...` 列表，三者不能混写。`入画` 指「视觉依据」列出本条目的所有镜头，
  资产阶段还没有分镜时就能写；锁的是服装、发型这类只在部分景别里看得见的事实时，把锁写在对应的 `造型` 条目下，
  只拍脸的镜头不列这个造型，就不会被迫带上锁面；
- `；图片提示词项：` 可选，写 `、` 分隔的 `IMG-...` 列表；
- `· 锁面：` 之后是被逐字带走的最小名词短语，用项目提示词语言写，不含标点、动作和剧情。

生效范围内的冻结关键帧、`MOTION-...` 正文和被点名的 `IMG-...` 正文都必须含有这段锁面（忽略
大小写）；`creator_markdown_check.py` 会机械核对。没有锁的项目不受影响。

## `分镜.md`

每镜一个二级标题。镜头 ID 在本集内唯一并保持稳定；修订镜头内容时不要无故换 ID。

```markdown
## SHOT-EP001-001 · 门外停步
- 来源：EP001-SC001
- 时长：4s
- 目的：先让观众看见他不敢进门，再揭示门内争吵。
- 景别/机位：中近景，门框外侧，轻微低机位。
- 运镜：固定；他收手的那一下要自己被看见，机位不抢。
- 起点：许棠右手悬在门把上方。
- 唯一动作：门内玻璃落地声触发许棠收回右手，视线从门把转向门缝。
- 终点：许棠右手垂回身侧，视线落在门缝。
- 图片提示词项：IMG-XUTANG-SHEET《许棠角色板》（控制：身份、体态、本集造型）；IMG-CORRIDOR-NIGHT《夜间走廊场景板》（控制：空间地理、门位、光向）。
- 输入参考图：无（创作者已明确选择文生视频）。
- 视觉依据：《视觉设定.md》·人物「许棠」（控制：身份、体态、本集造型）；地点「旧走廊」（控制：空间地理、出入口、光向）。

### 冻结关键帧提示词
> 按项目提示词语言编写的冻结瞬间正文……
```

「运镜」写行为和理由，固定也要写理由，如「运镜：固定；这句话没有落到谁身上」。

只写有镜头职责的镜头。关键帧提示词必须与该镜“起点”一致；终点才出现的文字、动作或状态不得
提前进入静帧，也不要把整段动作塞进静帧。

一场戏拍成多镜时，在第一个 `SHOT-...` 之前为它写一段「场景站位」，镜头只写相对它的变化。
位置写场景锚点和人物关系，视线写看向谁或什么；冻结关键帧和视频提示词再按本镜机位写前后景、朝向和画面左右：

```markdown
## 场景站位 · EP001-SC001 · 旧走廊
- 固定锚点：走廊一端是江家的门，另一端是楼梯口；顶灯在门前
- 人物：许棠站在门外，面对门，背对楼梯口
- 轴线：许棠 ↔ 门；working side：楼梯口一侧
- 变化：无
```

三类依据不得混用：

- **图片提示词项**：《图片提示词.md》中可见二级标题的 `IMG-...` 条目，只证明提示词存在；
- **输入参考图**：创作者已提供，或经确认生产且当前可读的真实图片；每张图用稳定 `REF-...` 槽位绑定显式顺序、可见项目相对路径、中文名称、用途、控制与不得控制范围；
- **视觉依据**：《视觉设定.md》中的文字事实，不冒充图片。

**「视觉依据」是每镜必写字段，也是这一格画面的人物、地点与道具清单。** 冻结关键帧写完之后，
按成稿画面逐项回填，语法固定：

```markdown
- 视觉依据：《视觉设定.md》·人物「许棠」（控制：身份、造型）；地点「旧走廊」（控制：空间地理、出入口、光向）。
```

- `《视觉设定.md》·` 只写一次，条目之间用 `；` 连接，条目名称必须能在《视觉设定.md》里找到同名标题；
- 画面里需要认出身份、造型或地理的人物、地点和道具都要在列，小比例或背景人物只要需要认出身份仍在范围内；
- 画外的人声、不可识别的局部和不需要保持一致的临时物件不在列，也不要为凑齐而写进来；
- 「控制」写这一条在本镜真正决定什么，只写这一格画面承担得起的范围——手部特写不写「本集造型」；
- 本镜确实没有需要保持一致的可见条目时写 `无`，这不是省略的借口：关键帧里点名的条目仍会被机械核对。

关键帧正文提到某个条目的名字、但它本镜确实不在画面里时（物主已离场、名字只出现在屏幕文字上），
在同一字段末尾追加画外清单，如实说明它被提到而不在场：

```markdown
- 视觉依据：《视觉设定.md》·地点「教室」（控制：课桌排列、窗位）；道具「旧书包」（控制：磨损、颜色）；画外：人物「小明」。
```

某个条目的名字在正文里根本不可靠时——`道具「手机」` 会撞上「手机店」，`人物「小雨」` 会撞上「下着小雨」——
在《视觉设定.md》该条目写 `画面代称：无`，机械核对不再按名字找它；这一镜是否画到它，仍由「视觉依据」如实回答。

每个 `REF-...` 槽位的语法是：

```markdown
REF-<slot>（顺序：<n>）· <项目相对路径>《<中文名称>》（用途：<用途>；控制：<范围>；不得控制：<范围>）
```

`用途` 回答「这一张在本镜决定什么」，取值只能是
`身份`、`造型状态`、`地理`、`构图`、`尺度`、`效果`、`起始帧`、`结束帧`、`风格` 之一，逐条含义见
[参考角色](reference-roles.md)。一张图承担两件事时拆成两个槽位，不写「全参考」。一镜最多一张
`起始帧`、一张 `结束帧`，且写 `结束帧` 时必须同时有 `起始帧`。有了 `用途`，视频提示词就能直接回答
「本镜要送哪一张分镜起始帧、哪些人物/道具/场景图」，生产端也不必再猜每张图的职责。

创作者在别处出图、且图片不放进项目时，用 `PLAN-...` 槽位；图片导入项目后即可写 `REF-...`。`PLAN-...`
语法与 `REF-...` 完全一致，只把定位符从项目相对路径换成本项目已有的条目 ID：

```markdown
PLAN-<slot>（顺序：<n>）· <IMG-... 或 SHOT-...>《<中文名称>》（用途：<用途>；控制：<范围>；不得控制：<范围>）
```

`IMG-...` 指《图片提示词.md》的板子，`SHOT-...` 指那一镜的冻结关键帧；两者都必须在当前项目里
解析得到，`IMG-...` 的中文名称还要和它的标题一致。`PLAN-...` 说的是「这张图不在项目里，
生成时由创作者按这个顺序挂载」，与「已有图片」和「待补」都不是同一句话：它不声称文件存在，
也不表示还在等谁。`顺序` 就是创作者在生成界面里挂图的次序，也是可复制正文里 `<Picture N>` 的编号。
一张已经在项目里的图仍然写 `REF-...`；两种槽位可以在同一条声明里混用，`顺序` 在两者之间统一连续编号。

「输入参考图」有四种准备结果，不能把它们混在一起：

- 已绑定 `REF-...`：图片真实存在于项目中，可进入图生/参考生视频，也可交给生产技能执行；
- 已声明 `PLAN-...`：图片由创作者在项目外准备并在生成时自行挂载，视频提示词照常产出；
  本套件没有文件可送，所以这些镜头不能进入生产技能，需要投产时先把真实文件放进项目并改写成 `REF-...`；
- 待补：一张都没有时写 `无（待补参考图：……）`；只缺一部分时保留已有 `REF-...` 或 `PLAN-...`，末尾追加 `；待补参考图：……`。视频提示词尚未就绪；
- `无（创作者已明确选择文生视频）`：创作者在了解一致性影响后明确不用图，可进入文生视频。

`IMG-...` 只用于查找，不靠英文 slug 向创作者解释含义。每个引用都同时写简短中文名称和
控制范围，且 ID 必须在当前《图片提示词.md》标题中存在。中文名称帮助阅读，不取代 ID 定义条目身份。没有该文档或没有合适条目时，分镜仍可
直接从剧本和视觉设定进入，使用下列回退格式，不编造 ID 也不补造提示词阶段：

```markdown
- 图片提示词项：无
- 输入参考图：无（待补参考图：许棠身份、旧走廊地理、本镜起始帧）
- 视觉依据：《视觉设定.md》·人物「许棠」（控制：身份、造型）；地点「旧走廊」（控制：空间地理、出入口、光向）。
```

提示词条目和真实图片是独立的：有 `IMG-...` 条目时，「输入参考图」可以仍为「无」；创作者给了
真实图片时，也不需要为它编造提示词条目：

```markdown
- 图片提示词项：无
- 输入参考图：REF-XUTANG-LOOK（顺序：1）· 输入/参考图/许棠定妆.jpg《许棠定妆照》（用途：造型状态；控制：本集造型、面料质感；不得控制：镜头构图、动作、表情）
- 视觉依据：《视觉设定.md》·人物「许棠」（控制：身份、体态）。
```

只准备了一部分时，已核对的图不丢弃，但必须把缺口留在同一字段中：

```markdown
- 输入参考图：REF-XUTANG-LOOK（顺序：1）· 输入/参考图/许棠定妆.jpg《许棠定妆照》（用途：身份；控制：脸型、体态、本集造型；不得控制：场景地理、构图、动作）；待补参考图：夜间走廊地理、本镜起始帧
```

创作者在自己的工具里出图时，本镜要挂哪几张、按什么次序挂，写成 `PLAN-...`：

```markdown
- 图片提示词项：IMG-XUTANG-SHEET《许棠角色板》（控制：身份、体态）
- 输入参考图：PLAN-SHOT-START（顺序：1）· SHOT-EP001-001《本镜冻结关键帧》（用途：起始帧；控制：起始构图、站位；不得控制：尚未发生的动作、终态）；PLAN-XUTANG（顺序：2）· IMG-XUTANG-SHEET《许棠角色板》（用途：身份；控制：脸型、体态、本集造型；不得控制：构图、动作、表情）
- 视觉依据：《视觉设定.md》·人物「许棠」（控制：身份、体态）；地点「旧走廊」（控制：空间地理、出入口）。
```

两者也可同时存在，但各用各的定位符：

```markdown
- 图片提示词项：IMG-XUTANG-SHEET《许棠角色板》（控制：身份、体态）
- 输入参考图：REF-CORRIDOR-COMPOSITION（顺序：1）· 输入/参考图/走廊构图.jpg《走廊构图参考》（用途：构图；控制：占画比例、留白；不得控制：人物身份、动作、剧情事件）
- 视觉依据：《视觉设定.md》·人物「许棠」（控制：身份、体态）；地点「旧走廊」（控制：空间地理、出入口）。
```

## `图片提示词.md`

每项一个可投产的角色板、场景板、道具板或状态图。标题使用 `IMG-...` ID；正文放在
`### 可复制提示词` 的引用块里，前面只保留用途和参考约束。
这里的 `IMG-...` 是提示词条目 ID，不是已生成图片的记录。

```markdown
## IMG-XUTANG-SHEET · 许棠角色板
- 用途：锁定身份、体态和本集造型。
- 参考：无；若有真实参考图，使用与分镜相同的完整 `REF-...` 格式，说明顺序、项目相对路径、中文名称、用途、控制与不得控制范围。

### 可复制提示词
> 按项目提示词语言编写的正文……
```

## `视频提示词.md`

每个正式镜头对应一个 `MOTION-...` 条目，ID 沿用 `SHOT-...` 的编号部分。若「输入参考图」中的 `REF-...` 与 `PLAN-...` 已全部就绪，使用图生视频，正文
只需重述运动所需的局部起点和防漂移事实；只有「输入参考图：无（创作者已明确选择文生视频）」才使用文生视频，正文必须自足地
包含人物、造型、地点、构图、光线等本镜需要的静态视觉锚点，不能用 `preserve/保持已有外观`
代替模型并未收到的图片。「待补参考图」会阻止最终视频提示词；视频文档中的「输入参考图」必须与对应分镜逐字一致。

可复制正文里被引号或 `<d>` 包起来的中文，必须能在《剧本.md》或《视觉设定.md》里找到同样的字。
提示词负责把已确认的台词送到执行端，不负责替角色补一句更好的台词。

除非剧本或创作者明确要求，视频正文用项目提示词语言直接声明全镜任何时刻都不生成非画内字幕、
caption 和对白文字叠加，不能只写抽象的“文字层为空”，让对白只通过声音与口型发生。旗帜、标牌、
屏幕等画内文字另走已接受的文字政策：`exact_readable` 逐字携带准确
字符、语言、承载面和位置；关闭字幕不能写成会同时抹掉这些画内文字的全局 `no-text`。

```markdown
## MOTION-EP001-001 · 门外停步
- 分镜：SHOT-EP001-001
- 时长：4s
- 生成方式：文生视频
- 输入参考图：无（创作者已明确选择文生视频）。
- 静态视觉锚点：A lean young East Asian man in a dark-grey worn suit stands outside an old corridor door under cold overhead light.
- 起始帧：许棠右手悬在门把上方，视线落在门把上。
- 状态链：右手悬在门把上方 → 门内玻璃落地触发他收回右手并转移视线 → 右手收回，视线落到门缝
- 终点：右手收回；门内玻璃落地；人物视线转向门缝。

### 可复制提示词
> A lean young East Asian man in a dark-grey worn suit stands outside an old corridor door under cold overhead light. His right hand starts suspended above the handle, then withdraws……
```

有真实输入图时改用「生成方式：图生视频」，并原样携带分镜的完整 REF 声明；静态视觉锚点只写
执行动作所需、且不能仅靠参考图用途推断的可见起点，不把路径或 REF ID 放进可复制正文。

几个相邻镜头装进一次生成（多镜容器）时，另写一个 `GROUP-...` 条目，它的可复制提示词就是真正提交的
那一条；逐镜 `MOTION-...` 照写，作为成员依据。`GROUP-...` 可以写在文档任何位置：

```markdown
## GROUP-EP001-01 · 门外到门内
- 成员：MOTION-EP001-001、MOTION-EP001-002
- 时长：8s
- 理由：同场连续，同一走廊地理与人物造型

### 可复制提示词
> 镜头1：…… 镜头2：……
```

检查器核对成员相邻、同场、时长等于成员之和、一个镜头只进一个分组，以及分组正文的引文与锁面。

## 共通规则

- 提示词正文必须可直接复制，不放占位符、流程备注或 QA 结论。
- `### 可复制提示词` 下的引用块是**一条**提示词：从第一行到最后一行整段复制进那一次生成。方言把它分成 `subject_definitions` / `overall_soundscape` 这类段落时，段落仍属于同一条正文，不是分几次提交，也不是只交第一段。
- 引用使用文档里看得见的场景/镜头/提示词 ID；不写文件哈希和内部路径。
- 用户没要求的字段不为“完整”而补造。
- 每完成或修订一份文档就运行 `python3 {技能目录}/scripts/creator_markdown_check.py 剧集/<EP> --project-root . --partial`，只核对已有的文档；缺的文档相关的规则跳过，不算通过也不算失败，不为运行检查补造文件。五份齐备后去掉 `--partial` 做完整核对，缺任一文件即报缺。内容质量仍由创作者审查。
