@oh-story/dsh 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +29 -12
  2. package/lib/client.js +356 -89
  3. package/lib/client.js.map +4 -4
  4. package/lib/drama/manifest.json +34 -34
  5. package/lib/drama/skills/short-drama/SKILL.md +4 -1
  6. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +2 -0
  7. package/lib/drama/skills/short-drama/references/creator-documents.md +30 -4
  8. package/lib/drama/skills/short-drama/references/creator-workflow.md +8 -2
  9. package/lib/drama/skills/short-drama/references/reference-roles.md +16 -2
  10. package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +328 -48
  11. package/lib/drama/skills/short-drama-produce/SKILL.md +4 -1
  12. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +34 -2
  13. package/lib/drama/skills/short-drama-storyboard/SKILL.md +27 -5
  14. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +2 -1
  15. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +2 -2
  16. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +11 -2
  17. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +6 -1
  18. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +19 -3
  19. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +8 -2
  20. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +1 -0
  21. package/lib/index.js +194 -62
  22. package/lib/index.js.map +4 -4
  23. package/lib/types/client/drama-production-view.d.ts +1 -0
  24. package/lib/types/client/drama-production-view.d.ts.map +1 -1
  25. package/lib/types/client/drama-production.d.ts +3 -0
  26. package/lib/types/client/drama-production.d.ts.map +1 -1
  27. package/lib/types/client/index.d.ts.map +1 -1
  28. package/lib/types/client/video-studio.d.ts +2 -1
  29. package/lib/types/client/video-studio.d.ts.map +1 -1
  30. package/lib/types/client/workbench-presence.d.ts +29 -0
  31. package/lib/types/client/workbench-presence.d.ts.map +1 -0
  32. package/lib/types/drama-adapters.d.ts +65 -0
  33. package/lib/types/drama-adapters.d.ts.map +1 -0
  34. package/lib/types/host-python.d.ts +19 -0
  35. package/lib/types/host-python.d.ts.map +1 -0
  36. package/lib/types/index.d.ts +1 -0
  37. package/lib/types/index.d.ts.map +1 -1
  38. package/lib/types/skill-provider.d.ts +1 -1
  39. package/lib/types/skill-provider.d.ts.map +1 -1
  40. package/lib/types/workspace-route.d.ts.map +1 -1
  41. package/package.json +41 -41
@@ -33,6 +33,14 @@ license: MIT
33
33
  起始构图判断一致性需求,再检查项目中已有的真实图片。只有当前可读、内容与用途可核对的图片才能自动绑定;
34
34
  文件名像某个角色但内容未核对时,仍视为未准备好。
35
35
 
36
+ 项目里一张都没有时,创作者有三条路,一次把三条都说清楚再让他选,不要只给「先生成参考图」和
37
+ 「改成文生视频」两个:把手上已有的图片放进项目再绑成 `REF-...`;在自己的工具里出图、本轮先用
38
+ `PLAN-...` 写出挂图计划;或者明确改走文生视频。用本套件的生产技能出图只是第一条路的一种做法,
39
+ 需要项目外的 adapter 与凭据,不是唯一入口。
40
+
41
+ 开始分镜前读 `剧集/<EP>/剧本.md` 的当前内容。创作者说「剧本已确认采用」指的是那个文件,
42
+ 不是对话里更早的草稿;两者不一致时以文件为准,并把差异说出来。
43
+
36
44
  ## 工作流
37
45
 
38
46
  1. 读取已接受的目标模型原生时长区间,再确认每个场景动作、对白、声音、画面文字和转折由哪些镜头承载。
@@ -51,6 +59,7 @@ license: MIT
51
59
  - **输入参考图**:按清单在用户提供的输入、`剧集/<EP>/制作成果/` 和文档已指向的其他可见媒体中查找匹配图片;
52
60
  命中就写入 `REF-...`。一张都没命中时写「无(待补参考图:<本镜缺失的起始帧、人物、地点、道具>)」;
53
61
  只命中一部分时,在已有 `REF-...` 后追加「;待补参考图:<仍缺的图片>」,缺口之间只用 `、` 分隔。
62
+ 创作者说图片由他自己在别处准备时,把这份清单写成 `PLAN-...` 槽位,本镜即告就绪;
54
63
  只有创作者明确表示不用图时,才写「无(创作者已明确选择文生视频)」。
55
64
 
56
65
  三条依据读的是同一格画面,所以不能互相矛盾:关键帧里点名的人物或道具,一定出现在视觉依据里。
@@ -58,7 +67,11 @@ license: MIT
58
67
 
