@ninkch/dsh-infinite-canvas 0.18.6 → 0.18.7
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.
- package/assets/canvas-craft/SKILL.md +114 -12
- package/assets/canvas-layout/SKILL.md +6 -3
- package/assets/canvas-studio/SKILL.md +46 -11
- package/client.js +4069 -1147
- package/docs/UI-RULES.md +70 -0
- package/index.js +647 -119
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ description: 短剧与短视频的创作方法论:剧本结构、分场格式
|
|
|
7
7
|
|
|
8
8
|
本技能是**创作手法**规范;画布的操作流程(建项目、写节点、触发生成)见 `canvas-studio`。
|
|
9
9
|
两者配合使用:先按本技能写出合格内容,再按操作规范落到画布上。
|
|
10
|
+
本技能里的「硬规则 / 判定口径」**优先于任何专家人设的一句话概括**(人设只给方向,本技能给可核对的判据)。
|
|
10
11
|
|
|
11
12
|
## 一、短剧剧本方法论
|
|
12
13
|
|
|
@@ -17,6 +18,21 @@ description: 短剧与短视频的创作方法论:剧本结构、分场格式
|
|
|
17
18
|
- **每场一个小目标**:人物想要什么 → 遇到什么阻碍 → 结果如何转折。写不出这条,这场就该删。
|
|
18
19
|
- **结尾留钩子**:最后 3–5 秒抛出新信息或未解之谜(下集驱动力)。
|
|
19
20
|
|
|
21
|
+
### 场景间因果钩子(连贯性硬规则,缺这条剧本就是流水账)
|
|
22
|
+
|
|
23
|
+
**每场结尾必须留一个"推动下一场的具体东西"**:一个动作、一件物件、一句没说完的话、一个刚被揭开的动作结果。
|
|
24
|
+
它是下一场的**起因**,不是本场的**总结**。
|
|
25
|
+
|
|
26
|
+
- ✅ 正例:`【场2】他撕开信封,里面只有半张车票。他抓起外套冲出门。` → 场3 由「车票」和「冲出门」引发。
|
|
27
|
+
- ❌ 反例:`【场2】他感到事情越来越复杂,心里很不安。` → 情绪总结,下一场无从接起。
|
|
28
|
+
|
|
29
|
+
判定口径:
|
|
30
|
+
|
|
31
|
+
- **该做**:结尾句必须是**可拍摄的动作或可见的物件状态**(手、门、屏幕、脸、道具);下一场第 1 个动作/画面**直接由它引发**。
|
|
32
|
+
- **不该做**:不写"他决定了""事情还没结束""危机正在靠近"这类总结;不用"第二天""与此同时"硬切到毫无因果的新场景。
|
|
33
|
+
- **禁止并列场景清单**:每场必须**改变人物的处境或认知**(有变化才成立);只是"又发生一件事"的场,删掉或合并。
|
|
34
|
+
- **四要素每场各至少一处**:**目标**(这场要拿到/守住什么)→ **阻碍**(谁/什么挡住)→ **转折**(计划失效的瞬间)→ **代价**(他为此失去或付出什么)。四者缺一即视为该场不合格。
|
|
35
|
+
|
|
20
36
|
### 分场格式(固定八要素)
|
|
21
37
|
```
|
|
22
38
|
【第 N 场】内/外景 · 地点 · 时间
|
|
@@ -102,8 +118,11 @@ B:……
|
|
|
102
118
|
- **单镜头按时长谱系取值**(见下);各镜时长之和 = 目标视频总时长,**按内容写足、不设硬上限**
|
|
103
119
|
(如 15 秒 ≈ 4–7 镜,30 秒 ≈ 8–14 镜)。整个分镜表会组合成**一条多镜头提示词,由视频模型一次性生成整段视频**
|
|
104
120
|
(镜头间由模型硬切,不需要逐镜生成再拼接)。
|
|
105
|
-
- 一场通常拆 4–8 镜:建置镜(环境/全景)→ 主体镜(中近景)→ 情绪镜(特写)→
|
|
121
|
+
- 一场通常拆 4–8 镜:建置镜(环境/全景)→ 主体镜(中近景)→ 情绪镜(特写)→ 动作镜(跟拍/推拉);
|
|
106
122
|
镜越短节奏越快,每镜的提示词要越聚焦。
|
|
123
|
+
- **每场至少 1 个大特写(短场也不例外)**:用在关键信息或情绪爆点——眼睛、手、纸条上的字、钟表指针、
|
|
124
|
+
扣扳机的手指、屏幕上的名字。`visual` 里写清「大特写 + 拍的是哪个局部」,`duration` 给 0.8–2s;
|
|
125
|
+
一场没有大特写的分镜表 = 没有信息焦点,退回重拆。
|
|
107
126
|
|
|
108
127
|
### 节奏谱系(时长为情绪与节拍服务,**拒绝均匀分布**)
|
|
109
128
|
| 镜头类型 | 时长 | 用途 |
|
|
@@ -139,30 +158,106 @@ B:……
|
|
|
139
158
|
|
|
140
159
|
### 术语表
|
|
141
160
|
- **景别**:大远景 / 远景 / 全景 / 中景 / 中近景 / 近景 / 特写 / 大特写(极致特写:只拍眼睛、嘴、道具细节)。
|
|
142
|
-
- **运镜**:固定 / 推 / 拉 / 摇 / 移 / 跟 / 升降 /
|
|
161
|
+
- **运镜**:固定 / 推 / 拉 / 摇 / 移 / 跟 / 甩 / 升降 / 环绕 / 变焦;**一镜只用一种运镜**。
|
|
162
|
+
- **调度**:人物走位 + 机位运动 + 镜头切换的**组合设计**(不是单个动词);一场戏的调度要回答
|
|
163
|
+
"人往哪走、镜头在哪跟、下一刀切到哪"。
|
|
143
164
|
- **高级运镜(按需选用)**:希区柯克变焦(推拉+变焦的眩晕感)、低角度仰拍(英雄感)、
|
|
144
|
-
|
|
165
|
+
快速摇镜/甩镜(运动模糊)、手持晃动(纪实不安感)、FPV 第一人称主观(需要连续运动的环境才成立)、
|
|
145
166
|
航拍俯冲(要有明确落点,否则画面漂浮)、机械臂跟随(多角度贴视线)。
|
|
146
167
|
|
|
147
|
-
###
|
|
148
|
-
> 景别 + 主体姿态 + 环境 + 光线 + 构图重心(+ 风格)
|
|
168
|
+
### 术语勘误(生成与改写时一律按右列,不要沿用左列口语)
|
|
149
169
|
|
|
150
|
-
|
|
170
|
+
| 常见误写 | 正确写法 | 说明 |
|
|
171
|
+
|---|---|---|
|
|
172
|
+
| 大豆、大特、特镜 | **大特写** | 只拍局部细节(眼睛、手、字迹、指针),不是"很大的特写" |
|
|
173
|
+
| 调职、调道 | **调度** | 人物走位 + 机位运动 + 切换设计的组合 |
|
|
174
|
+
| 推近 / 拉远 / 平移(单独使用) | **推镜 / 拉镜 / 移镜**,并写清起点与终点 | 单个动词是空模板,见「motion 公式」 |
|
|
175
|
+
| 镜头、画面(当景别用) | **具体景别**(大特写/特写/近景/中景/全景/远景) | "镜头"不是景别 |
|
|
176
|
+
| 跟移 / 移动镜头 / 跟拍(混用) | 统一为 **跟拍** | 与「移镜」区分:跟拍是镜头跟着主体走 |
|
|
177
|
+
| 特写(当大特写用) | 信息/情绪爆点写 **大特写**,人物情绪写 **特写** | 两者能混用就等于没有景别设计 |
|
|
151
178
|
|
|
152
|
-
###
|
|
153
|
-
> 动作节拍 + 运镜方式 + 节奏
|
|
179
|
+
### visual(首帧画面)六要素(缺一即不合格)
|
|
154
180
|
|
|
155
|
-
|
|
181
|
+
> **景别 + 机位/角度 + 主体位置与朝向 + 前景/背景层次 + 光线方向与质感 + 关键道具位置**(+ 风格)
|
|
156
182
|
|
|
183
|
+
| 要素 | 必须写到 | 判定口径 |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| 景别 | 大特写 / 特写 / 近景 / 中景 / 中近景 / 全景 / 远景 / 大远景 | **必须写具体景别**;只写"镜头""画面"=不合格 |
|
|
186
|
+
| 机位/角度 | 平视 / 俯拍 / 仰拍 / 过肩 / 越轴侧 / 贴地视角 | 说清摄影机在哪、朝哪 |
|
|
187
|
+
| 主体位置与朝向 | 画面左/中/右三分区 + 脸部或身体朝向 | 写"画面右侧三分之一、3/4 侧脸朝左"这类可执行坐标 |
|
|
188
|
+
| 前景/背景层次 | 前景挡什么 + 背景是什么 | 至少一层前景(肩膀/栏杆/雨丝)或明确的背景信息,禁止主体贴死空背景 |
|
|
189
|
+
| 光线方向与质感 | 光源方向 + 硬/软 + 冷暖 | "暖黄门灯从右后方打来、硬光";"阴天无方向冷光" |
|
|
190
|
+
| 关键道具位置 | 道具在谁手里、画面哪个位置 | "信封在画面中心偏下、被指节压出折痕" |
|
|
191
|
+
|
|
192
|
+
- **长度与要素的取舍**:常规镜约 60 字,关键镜(大特写/冲撞点)可到 90 字;**要素写不下就拆成两镜,
|
|
193
|
+
绝不删要素凑字数**。六要素是清单,不是句式——按"景别→主体→层次→光线→道具"顺序写最省字。
|
|
194
|
+
- ✅ 正例:`大特写,俯拍,手指压在信封封口上,画面中心偏下;前景袖口边缘,背景虚化的雨夜门灯;暖黄硬光从右后方勾出手指轮廓;火漆印正在指纹下方。`
|
|
195
|
+
- ❌ 反例:`镜头对着他,气氛很紧张。`——没有景别、没有机位、没有可拍的东西。
|
|
196
|
+
- 示例(叙事镜):`中近景,平视,陈拾右手举着信封站在雨里,画面右侧三分之一、身体朝左;前景是虚化的雨帘,背景老旧邮局门口;暖黄门灯从右后方打亮信封;主体穿着旧邮差制服。`
|
|
197
|
+
|
|
198
|
+
### motion(动作/运镜)公式:起点 → 运动方式 → 终点
|
|
199
|
+
|
|
200
|
+
> **起点 → 运动方式 → 终点**(+ 速度/节奏)
|
|
201
|
+
|
|
202
|
+
示例:`起点:他站在雨里举着信封 → 缓慢把信封贴上胸口、低头 → 停在信封贴住心口、雨声变大`
|
|
203
|
+
|
|
204
|
+
- **禁止只用"平移 / 推近 / 拉远"这类空模板**:它们没写清"从哪到哪、镜头为什么动、什么时候停",
|
|
205
|
+
三镜连写"缓慢推近"全片就只剩一种运动。
|
|
206
|
+
- **每镜至少一种非平移运动**(按情绪选,一镜只用一种):
|
|
207
|
+
**跟拍**(跟着人物走)、**甩镜**(快速摇到新主体,带运动模糊)、**手持晃动**(不安/纪实感)、
|
|
208
|
+
**升降**(机位高度变化,俯仰关系跟着变)、**环绕**(绕主体走弧线)、**变焦**(焦距变化,机位不动)、
|
|
209
|
+
**镜头内主体运动带动**(人物逼近镜头/撞向镜头/从画外闯入)。
|
|
210
|
+
- **同一场连续三镜不得使用同一种运动方式**:写成 跟拍 → 手持逼近 → 环绕 这样交替;
|
|
211
|
+
连续三镜同一运动 = 调度单调,退回改 `motion`。
|
|
212
|
+
- **至少一种非平移运动**与「相邻镜禁止反向运镜」(见第四节 `cam` 字段)不冲突:
|
|
213
|
+
反向是方向问题,类型多样是选择问题——同向的甩镜/跟拍不算反向。
|
|
214
|
+
- ✅ 正例:`起点:他坐在桌前 → 手持跟拍他起身冲出门、轻微晃动并加速 → 停在门框挡住画面的半秒。`
|
|
215
|
+
- ❌ 反例:`镜头缓慢推近。`(全片每镜都这样写 = 单调平移,观众看不出情绪变化)
|
|
157
216
|
- **一镜一个连续动作段落**;不要在一个镜头里写多个动作串联,也不要写跨镜切换(切镜由分镜表组织)。
|
|
158
217
|
- **首帧与运动不重复**:visual 描述静止状态,motion 描述之后发生的变化。
|
|
159
218
|
|
|
219
|
+
### 冲撞感:怎么用镜头写出"撞"(每场至少一个冲撞点)
|
|
220
|
+
|
|
221
|
+
**每场至少一个冲撞点**:人物之间(对峙、逼问、撕扯、抢夺),或人物与环境/物件之间
|
|
222
|
+
(撞门、摔碎、被雨砸、被车灯扫过、被推上墙)。写不出冲撞点的场 = 这场没戏,回去加冲突,
|
|
223
|
+
**不要靠运镜硬撑**。
|
|
224
|
+
|
|
225
|
+
四种手段,同一个冲撞点至少叠两种:
|
|
226
|
+
|
|
227
|
+
| 手段 | 怎么写进分镜 | 判定标准 |
|
|
228
|
+
|---|---|---|
|
|
229
|
+
| 短镜头堆叠 | 冲撞点前后连用 1–1.5s 短镜(爆发瞬间可到 0.3–0.8s),每镜只留一个动作 | 冲撞段落里出现 ≥2 个 ≤1.5s 的镜头 |
|
|
230
|
+
| 反向构图 | 不越轴的前提下让相邻两镜构图重心相反(正反打、俯仰互换、主体左右占位互换) | 相邻两镜构图重心方向相反,且轴线关系仍成立 |
|
|
231
|
+
| 突然的机位跳切 | 用 `seg: closeup` 插一个大特写或俯拍,刻意打断轴线一瞬——**切完立刻切回原轴线** | 冲撞点处出现一次景别或角度的突变 |
|
|
232
|
+
| 声音突入 | `sfx` 写一个**盖过环境声的短促声音**:撞门、玻璃碎裂、掌掴、急刹、椅腿刮地、呼吸骤停 | 冲撞点那镜的 `sfx` 是"突入型"声音,不是环境底噪 |
|
|
233
|
+
|
|
234
|
+
- **visual 写"接触瞬间"**:不写"两人起冲突",写"他的肩撞上她的肩,她的包被撞飞,画面右倾、前景手臂横挡"。
|
|
235
|
+
- **motion 写"速度突变"**:`起点:静止对峙 → 突然加速逼近(手持晃动)→ 在相距半臂处急停`。
|
|
236
|
+
- **sfx 写"声音证据"**:`椅腿刮地、闷响、急促呼吸`;非冲撞镜只给环境声(雨声/空调声/远处车流)。
|
|
237
|
+
- ✅ 正例:冲撞点 = 0.6s 大特写(攥紧的拳头)+ 1.2s 反向过肩(她被推上墙)+ `sfx: 后脑撞墙的闷响`。
|
|
238
|
+
- ❌ 反例:全场 motion 都是"缓慢推近"、sfx 全是"雨声"——观众感受不到任何冲击。
|
|
239
|
+
|
|
160
240
|
### 连续性(最容易被忽略,必须检查)
|
|
161
241
|
- **180° 轴线**:对话双方在相邻镜头保持同一侧。
|
|
162
242
|
- **服装 / 发型 / 光线 / 天气**在相邻镜头一致;换场要交代时间流逝。
|
|
163
243
|
- **相邻镜头的方向与姿态要衔接**(180° 轴线、出入画方向一致);多镜头一次性生成时
|
|
164
244
|
把衔接关系写进相邻镜头的提示词,模型会在同一条视频里保持连贯。
|
|
165
245
|
|
|
246
|
+
### 分镜自检(生成分镜后逐条判定,任一不过 → 重拆/重写,不带病生成视频)
|
|
247
|
+
|
|
248
|
+
| # | 检查项 | 判定标准(可机械核对) | 不过怎么办 |
|
|
249
|
+
|---|---|---|---|
|
|
250
|
+
| 1 | 每场有冲突点? | 每场能指出"谁 vs 谁/物"的具体冲撞点,且该处叠了 ≥2 种冲击手段(短镜/反向构图/跳切/声音突入) | 回剧本加冲突,不是靠运镜补救 |
|
|
251
|
+
| 2 | 每场有 1 个大特写? | 每场 `shots` 里至少一镜 `visual` 以「大特写」开头且写明拍的是哪个局部 | 在关键信息/情绪爆点处补一镜(0.8–2s) |
|
|
252
|
+
| 3 | 有三镜同运动? | 任意连续 3 镜的 `motion` 运动类型(跟/甩/手持/升降/环绕/变焦/主体带动)不全相同 | 改中间那镜的运动类型,或拆镜 |
|
|
253
|
+
| 4 | 景别是否具体? | 每镜 `visual` 首句含具体景别;全文搜不到"镜头对着""画面里"这类无景别开头 | 逐镜补景别,缺机位/光线的按六要素补齐 |
|
|
254
|
+
| 5 | 场间有因果钩子? | 每场结尾句是动作/物件(不是总结),且下一场第 1 镜由它引发 | 重写该场结尾,或调整下一场开场 |
|
|
255
|
+
| 6 | 六要素齐全? | 每镜 `visual` 六要素逐项能找到(景别/机位角度/主体位置朝向/前景背景/光线方向质感/道具位置) | 缺项补写;字数超了就拆镜 |
|
|
256
|
+
|
|
257
|
+
> 前 5 条来自用户实测反馈(剧本不连贯、镜头太粗、运镜单调、缺冲击),是**硬闸门**;
|
|
258
|
+
> 第 6 条是质量线。自检结果不需要输出给用户,但**不合格就不许触发视频生成**(视频花钱,分镜重生成不花钱)。
|
|
259
|
+
|
|
260
|
+
|
|
166
261
|
## 三、图片提示词规范
|
|
167
262
|
|
|
168
263
|
公式:**主体 + 景别/构图 + 环境 + 光线 + 风格质感 (+ 画幅)**
|
|
@@ -171,6 +266,9 @@ B:……
|
|
|
171
266
|
(年龄、发型、服装、配饰),只在景别与动作上变化。
|
|
172
267
|
- **参考图绑定**:把角色/场景/道具资产连到图片节点的 ref 端口,顺序即 `[图N]`,
|
|
173
268
|
提示词里用 `[图1] 角色:陈拾(旧邮差制服,帆布邮包)` 这样的绑定说明。
|
|
269
|
+
- **图片/视频是合并节点(有图就是资产,空节点点开面板生成)**:画布不再区分「生成节点」与
|
|
270
|
+
「资产节点」——同一个 `image` / `video` 节点,有结果(`assetId`)就是资产,没有结果时点开节点
|
|
271
|
+
的生成面板填写提示词后生成;参考图仍靠连线(资产 → ref)与 `@实体@` 引用挂载。
|
|
174
272
|
- **要避免**:一个画面里多个主体动作、文字/水印、风格混搭(写实 + 卡通)、
|
|
175
273
|
极端广角导致人物变形。
|
|
176
274
|
- 风格统一:整部片用**同一套风格词**(如"写实电影感,暖色调,浅景深")。
|
|
@@ -179,7 +277,7 @@ B:……
|
|
|
179
277
|
|
|
180
278
|
### 多镜头视频:系统自动用「参考生成」结构化格式(不要手写机械拼装)
|
|
181
279
|
|
|
182
|
-
|
|
280
|
+
分镜表驱动的视频节点(`video` 节点连了分镜表)**由画布自动组装结构化提示词**,格式对齐 MiniMax H3 /
|
|
183
281
|
优云智算优化后的协议——**机械拼装(风格 + [图N] 绑定 + 镜头列表 + 设定集全文)会让模型把台词、
|
|
184
282
|
场景、人物判错**(实测:台词被当画外音、场景串镜)。自动生成的六段结构:
|
|
185
283
|
|
|
@@ -279,9 +377,13 @@ non_diegetic_music: 仅当显式给出(节点扩展参数 {"music":"…"}
|
|
|
279
377
|
|
|
280
378
|
## 六、交付前自检清单
|
|
281
379
|
|
|
282
|
-
- [ ] 剧本:开场 10
|
|
380
|
+
- [ ] 剧本:开场 10 秒有钩子;结尾有悬念;对白口语化;**每场目标/阻碍/转折/代价四要素各至少一处**;
|
|
381
|
+
**每场结尾是动作或物件的因果钩子(不是总结句),且下一场由它引发**
|
|
283
382
|
- [ ] 一致性:人名/地名/道具与设定集逐字一致;角色外观描述未漂移
|
|
284
|
-
- [ ] 分镜:镜头数 × 时长 ≈
|
|
383
|
+
- [ ] 分镜:镜头数 × 时长 ≈ 目标时长;每镜一个动作;相邻镜头轴线与光线连续;
|
|
384
|
+
**每镜 `visual` 六要素齐全且景别具体**;**每场至少 1 个大特写**
|
|
385
|
+
- [ ] **冲撞**:每场至少一个冲撞点,且叠了 ≥2 种冲击手段(短镜头堆叠 / 反向构图 / 机位跳切 / 声音突入)
|
|
386
|
+
- [ ] **调度**:`motion` 写成"起点→运动方式→终点",含非平移运动;**同一场连续三镜不含同一种运动方式**
|
|
285
387
|
- [ ] **节奏**:同一场里至少一次明显的时长对比(快切/长镜);景别随情绪推进而不是随机
|
|
286
388
|
- [ ] 提示词:图片含景别/光线/构图;视频单动作单运镜;风格词全片统一;**每条视频提示词都有音频指令**
|
|
287
389
|
- [ ] 资产:命名含项目 + 集数 + 场次(便于检索与后期对轨)
|
|
@@ -13,8 +13,11 @@ description: 画布节点布局纪律:一类型一列、竖向排列、绝不
|
|
|
13
13
|
|
|
14
14
|
1. **一类型一列**:同类型节点永远排在**同一竖列**里、从上往下顺次排列。
|
|
15
15
|
列的固定顺序(从左到右):
|
|
16
|
-
**剧本 → 场景文本 → 分镜表 →
|
|
16
|
+
**剧本 → 场景文本 → 分镜表 → 图片节点(角色/场景/道具参考图)→ 视频节点 → 成片**。
|
|
17
17
|
绝不把同类型节点横向散开,也绝不与其他类型混列。
|
|
18
|
+
> **图片/视频是合并节点**:不再区分「生成」与「资产」两种节点——**有图/有视频就是资产,
|
|
19
|
+
> 空节点在画布上点开生成面板填写提示词后生成**。所以「图片节点」这一列同时承载
|
|
20
|
+
> 已生成的参考图与待生成的空节点;新建节点一律用 `image` / `video` 类型(旧名自动映射)。
|
|
18
21
|
2. **连线不改列**:连线只表达数据流(剧本→分镜、分镜→视频、资产→参考图)。
|
|
19
22
|
分镜表不会因为连了"某场文本"就移动到那一列旁边——它永远待在「分镜表」列里。
|
|
20
23
|
3. **绝不重叠**:任意两个节点框不得相交,最小间距 24px。
|
|
@@ -39,8 +42,8 @@ description: 画布节点布局纪律:一类型一列、竖向排列、绝不
|
|
|
39
42
|
1) 剧本节点 (1 个,列 1)
|
|
40
43
|
2) 场景文本 × N 按场次顺序建(列 2,竖向 = 场1…场N)
|
|
41
44
|
3) 分镜表 × N 按场次顺序建(列 3;用 connectFrom 连到对应场景文本,但列归属不变)
|
|
42
|
-
4)
|
|
43
|
-
5) 视频节点 × N 按场次顺序建(列 5
|
|
45
|
+
4) 图片节点 × M 角色 → 场景 → 道具 顺序建(列 4;有图=资产,空节点点开面板生成)
|
|
46
|
+
5) 视频节点 × N 按场次顺序建(列 5;生成与结果同一个节点)
|
|
44
47
|
6) 成片节点 (列 6,通常 1 个)
|
|
45
48
|
```
|
|
46
49
|
|
|
@@ -15,7 +15,7 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
15
15
|
(`canvas_update_bible`),再开始生成;用户已给出创意时按其创意补全,不要凭空另起一套。
|
|
16
16
|
- **创作意图、世界观、核心设定、风格基调 → 全部写进设定集;
|
|
17
17
|
【禁止】为"创作意图/世界观/设定"单独建任何节点**——那是设定集的职责,不是节点。
|
|
18
|
-
- 角色/场景/道具的参考图也应**先从设定集条目生成**(为每个条目建 `image
|
|
18
|
+
- 角色/场景/道具的参考图也应**先从设定集条目生成**(为每个条目建 `image` 图片节点 → `canvas_run_node`),
|
|
19
19
|
再进入分镜与镜头生成,这样才能跨镜跨集一致。
|
|
20
20
|
- 唯一例外:用户明确说"先随便写个剧本/不用管设定"。
|
|
21
21
|
1. **同一个请求最多创建一个项目。** 调用 `canvas_create_project` 之前**必须先** `canvas_list_projects` 查重:
|
|
@@ -56,7 +56,7 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
56
56
|
- 拆分操作:全集剧本已生成后,按场景把对应片段 `canvas_write_node(target:'output')`
|
|
57
57
|
写入各场景剧本节点(这是**分配已有内容**,不是代写)。
|
|
58
58
|
10. **汇报固定要素**:项目名 + 项目 id + 节点名/id + 成稿摘要(若已生成);有错误如实说明。
|
|
59
|
-
11. **生成节点前置检查单(创建任何 image
|
|
59
|
+
11. **生成节点前置检查单(创建任何 image / video 节点前逐条确认,任一不过 = 停止创建)**:
|
|
60
60
|
① **镜头清单来源**:这一段的镜头序列已经从分镜表节点的 `shots` 读到了吗?(`canvas_node_status`)
|
|
61
61
|
没读到 → 停止创建,先读分镜表节点;仍读不到 → **问用户要分镜内容**。绝不自己按剧本推导/编造镜头表。
|
|
62
62
|
② **视频节点数量 = 1**:一个分镜表对应一个完整视频(多镜头一次生成)。
|
|
@@ -88,6 +88,28 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
88
88
|
`closeup` 特写插入允许跳切(接缝阈值 0.15)。续帧段由画布自动做尾帧接力
|
|
89
89
|
(`tailpick` → 下段 `frame`,或沿 `tail→prev` 链自动取上一段尾帧)并做接缝校验;
|
|
90
90
|
**不要**为了"接上"去复制上一段的画面描述(重演 = 白花钱且更跳)。
|
|
91
|
+
16. **分镜质量闸门(生成视频前必过)。** 读到 `shots` 之后、建视频节点之前,按 `canvas-craft`
|
|
92
|
+
「分镜自检」六条逐条核对:**每场冲突点 / 每场 1 个大特写 / 连续三镜不同运动 / 景别具体 /
|
|
93
|
+
场间因果钩子 / 六要素齐全**。任一不过:先 `canvas_run_node` **重生成该分镜表**(不花钱),
|
|
94
|
+
或用 `canvas_update_node` 改 `shots`(**整表替换**——改一镜也要把全部 shots 读回再整体写回,
|
|
95
|
+
别冲掉其它镜的 `tail`/`cam`/`seg`);**绝不带着粗分镜去生成视频**(视频按秒计费、无法局部重来)。
|
|
96
|
+
判定只看分镜文本,不看画面好不好看。
|
|
97
|
+
- **术语统一**:汇报与改写一律用「**大特写**」「**调度**」;景别必须具体(大特写/特写/近景/中景/
|
|
98
|
+
全景/远景),不写"镜头""画面";`motion` 不写"平移/推近/拉远"这类空模板。完整勘误表见
|
|
99
|
+
`canvas-craft`「术语勘误」。
|
|
100
|
+
17. **多画布:一个项目可以有多个画布(右侧「项目」页签里项目为根、子画布为子目录)。**
|
|
101
|
+
- `canvas_list_projects` 会在每个项目下列出 `canvasId=…` 的画布清单;**缺省 `canvasId` = 项目默认画布**,
|
|
102
|
+
旧项目只有默认画布,照旧只传 `projectId` 即可。
|
|
103
|
+
- 用户指明"在某某画布/第二个画布"里操作时,读和写都必须**显式带 `canvasId`**:
|
|
104
|
+
`canvas_list_projects` → 找到目标 `canvasId` 后,`canvas_create_node` / `canvas_write_node` /
|
|
105
|
+
`canvas_run_node` / `canvas_node_status` / `canvas_update_node` / `canvas_connect` /
|
|
106
|
+
`canvas_relayout` / `canvas_delete_node` / `canvas_open` 全部支持该参数;
|
|
107
|
+
**不带 = 默认画布**,会"报节点不存在"或写错画布。
|
|
108
|
+
- 画布之间节点/连线互相隔离;**资产与设定集按项目共享**(所有画布同一份设定集、同一资产库),
|
|
109
|
+
不要为不同画布重建设定集或重复上传资产。
|
|
110
|
+
- **专家人设给方向,技能判据是准绳**:内置分镜专家的 persona 已写入六要素 / 每场 1 个大特写 /
|
|
111
|
+
motion「起点→方式→终点」/ 同场连续三镜不同运动 / 每场冲撞点等硬规则,但仍以 `canvas-craft`
|
|
112
|
+
的完整判据与自检表为准;两者冲突时,**以技能判据为准**。
|
|
91
113
|
|
|
92
114
|
## 二、标准工作流(对话填提示词+连线+触发,生成由节点完成)
|
|
93
115
|
|
|
@@ -100,6 +122,10 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
100
122
|
- 触发生成:`canvas_run_node({ projectId, nodeId })` → `canvas_node_status` 轮询直到 done/error
|
|
101
123
|
- 生成契约(自动注入,无需复述):整集 **4–10 场、每场 10–30 秒成片(按内容写足,时长不设硬上限)**;**每场以「【场N】场景名(地点·时间)」单独一行开头**
|
|
102
124
|
——这是"铺开到场景"自动拆分的解析标记,格式不可变;对白逐行「角色:台词」;结尾附人物/场景/道具清单;
|
|
125
|
+
- **提示词里必须点名两条叙事硬约束**(不写,节点生成的剧本大概率是场景流水账):
|
|
126
|
+
① **每场结尾留因果钩子**——一个可拍摄的动作或可见物件,直接推动下一场(禁止"他决定了/危机靠近"
|
|
127
|
+
这类总结句);② **每场至少一个冲突点**(人物之间,或人物与环境/物件之间),并写清
|
|
128
|
+
目标—阻碍—转折—代价四要素。判定口径见 `canvas-craft` 第一节「场景间因果钩子」。
|
|
103
129
|
- **【铁律】不要把成稿直接填进 output**——生成是节点的工作(用户在画布上看得到过程与结果)。
|
|
104
130
|
仅当用户明确说"你直接把剧本写出来、不用节点生成"时,才允许 `target:'output'` 直接写成稿。
|
|
105
131
|
3. **铺开到场景(每场 = 场景文本节点 + 分镜表节点,连线一次生成场景分镜)**:
|
|
@@ -116,13 +142,17 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
116
142
|
**重新 `canvas_run_node` 该分镜表**即可修正(重生成分镜不花钱,只有视频花钱)。
|
|
117
143
|
4. **逐场生成视频(多镜头一次生成)**:
|
|
118
144
|
- `canvas_run_node({ 分镜表 })` → `canvas_node_status` 读 `shots`(镜头清单以此为准,绝不编造镜头表);
|
|
119
|
-
-
|
|
145
|
+
- **【质量闸门 · 先自检再建节点】** 用这组 `shots` 过一遍硬约束 16 的六条自检(冲突点/大特写/
|
|
146
|
+
三镜同运动/景别具体/因果钩子/六要素)。不过关 → `canvas_run_node` 重生成该分镜表,
|
|
147
|
+
或 `canvas_update_node` 改 `shots`(整表替换);**过闸门之前不要建视频节点**——
|
|
148
|
+
分镜重生成不花钱,视频生成按秒计费且无法局部重来。
|
|
149
|
+
- `canvas_create_node({ projectId, type: 'video', name: '第X节-场Y视频', connectFrom: 分镜表节点id, duration: 各镜时长之和 })`
|
|
120
150
|
(不传 connectFrom 且项目里有已拆解镜头的分镜表时会自动连线;prompt 留空);
|
|
121
151
|
- **【禁止逐镜建节点】**一段 10–30 秒的场景视频**不需要逐镜的图片节点或"镜头图→镜头视频"链路**:
|
|
122
152
|
多镜头一致性靠角色/场景/道具**参考图资产**(`@资产名@` 引用自动挂载)保证,视频模型在一次调用里完成全部镜头。
|
|
123
153
|
最多为**开场首帧或 1–2 个关键镜头**补定帧图(接同一视频节点的 frame/ref 端口)。
|
|
124
154
|
一旦发现自己在批量创建"第X节-场Y-镜Z"这类镜头图片/视频节点 = 走错路,**立即停止**并回到本条。
|
|
125
|
-
-
|
|
155
|
+
- 参考图:把角色/场景/道具参考图资产连到视频节点的 `ref` 端口(`canvas_connect`);
|
|
126
156
|
提示词里的 `@资产名@` 命中的资产也会自动挂上
|
|
127
157
|
- **【跨段连贯:分镜承接 + 尾帧 → 首帧】**连贯分两层,先文本后画面:
|
|
128
158
|
**①分镜承接(文本层,先做)**:上一分镜表 `tail` → 本分镜表 `prev`(见硬约束 13 / 工作流第 3 步),
|
|
@@ -154,9 +184,9 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
154
184
|
**按顺序触发**:上一段 `canvas_node_status` 为 done 后再触发下一段(自动续帧要读上一段成片)。
|
|
155
185
|
分镜表节点上的「铺开到画布」按钮会**自动把上一段的 `tailpick`/`last` 接到本段 `frame`**
|
|
156
186
|
(按上面同一条「找上一段」规则),所以铺开 → 逐段按顺序生成即可,通常不必手工连 frame。
|
|
157
|
-
|
|
158
|
-
已有图 → 直接挂
|
|
159
|
-
**没有图 →
|
|
187
|
+
**资产参考图按需就地补齐**(图片与资产已合并成同一种「图片节点」:**有图就是资产、空节点点开面板生成**):
|
|
188
|
+
已有图 → 直接挂 `image` 图片节点并接到视频的 `参考图` 口;
|
|
189
|
+
**没有图 → 建「图片节点」**,标签按命名规范(`角色-<名> 设定图` / `场景-<名> 设定图` /
|
|
160
190
|
`道具-<名> 设定图`),提示词已按 canvas-craft「资产设定图版式」写好(角色六段式 / 场景主图+环绕小图 /
|
|
161
191
|
道具 45° 主图+细节+色卡,2K 横版),设定集的「外观:…」自动注入,**不留空壳占位节点**。
|
|
162
192
|
所以铺开后先按拓扑顺序把资产图生成掉(或直接跑工作流),再生成视频;同一分镜表重复铺开不会叠加重复资产节点。
|
|
@@ -185,7 +215,7 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
185
215
|
首帧接力则追加首帧锚定行与 `continuity:` 段。**你不必(也不要)把这些手工拼进提示词**,
|
|
186
216
|
只需在分镜 `shots` 里把字段写对;分镜表节点「分镜衔接」开关(`cont`)默认开,
|
|
187
217
|
关掉后 AI 拆镜不再产出这四个字段(留给人工写)。
|
|
188
|
-
5. **生成角色/场景/道具参考图**:为设定集里的每个条目创建 image
|
|
218
|
+
5. **生成角色/场景/道具参考图**:为设定集里的每个条目创建 image 图片节点
|
|
189
219
|
(命名规范「角色-<名> 设定图」/「场景-<名> 设定图」/「道具-<名> 设定图」),
|
|
190
220
|
**prompt 必须按 `canvas-craft`「资产设定图版式」一节的排版模板写详细版式提示词,
|
|
191
221
|
禁止只写一句三视图/外观关键词**——信息量不足,撑不起后续视频的角色一致性。要点(完整模板见 canvas-craft):
|
|
@@ -242,15 +272,15 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
242
272
|
1. 每集开工前先 `canvas_get_bible`,**只沿用已有名称**;新元素先 `canvas_update_bible` 补卡再使用。
|
|
243
273
|
2. **绝不改名**:一个角色的名字一旦写进设定集,后续所有集数、所有提示词都用同一个名字。
|
|
244
274
|
3. 已生成的参考图资产**持续复用**:`@资产名@` 会自动带上它们,不需要重复生成。
|
|
245
|
-
4. 若某实体还没有参考图,先为它建一个 `image
|
|
275
|
+
4. 若某实体还没有参考图,先为它建一个 `image` 图片节点生成(用规范命名),再进入镜头生成。
|
|
246
276
|
## 四、节点类型与字段
|
|
247
277
|
|
|
248
278
|
| 类型 | 用途 | 主要字段 |
|
|
249
279
|
| --- | --- | --- |
|
|
250
280
|
| `script` | 剧本 | `idea`=创作意图/提示词,`output`=剧本成稿 |
|
|
251
281
|
| `storyboard` | 分镜表(多镜头脚本) | 由剧本拆镜头(画布内生成);一个分镜表对应一次视频生成 |
|
|
252
|
-
| `image
|
|
253
|
-
| `video
|
|
282
|
+
| `image` | 图片节点(合并类型:有 `assetId` 就是资产图,有 `prompt` 就是待生成) | `prompt`=画面提示词;`size`/`ratio`;有结果即资产 |
|
|
283
|
+
| `video` | 视频节点(合并类型:生成与结果同属一个节点,多镜头一次性生成) | 多镜头提示词来自上游分镜表连线;`duration`=各镜时长之和;有 `assetId` 即资产 |
|
|
254
284
|
| `text` | 自由文本 | `text` |
|
|
255
285
|
|
|
256
286
|
## 四、生成能力(必须真的产出内容)
|
|
@@ -322,3 +352,8 @@ description: 用无限画布(Infinite Canvas)做短剧/视频创作时使用
|
|
|
322
352
|
- ❌ 只写提示词、不写剧本正文 → 成稿必须进 `output`
|
|
323
353
|
- ❌ 节点不留名字 → 一律用 `name` 命名
|
|
324
354
|
- ❌ 未经确认就删除项目/节点 → 先列表确认、再按用户明确要求删除
|
|
355
|
+
- ❌ 分镜还是"中景,他走过来/镜头缓慢推近"这种粗颗粒就急着生成视频 → 先过硬约束 16 的质量闸门
|
|
356
|
+
(每场冲突点 / 每场 1 个大特写 / 连续三镜不同运动 / 景别具体 / 因果钩子 / 六要素),
|
|
357
|
+
重生成分镜不花钱,视频按秒计费
|
|
358
|
+
- ❌ 把景别写成"镜头""画面"、把「大特写」写成"大豆/大特"、把「调度」写成"调职" → 按 `canvas-craft`
|
|
359
|
+
「术语勘误」统一,术语错 = 分镜粗,粗分镜 = 成片糊
|