59
68
  ## 镜头要求
60
69
 
61
- - 每镜有唯一职责、明确来源、可见起止状态和合理时长。
70
+ - 每镜有唯一职责、明确来源、可见起止状态和合理时长。「来源」以《剧本.md》里真实存在的场景 ID 开头,
71
+ ID 之后可以跟必要短引文,跨场次的镜头用 `、` 连写多条;`creator_markdown_check.py` 会核对每个 ID 都解析得到。
72
+ - 剧本里的每个场景都要有镜头承载。确实决定不拍某一场时,在《分镜.md》正文开头写一行
73
+ `- 未拍场次:<场景 ID>(理由:……)`,多项用 `;` 连接。SHT-01 一直允许带理由的省略,
74
+ 但省略和漏拍在成稿文档里长得一模一样,所以理由要写下来,而不是留在对话里。
62
75
  - 已声明原生时长时,每个一镜一生成的镜头都落在其最短与最长秒数内。短于下限的叙事动作在合法
63
76
  镜长内完成后保持终点;长于上限的动作按可见状态闭合点拆镜,拆出的每镜仍各有唯一职责与可信交界。
64
77
  - 「唯一动作」写从本镜起点到终点的那条可见状态链;涉及交接、换手、放置或取回时,把接触者、
@@ -95,15 +108,23 @@ license: MIT
95
108
  「写不进视觉依据」就当它不需要一致性。四镜都出现的一支笔和一件外套是同一类问题。做两件事:
96
109
  正文里逐镜用完全相同的描述把它钉住,并在本轮末尾报告里点名它、建议 `$short-drama-assets` 补条目。
97
110
  不自行新增《视觉设定.md》条目,也不把它塞进「视觉依据」冒充已有条目。
98
- - 「输入参考图」是独立的另一条轴:创作者已提供,或经确认生产且当前可读的实际图片,用不同于 `IMG-...` 的稳定 `REF-...` 槽位引用。每个槽位同时写显式顺序、仅用 `/` 分隔的项目相对路径、中文名称、「用途」、「控制」和「不得控制」范围;没有时必须区分「待补参考图」和「创作者已明确选择文生视频」,只准备了一部分时则保留已有 `REF-...` 并追加「;待补参考图:……」。不得把提示词条目、计划生成的图或对话中的描述写成已有图片。
111
+ - 「输入参考图」是独立的另一条轴:创作者已提供,或经确认生产且当前可读的实际图片,用不同于 `IMG-...` 的稳定 `REF-...` 槽位引用。每个槽位同时写显式顺序、仅用 `/` 分隔的项目相对路径、中文名称、「用途」、「控制」和「不得控制」范围;没有时必须区分「待补参考图」和「创作者已明确选择文生视频」,只准备了一部分时则保留已有 `REF-...` 并追加「;待补参考图:……」。不得把提示词条目、还没生成的图或对话中的描述写成 `REF-...`——`REF-...` 的意思是「文件此刻在项目里」。
112
+ 创作者会在生成时自己挂载的图片走下面的 `PLAN-...`:它同样不声称文件存在,只是把这一镜要挂哪几张写清楚。
99
113
  - 每个 `REF-...` 必须逐字遵循唯一格式:`REF-<slot>(顺序:<n>)· <项目相对路径>《<中文名称>》(用途:<用途>;控制:<范围>;不得控制:<范围>)`。注意「顺序:」后的全角冒号和路径前的中点 `·`;不得用 `/` 代替字段分隔符。多图只用中文分号 `;` 连接,部分缺图则在最后一个完整槽位后接 `;待补参考图:<缺口>`,缺口之间用 `、` 分隔。写完后按此格式回读一次再交付。
100
114
  - `用途` 只能取 `身份`、`造型状态`、`地理`、`构图`、`尺度`、`效果`、`起始帧`、`结束帧`、`风格` 之一;逐条能控制什么见 `$short-drama` 的《参考角色》。
101
115
  本镜的起始画面图写 `用途:起始帧`,人物图写 `用途:身份` 或 `造型状态`,场景图写 `用途:地理`,道具状态图按它决定的那一件写。
102
116
  一张图承担两件事就拆成两个槽位;一镜最多一张 `起始帧` 和一张 `结束帧`,写 `结束帧` 时必须同时有 `起始帧`。
103
117
  下游视频提示词靠 `用途` 说清「本镜送哪一张分镜起始帧、哪些人物/道具/场景图」,所以缺 `用途` 的槽位不算准备好。
104
- - 本镜还没有起始画面图时,`用途:起始帧` 那一张由 `$short-drama-produce` 用本镜的冻结关键帧正文生成:
105
- job 的 `source` 写 `剧集/<EP>/分镜.md`、`source_entry` 写本镜 `SHOT-...`,产出落在 `剧集/<EP>/制作成果/images/`。
106
- 拿到真实文件后再回来绑成 `REF-...`;生产前它仍然只是「待补参考图」里的一项。
118
+ - 本镜还没有起始画面图时有两条路。创作者用本套件生产:`用途:起始帧` 那一张由 `$short-drama-produce`
119
+ 用本镜的冻结关键帧正文生成,job 的 `source` 写 `剧集/<EP>/分镜.md`、`source_entry` 写本镜 `SHOT-...`,
120
+ 产出落在 `剧集/<EP>/制作成果/images/`,拿到真实文件后再绑成 `REF-...`。创作者在自己的工具里生产:
121
+ 把冻结关键帧正文复制过去出图,再把文件放进项目绑成 `REF-...`,或者本轮先写成
122
+ `PLAN-SHOT-START(顺序:<n>)· <本镜 SHOT-...>《本镜冻结关键帧》(用途:起始帧;……)`。
123
+ 两条路都没走时,它仍然只是「待补参考图」里的一项。
124
+ - 创作者在项目外出图、图片不进项目时,用 `PLAN-...` 槽位:语法与 `REF-...` 逐字相同,只把项目相对路径
125
+ 换成 `IMG-...` 或 `SHOT-...` 条目 ID,`IMG-...` 的中文名称必须与《图片提示词.md》标题一致。
126
+ 它声明的是「这张图由创作者在生成时按这个顺序挂载」,不声称项目里有文件,因此不是「待补」,
127
+ 也不能拿来投产。真实文件进了项目就改写成 `REF-...`。两种槽位可以混用,`顺序` 统一连续编号。
107
128
  - 自动绑定不是把所有图都塞进一镜。只选本镜可见、且身份、造型、地理、关键道具状态或起始构图确实需要稳定的图;逐张写清它的用途、能控制什么、不得控制什么。
108
129
  - 两条轴可以独立组合:有合法的图片提示词项时,输入参考图仍可为「待补」或创作者明确选择的文生视频;创作者给了真实参考图时,图片提示词项也可为「无」。
109
130
 
@@ -131,6 +152,7 @@ license: MIT
131
152
  ## 完成
132
153
 
133
154
  点名范围的原文都有镜头落实,每镜职责不重复、空间与状态连续、起止边界可制作、关键帧可冻结,
155
+ 每镜「来源」解析到《剧本.md》的真实场景、剧本里每个场景都有镜头承载或已记入「未拍场次」,
134
156
  且每镜关键帧里的可见人物、地点、道具都在本镜「视觉依据」里,即完成。画面需要、但《视觉设定.md》
135
157
  还没有条目的可见物件,在末尾报告里逐项点名。本次请求同时修改
136
158
  《图片提示词.md》与《分镜.md》时,当轮刷新受影响镜头的引用;不另建覆盖表。
@@ -13,7 +13,8 @@
13
13
  - 相邻镜头的站位、朝向、视线、持物、伤势、光态与可读文字连续;
14
14
  - 每镜都有「视觉依据」字段,条目名称能在《视觉设定.md》找到同名标题;关键帧正文点名的人物、地点、道具全部在列,「控制」不超过这一格画面承担得起的范围;
15
15
  - 已用的 `IMG-...` 必须是《图片提示词.md》的可见标题,并带中文名称和控制范围;没有合适条目时明写「无」,不伪造 ID;
16
- - 提示词条目与真实输入图片分开记录;只有创作者已提供或经确认生产、且当前可读的实际图片才能声称为「输入参考图」,并用独立稳定的 `REF-...` 槽位、显式顺序、仅用 `/` 分隔的项目相对路径、中文名称、用途、控制与不得控制范围定位;每个槽位的 `用途` 取自封闭词表,一镜最多一张起始帧与一张结束帧;一张都没有、只准备了一部分、全部就绪和创作者明确选择文生视频必须如实区分;
16
+ - 提示词条目与真实输入图片分开记录;只有创作者已提供或经确认生产、且当前可读的实际图片才能声称为「输入参考图」,并用独立稳定的 `REF-...` 槽位、显式顺序、仅用 `/` 分隔的项目相对路径、中文名称、用途、控制与不得控制范围定位;每个槽位的 `用途` 取自封闭词表,一镜最多一张起始帧与一张结束帧;图片由创作者在项目外准备、生成时自行挂载时,改用 `PLAN-...` 槽位,定位符写它对应的 `IMG-...` 或 `SHOT-...` 条目,其余字段与 `REF-...` 相同——它同样不声称项目里有文件;
17
+ 一张都没有、只准备了一部分、已有真实文件、由创作者自备和创作者明确选择文生视频必须如实区分;
17
18
  - 冻结关键帧只投影所声明的边界:默认起点;外部工作流确实需要时才增加终点帧;
18
19
  - 可复制关键帧正文不含 ID、文件路径、工作流状态或工艺说明。
19
20
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  | ID | Class | Knowledge |
14
14
  |---|---|---|
15
- | SHT-01 | structural_invariant | Every production-relevant scene action, line, sound and on-screen text is carried by a shot or explicitly omitted with a creative reason. |
15
+ | SHT-01 | structural_invariant | Every production-relevant scene action, line, sound and on-screen text is carried by a shot or explicitly omitted with a creative reason. Each shot's 来源 names scene ids that exist in `剧本.md`, and every scene is either claimed by a shot or recorded with its reason on the storyboard's `未拍场次` line. |
16
16
  | SHT-02 | reviewed_invariant | Each shot has a dramatic/viewing purpose and preserves its source meaning. |
17
17
  | SHT-03 | craft_default | Keep a short shot focused on the smallest action/reaction unit that carries its purpose; combine or split it according to performance, information, and continuity rather than a fixed count. |
18
18
  | SHT-04 | craft_default | Change framing/camera because attention, pressure, alignment, reveal, or rhythm changes. |
@@ -34,7 +34,7 @@
34
34
  | SHT-20 | reviewed_invariant | Shot revision identity follows directing responsibility rather than array position or text similarity: reorder preserves IDs, insertion creates one, split/merge retires replaced IDs and creates successors, and active coverage plus downstream refs are reconciled before delivery. |
35
35
  | SHT-21 | reviewed_invariant | A keyframe's copyable text carries only what will be visible; IDs, workflow notes, file paths and craft commentary stay outside the prompt. Two prompts that differ only by identifiers are a template, not two frames. |
36
36
  | SHT-22 | structural_invariant | Each shot carries a required `视觉依据` field, written after the frozen keyframe, listing every visible character, place, or prop whose identity, Look, or geography must remain recognizable; each item resolves to an existing `视觉设定.md` entry. Whatever the keyframe text calls by name — an entry name or its declared `画面代称` — appears there. Small/background subjects remain in scope when recognition matters; offscreen voices and unidentifiable fragments do not. |
37
- | SHT-23 | structural_invariant | An omitted reference choice is not consent to text-to-video. After reference discovery, each shot either binds all verified real images, preserves partial bindings while naming the still-missing start/identity/geography/prop images, or records the creator's explicit text-to-video choice. A prompt entry, planned image, plausible filename, or text description never counts as a real image. |
37
+ | SHT-23 | structural_invariant | An omitted reference choice is not consent to text-to-video. After reference discovery, each shot either binds all verified real images as `REF-...`, declares creator-supplied pictures as `PLAN-...` slots that locate an existing `IMG-...` board or `SHOT-...` keyframe, preserves partial bindings while naming the still-missing start/identity/geography/prop images, or records the creator's explicit text-to-video choice. A prompt entry, plausible filename, or text description never counts as a real image, and a `PLAN-...` slot never claims one: it states that the picture is supplied outside the project at generation time, which is why it cannot be sent to production. |
38
38
  | SHT-24 | reviewed_invariant | A visual basis describes this frame, not the episode's cast list. Each declared 控制 scope stays within what this frame can carry, and a binding is not carried forward merely because the subject remains in the scene. |
39
39
  | SHT-25 | structural_invariant | Every real reference image a shot binds declares one 用途 from the closed set 身份/造型状态/地理/构图/尺度/效果/起始帧/结束帧/风格, so the shot can say which start frame and which identity/geography/prop pictures a downstream job sends. At most one 起始帧 and one 结束帧 per shot, and 结束帧 requires 起始帧. |
40
40
 
@@ -27,8 +27,11 @@ license: MIT
27
27
  - 「输入参考图:无(创作者已明确选择文生视频)」时才是**文生视频**;视频文档必须写非空「静态视觉锚点」,且把它原样纳入
28
28
  可复制正文,让提示词本身交代人物、造型、地点、构图和光线中本镜必要的事实。不得只写
29
29
  `preserve/keep/保持已有外观`,因为执行端没有收到可供保持的图片。
30
- - 「输入参考图:无(待补参考图:……)」、已有 `REF-...` 后仍带「;待补参考图:……」,或普通的「无」都表示**未准备好**,不是文生视频授权。先自动查找可用真实图片并请分镜 owner
31
- 刷新 `REF-...` 绑定;仍有缺失时,列出镜头、缺失图片及对应 `IMG-...` 或冻结关键帧,不写最终《视频提示词.md》。
30
+ - 有 `PLAN-...` 槽位时同样是**图生视频**:图片由创作者在生成时自行挂载,本套件没有文件可送。
31
+ 正文照常按图生视频写,`顺序` 就是创作者挂图的次序,`用途` 说明每一张在本镜负责什么。
32
+ 这些镜头不能转 `$short-drama-produce`;要投产就先把真实文件放进项目、改写成 `REF-...`。
33
+ - 「输入参考图:无(待补参考图:……)」、已有 `REF-...` 或 `PLAN-...` 后仍带「;待补参考图:……」,或普通的「无」都表示**未准备好**,不是文生视频授权。先自动查找可用真实图片并请分镜 owner
34
+ 刷新绑定;仍有缺失时,列出镜头、缺失图片及对应 `IMG-...` 或冻结关键帧,不写最终《视频提示词.md》。
32
35
 
33
36
  创作者可读说明跟随项目语言。开始前读取目标模型档案里的版本、执行模式、提示词方言、原生时长和
34
37
  参考方式;这些选择同时约束上游分镜和下游 adapter,不能只在正文阶段临时猜。创作者在本次请求里点名
@@ -61,6 +64,9 @@ license: MIT
61
64
  新槽位必须逐字使用 `REF-<slot>(顺序:<n>)· <项目相对路径>《<中文名称>》(用途:<用途>;控制:<范围>;不得控制:<范围>)`;`用途` 取 `身份|造型状态|地理|构图|尺度|效果|起始帧|结束帧|风格` 之一,不得自创斜杠分隔写法。多图只用 `;` 连接,写完后先按格式回读,再复制到视频文档。
62
65
  3. 仍有必要图片缺失时,一张都没有就把分镜写成「无(待补参考图:……)」;只缺一部分则保留已核对的 `REF-...`,并在末尾追加「;待补参考图:……」。一次列出缺失镜头、图片用途和对应的 `IMG-...` /冻结关键帧,然后停在视频提示词之前。
63
66
  不伪造路径,不把图片提示词当成图,不静默降级为文生视频。
67
+ 报告缺口时把创作者真正有的三条路一起说清楚,不要只给「生成参考图」和「改成文生视频」:
68
+ 把已有图片放进项目绑成 `REF-...`;由创作者在自己的工具里出图、本轮先写成 `PLAN-...` 挂图计划;
69
+ 或者明确改走文生视频。缺口清单本身就是那份挂图计划的草稿,逐镜写清要哪几张、每张管什么。
64
70
  4. 只有创作者明确选择不用参考图时,才把分镜记为「无(创作者已明确选择文生视频)」。准备闭合后原样抄入分镜的「输入参考图」,据此标明
65
71
  「生成方式:图生视频」或「生成方式:文生视频」。该字段只写这两个精确值,不追加模型名、方言或 full-reference 等说明;模型说明留在正文结构中。
66
72
  具体走首帧、首尾帧还是多槽参考,由各槽位的 `用途` 组合读出:只有一张 `起始帧` 走首帧,`起始帧` 加 `结束帧` 走首尾帧,
@@ -102,6 +108,9 @@ license: MIT
102
108
  - 声音只写该镜需要的对白、画外音、环境或转场职责,不擅自补歌词。
103
109
  - 非画内字幕、caption 和对白文字叠加默认不生成;正文直接声明全镜任何时刻都不生成这些内容,不用抽象工作流术语代替执行指令。只有剧本或创作者明确要求才开启。画内精确文字是独立允许集合,不因关闭字幕而消失,也不让未批准文字混入。
104
110
  - 同轨对白/VO/OS 同时写逐字文本、口语语言和发声边界;完整时间线闭合后,不再枚举不存在的语言、语气或声源,也不追加 `no/not/without + 声音类别`。
111
+ - 正文里被引号或 `<d>` 包起来的中文必须逐字来自《剧本.md》,画内标牌文字可来自《视觉设定.md》;
112
+ 分镜自己写下的画内文字与声音同样算数。`creator_markdown_check.py` 会核对四字以上的引文(VID-25)。
113
+ 台词不在剧本里就回到写作技能改剧本,不在提示词里改。
105
114
  - 上游持续关系只用贯穿状态和允许动作通道表达;不以 `no/not/without + 动作` 重复同一边界,也不给角色冲突动作。
106
115
  - 本镜命中的连续性锁,锁面原样出现在可复制正文里;颜色、材质、形制这类跨镜不变事实不靠模型记忆。
107
116
  - 正文可直接复制,不含占位符、流程说明、文件路径或 QA 结论。
@@ -2,6 +2,11 @@
2
2
 
3
3
  这是由已接受运动规格生成的文本,不是分镜权威来源。复制引用块即可;元信息帮助核对边界。
4
4
 
5
+ **这份模板属于结构化管线**(`motion-specs.jsonl` 一路)。creator-first 项目的《视频提示词.md》骨架
6
+ 以 `SKILL.md` 为准:`## MOTION-... · 中文名`,字段依次是「分镜、时长、生成方式、输入参考图、
7
+ 静态视觉锚点、起始帧、状态链、终点」。两边的字段名不一样,不要把这里的 `运动规格`、`边界核对`、
8
+ `声音引用` 或 `### 只读结束报告` 搬进 creator-first 文档。
9
+
5
10
  ```markdown
6
11
  # EP<编号> · 视频提示词
7
12
 
@@ -16,7 +21,7 @@
16
21
  - **覆盖范围(仅补拍/替代版)**:`pickup | alternate`;母版/补充 `<master_motion_id / supplements_motion_ids>`;逐项内容 `<source_ref → motion_field/disposition>`;替代请求 `<replacement_intent>`
17
22
  - **起始帧**:`KEY-<id>`
18
23
  - **生成方式**:`文生视频 | 图生视频`;文生视频必须已有创作者明确选择
19
- - **输入参考图**:`REF-<slot>(顺序:<n>)· <项目相对路径>《<中文名>》(用途:<purpose>;控制:<may_control>;不得控制:<must_not_control>)`;`用途` 取 `身份|造型状态|地理|构图|尺度|效果|起始帧|结束帧|风格`;必须与分镜一致且全部就绪;只有创作者明确选择文生视频时可写「无(创作者已明确选择文生视频)」,无图或部分有图的「待补参考图」都不得进入最终视频提示词
24
+ - **输入参考图**:`REF-<slot>(顺序:<n>)· <项目相对路径>《<中文名>》(用途:<purpose>;控制:<may_control>;不得控制:<must_not_control>)`,图片由创作者在生成时自行挂载时改用 `PLAN-<slot>(顺序:<n>)· <IMG-... 或 SHOT-...>《<中文名>》(同样的用途与控制字段)`;`用途` 取 `身份|造型状态|地理|构图|尺度|效果|起始帧|结束帧|风格`;必须与分镜一致且全部就绪;只有创作者明确选择文生视频时可写「无(创作者已明确选择文生视频)」,无图或部分有图的「待补参考图」都不得进入最终视频提示词
20
25
  - **静态视觉锚点**:文生视频必须把本镜必要的身份、造型、地点、构图与光线事实写在这里并原样纳入可复制正文;图生视频只补充动作所需、参考图不能独立说明的可见起点
21
26
  - **状态链**:`<起点> → <唯一动作:触发、接触与落点> → <终点>`;直接投影分镜,不补镜外转换
22
27
  - **时长(只读)**:`<seconds>s`
@@ -44,6 +44,9 @@ non_diegetic_music: ...
44
44
  | 一张 `用途:起始帧` + 一张 `用途:结束帧` | `first_last_frame` | 三段 |
45
45
  | 其他任何组合(起始帧与人物/地点/道具图同时存在,或只有人物/地点/道具图) | `reference`(full-reference) | 六段 |
46
46
 
47
+ `REF-...` 和 `PLAN-...` 在这张表里同权:模式由 `用途` 组合决定,与图片此刻在不在项目里无关。
48
+ 创作者在 H3 的网页界面里自己挂图时,正文照这张表写,`顺序` 就是他挂图的次序。
49
+
47
50
  H3 官方另有只给尾帧、由模型推断开场的 L2VA 模式。本套件不使用它:开场由分镜已接受的起点决定,
48
51
  把它交给模型推断会让 `SHOT-...` 的起点失去权威。因此 `结束帧` 只在同时绑定 `起始帧` 时出现。
49
52
 
@@ -84,6 +87,15 @@ REF-XIAOYU-SHEET(顺序:2;用途:身份) -> <Picture 2>
84
87
  REF-STUDY-PLATE(顺序:3;用途:地理) -> <Picture 3>
85
88
  ```
86
89
 
90
+ 这份清单不依赖文件路径,只依赖 `顺序` 和 `用途`,所以图片由创作者自己挂载时它照样成立:
91
+ 把上面的 `REF-` 换成 `PLAN-`,定位符换成 `SHOT-...` 或 `IMG-...`,正文一个字都不用改。
92
+ 创作者按 `顺序` 在生成界面里挂图,`<Picture N>` 就对得上。
93
+
94
+ `PLAN-...` 的图套件没有看过,所以 `subject_definitions` 和 `retention_analysis` 写的是
95
+ **这张图按它的 `用途` 必须保留什么**,事实取自《视觉设定.md》和本镜冻结关键帧,而不是对像素的观察结论。
96
+ 两种槽位的句式相同:`用途` 决定保留什么,本来就不是看图看出来的。不要因为图没进项目就改写成
97
+ 「未验证」或省略保留强度——那会让执行端收不到本镜真正的保留要求。
98
+
87
99
  `subject_definitions` 把每个主体绑到它的标签上,句式为
88
100
  `<Subject 1> is the ... in <Picture 2>, with ...`;`retention_analysis` 逐条写保留强度和出现的镜次,
89
101
  视觉素材用 `fully_preserved`、`partially_preserved`、`attribute_transfer`、`weak_reference`,
@@ -93,7 +105,9 @@ REF-STUDY-PLATE(顺序:3;用途:地理) -> <Picture 3>
93
105
 
94
106
  ### 每张图带什么、不带什么
95
107
 
96
- `用途` 决定这一张在正文里被要求保留什么:`起始帧` 只锚定开场构图与姿态,`身份` 只锚定脸型体态,
108
+ `用途` 决定这一张在正文里被要求保留什么,具体到哪几项由该槽位自己写下的 `控制` 范围决定:
109
+ `起始帧` 只锚定开场构图与姿态,`身份` 锚定这个人跨镜不变的长相与体态(角色板同时固定本集造型时,
110
+ `控制` 里会写明),
97
111
  `地理` 只锚定空间关系,`造型状态` 只锚定服装与损污。把这条差异写进 `retention_analysis`,
98
112
  不要让角色板顺带决定构图,也不要让场景板顺带决定人物长相。
99
113
 
@@ -129,8 +143,10 @@ non_diegetic_music: N/A
129
143
  视频与音频每段 2–15 秒,且各自合计不超过 15 秒。分辨率取 `768P` 或 `2K`(`MiniMax-H3-Max` 另为 `480P`/`768P`)。
130
144
  超过上限时在分镜阶段按重要性取舍,并写明放弃了哪些参考,不在正文里假装它们仍然生效。
131
145
 
132
- 本镜还没有起始帧图片时,它由 `$short-drama-produce` 从 `分镜.md` 的 `SHOT-...` 冻结关键帧生成;
133
- 拿到真实文件后由分镜 owner 绑成 `用途:起始帧` 的 `REF-...`,本阶段再原样抄入。
146
+ 本镜还没有起始帧图片时有两条路:由 `$short-drama-produce` 从 `分镜.md` 的 `SHOT-...` 冻结关键帧生成,
147
+ 拿到真实文件后由分镜 owner 绑成 `用途:起始帧` 的 `REF-...`;或者由创作者把该镜的冻结关键帧正文复制到
148
+ 自己的工具里出图,本轮先记成 `PLAN-...(用途:起始帧)`、定位符写本镜 `SHOT-...`。
149
+ 两种写法本阶段都原样抄入,正文写法相同。
134
150
 
135
151
  `输入参考图` 只登记参考**图片**。连续段需要的上一段实际视频与实际音频不走这个字段,由下面的
136
152
  「连续段」小节和生产 job 的绑定承担;不要为了凑成一份清单把视频路径塞进 `REF-...`。
@@ -1,7 +1,12 @@
1
1
  # 视频提示词阶段契约
2
2
 
3
3
  本阶段只拥有 `剧集/<EP>/视频提示词.md` 中的 `MOTION-...` 项与按需的时间线音乐章节。它继承镜头
4
- 起点、终点、时长、对白和冻结帧,不回写分镜或视觉设定。
4
+ 起点、终点、时长、对白和冻结帧,不回写分镜或视觉设定:镜头边界、职责、起终状态和关键帧正文都不在
5
+ 本阶段手里。
6
+
7
+ 唯一的例外是参考准备。SKILL 工作流第 2、3 步要求在同一请求内刷新受影响镜头的「输入参考图」
8
+ (必要时一并回填「视觉依据」),那是**分镜 owner 在本请求内的动作**,按分镜阶段的字段规则执行,
9
+ 不是本阶段改写分镜的授权。它只更新这两条依据字段,不动镜头边界、职责、起终状态或关键帧正文。
5
10
 
6
11
  每项正文只描述从当前冻结起点到终点的变化;多镜打包、补拍或替代关系确有需要时,也写在同一文档
7
12
  的可读章节中,不建立 motion spec、container、readiness、QA 或接受记录。
@@ -35,7 +40,8 @@
35
40
  | VID-21 | craft_default | When the project's accepted production profile has generated imagery carry the frame, actions are written as high-frequency, whole-body or single-limb movements common in everyday footage; precise interception, invisible internal states, negative actions, and three-or-more-step two-handed choreography are rewritten into equivalent common-action combinations, with the dramatic information carried by combination and timing. The rule is inactive for live action or an undeclared profile, and a rewrite may never change accepted shot boundaries, terminal states, or screenplay fact. |
36
41
  | VID-22 | reviewed_invariant | Copyable text carries only what will be filmed. IDs, workflow status, hashes, file paths and craft notes stay outside the prompt; negative action intent is rewritten as a visible positive state. Unless explicitly authored, the copyable prompt directly prohibits non-diegetic subtitles, captions and dialogue-text overlays at every moment rather than naming an abstract empty layer; this never erases an exact-readable in-scene text obligation, which stays a closed allow-list of exact glyph, language, carrier and placement. A prompt that only recites constraints renders as nothing. |
37
42
  | VID-23 | reviewed_invariant | When the target model is declared to generate audio in the same pass, the copyable body treats all allowed dialogue, VO, OS, non-verbal vocalization, SFX, ambience and silence as a closed event set. Each spoken event keeps its source, speaker, spoken language and verbatim text boundary; gaps return to declared ambience or silence instead of leaving an undefined vocal channel for the execution end to fill. |
38
- | VID-24 | structural_invariant | An image-to-video shot carries the storyboard's REF slots unchanged, each with its 用途, so the motion document itself answers which start frame and which identity, geography, and prop pictures this shot sends. The reference mode — first frame, first and last frame, or multi-slot reference — is read from that 用途 combination and translated by the matched model dialect; where a model makes frame and reference conditioning mutually exclusive, the start frame joins the reference group rather than splitting the request. |
43
+ | VID-24 | structural_invariant | An image-to-video shot carries the storyboard's `REF-...` and `PLAN-...` slots unchanged, each with its 用途, so the motion document itself answers which start frame and which identity, geography, and prop pictures this shot sends — and, for `PLAN-...`, in which order the creator attaches them. The reference mode — first frame, first and last frame, or multi-slot reference — is read from that 用途 combination and translated by the matched model dialect; where a model makes frame and reference conditioning mutually exclusive, the start frame joins the reference group rather than splitting the request. |
44
+ | VID-25 | structural_invariant | Quoted Chinese in a copyable body is delivered, not authored. Every run of four or more Han characters inside a `<d>` tag or quotation marks resolves, ignoring punctuation and spacing, to text that already exists in `剧本.md`, `视觉设定.md` or `分镜.md`. A line the shot wishes the character had said belongs upstream in the screenplay, not in the prompt. Runs of three characters or fewer are in-frame labels and interjections far more often than lines, so they stay with review rather than the mechanical check. |
39
45
 
40
46
  ### `CON`
41
47
 
@@ -85,6 +85,7 @@ Brief、剧本或声音方向若已经点名排除外语前导、语气词、额
85
85
  | 首帧 | 只写从该起点开始的变化;静态外观由参考帧与视觉设定共同拥有 |
86
86
  | 首尾帧 | 终点帧只能投影 `SHOT-...` 已写明的终点,不得发明新结果 |
87
87
  | 多槽参考 | 每张按 `REF-...` 槽位记账,绑定顺序、路径、中文名、用途与控制/不得控制范围;槽位数不超过声明上限,超出时按重要性取舍并写明放弃了哪些 |
88
+ | 多槽参考(创作者自备) | 同上,但图片不在项目里,槽位改用 `PLAN-...`、定位符写 `IMG-...` 或 `SHOT-...`;正文写法与上一行完全相同,`顺序` 就是创作者在生成界面里挂图的次序。这一行与目标模型无关,任何支持多槽参考的执行端都适用 |
88
89
 
89
90
  无论哪一种,《视觉设定.md》连续性锁的锁面都留在正文里:参考帧只约束它自己画到的部分,
90
91
  跨镜不变的颜色、材质与形制仍然要逐镜带走。