canvas-director

Exact captured content · path assets/canvas-director/SKILL.md · sha256 724422e1a0919589… · revision d24020d47e7b74a200069256defae8eb3c397ec1

Download the exact captured file

---
name: canvas-director
description: 画布导演套件:45 位导演透镜(管镜头语言)、36 个叙事题材 + 10 个行业题材(管压力机制与观众回报)、8 种规格(管结构块/ASL/节奏/质量档;画幅不归它管)、9 种影调质感(管成像与材质)、运镜词典与打斗节奏。在无限画布里写任何剧本、分镜、图片提示词、视频提示词之前加载本技能,用 canvas_skill_pack 取对应切片。Load before writing any script, storyboard, image or video prompt on the canvas.
---

# 画布导演套件

本技能是**创作控制层**,管「怎么拍 / 讲什么 / 按什么规格交付 / 长什么样」。

和其他三份的关系:

| 技能 | 管什么 | 什么时候读 |
|---|---|---|
| `canvas-studio` | 画布操作:建项目、写节点、触发生成 | 任何时候先读 |
| `canvas-craft` | 创作方法论:剧本四要素、分镜六要素、提示词规范 | 写剧本 / 拆分镜前 |
| `canvas-layout` | 节点布局纪律 | 批量建节点前 |
| **`canvas-director`(本技能)** | **导演透镜 / 题材 / 规格 / 影调 / 运镜** | **写任何提示词前** |

**优先级(冲突时按此裁决)**:`用户显式指令 > 导演透镜 > 规格(仅单镜时长与结构上它压过透镜)> 题材 > 影调 > 技能默认`

---

## 一、四层结构

```
L1 导演透镜   单选 45   → 镜头语言 / 灯光色彩 / 剪辑节奏 / 风格参数      「怎么拍」
L2 题材标签   多选 36   → 压力机制 / 观众回报 / 场面颗粒 / 集尾钩子      「讲什么」
   叙事题材 36(叙事类规格时用)
   行业题材 10(宣传/广告/产品类时用)
L3 规格   单选 8    → 结构块 / ASL 下限 / 节奏 / 质量档            「按什么规格交付」
L4 影调质感   单选 9    → 成像底层 / 材质 / 渲染质感(默认跟随导演)       「长什么样」
```

**八种规格**:短剧 · 电影质感 · 商业片 · 纪实 · 音乐视频 · 预告 · 解说 · 访谈。

- **短剧**=单集 60–180 秒的自足单元,**同时覆盖单集与连续多集**(一部剧就是一集一集往下做,不需要单独的「连续剧」规格)。质量要求按电影标准,不按短视频标准。
- **电影质感**=**质感规格,不是长片规格**。它约束每一镜怎么做才像电影(动机光、真材质、成立景深、24 帧),成片长度档只到 30–300 秒——因为 AI 单次只出 3–8 秒,写一个 120 分钟的档是假的。要长片就按集按段推进,本规格负责每段都过电影线。
- **商业片**=宣传片 / 广告片 / 产品片合并(相近需求,靠段位配比内部分流,不再拆三张)。
- **画幅不归任何一层。** 横屏、竖屏、方屏、宽银幕都能配任何规格;**画幅与分辨率在视频节点生成时选**。短剧竖屏投放是发行选择,不是创作规格——短剧同样可以横屏、可以按电影标准拍。

为什么这样分:

- **导演独占第一层**:它同时约束分镜的 camera 字段、图片关键帧、视频运镜——是整部片最不可替换的决策。
- **题材与导演分开**:同一个「复仇打脸」,王家卫拍是抽帧暧昧,徐克拍是凌厉升格。混一层会互相污染。
- **规格独立**:它决定结构块、ASL 下限与质量档,和题材是正交的两个轴。**画幅不属于任何一层**——横竖屏是视频节点生成时的选项,不是创作规格。短剧可以竖屏也可以横屏,都要按电影标准拍。
- **影调独立**:2D 厚涂 / 国漫 3D / 游戏 CG 是**成像域**,不是导演。塞进导演会让「怎么剪」和「长什么样」打架。
- **运镜不独立成层**:运镜是导演的语言,独立成层会出现「王家卫 + 摇镜」的自相矛盾。它作为卡内数据存在(`moves/`),只被透镜与规格引用。

---

## 二、数据在哪

```
assets/canvas-director/
├── manifest.json    五层索引:lenses / genres / industries / forms / looks
├── pack.js          切片纯函数(Host 与 Client 同源)
├── lenses/          45 份导演透镜(每份 14 小节 + 风格参数 YAML)
├── genres/          36 份叙事题材卡
├── industries/      10 份行业题材卡
├── forms/           8 份规格卡(含 spec 数值块:durations / asl_floor_s / asl_target_s / platforms)
├── looks/           9 份影调质感卡
└── moves/           camera-moves.md 运镜词典 / fight-rhythm.md 打斗节奏
```

每张小节前有 `<!-- slice:story shot prompt assets -->` 标记,声明它属于哪类生成。

---

## 三、先用工具取切片(不要自己读整份文件)

**`canvas_list_skills`** —— 开始画布工作前先调它。它会告诉你:
- 本插件提供的 4 份技能及各自什么时候用;
- 四层技能包的完整清单(每层有多少张、都有哪些 id 与名称、各自一句话定位);
- 当前项目已经选定的配置(导演 / 题材 / 规格 / 影调)。

**`canvas_skill_pack`** —— 真正取切片:

```
canvas_skill_pack({ projectId, kind: 'script' })
canvas_skill_pack({ projectId, kind: 'storyboard' })
canvas_skill_pack({ projectId, kind: 'prompt' })
canvas_skill_pack({ projectId, kind: 'assets' })
```

返回该生成能力下的**已拼装文本 + 字节数 + 生效配置**,可直接拼进你的 system / 提示词。

也可以临时覆盖某一层而不改项目配置:

```
canvas_skill_pack({ projectId, kind: 'prompt', lens: 'fincher', look: 'dark-myth-cg' })
```

或直接把配置写进项目(与画布 UI 的选择同源):

```
canvas_skill_pack({ projectId, kind: 'prompt', lens: 'wong_kar_wai', genres: ['revenge-face-slap'], form: 'short-drama', set: true })
```

### 切片口径(按能力切,绝不整份注入)

| kind | 内容 | 典型字节 |
|---|---|---|
| `script` | 题材卡全部 + 透镜的叙事/节奏/表演节 + 规格的结构块 | ~9–12KB |
| `storyboard` | 透镜的镜头语言/灯光/风格参数/拍摄清单 + 规格卡 + 运镜词典 | ~12–16KB |
| `prompt` | 透镜的风格参数/灯光/提示词模板 + 影调卡 + 该类型的 ASL 与负向词 | ~8–12KB |
| `assets` | 透镜的风格参数/灯光 + 影调卡 | ~4–6KB |

一份透镜全文 12–22KB,整份注入会吃掉几千 token,而且稀释真正相关的判据。**永远用工具取切片。**

---

## 四、13 步流水线

只在需要时跑对应步骤。每步说清「读什么」。

### 1. 立项与限制
定交付物、片长、平台、题材、约束(**画幅在视频生成那一步再定,这里不锁**)。**先调 `canvas_list_skills` 看清单,再定。**

### 2. 剧本与潜文本拆解
按顺序给出:表层事件 → 戏剧问题 → 冲突(外部/内部)→ 潜文本 → 情绪走向 → **视觉命题**。

视觉命题必须具体可测:"男孩随着房间变得更审判而变小",不是"孤独与命运"。写不成可拍摄的变化,就还不是命题。

非叙事片(选「商业片」规格:宣传片/广告片/产品片)**跳过本步**:用规格卡里的「观众契约」替代,等价物是"主张 + 那一个可见的证明"。不要为一只口红推导潜文本。

### 3. 节拍表
按**压力变化**分节拍,不按机位分。每拍写:叙事功能、进出状态、视觉动作、压力差、可能的镜头族(建立/关系/特写/插入/反应/过渡/余波/主观/揭示)。

### 4. 导演透镜
`canvas_skill_pack({kind:'script'})` 已按配置带入。若用户点名某位导演,用覆盖参数取那一份。

**一次只挂一个透镜。** 两个导演会互相抵消。用户同时点名两位时,选更服务本场戏核的那位,一句话说明选择,并提一句另一位会带来什么不同。

用户点名的导演不在 45 位里时:**不要静默替换**。一句话说明没有对应透镜,给出最接近的一位及其差异轴,然后按用户给的参考图或描述临时搭一个,并标记为临时。

### 5. 导演本 / 视觉处理
可复用的规则集,用来稳定后续所有提示词:调性、镜头与构图政策、运镜语法与允许的运动集合、灯光逻辑与主光方向、色板与色彩脚本、美术锚点与年代锁、表演基调、剪辑节奏与目标 ASL、声音方向、以及**不变项条款**(逐字粘进每一条提示词的身份串与光线不变项)。

一份导演本合格的判据:**两个人照着填分镜,能填出兼容的东西。**

### 6. 调度
每一个有人的镜头:起始位置、运动、与空间和道具的关系、与机位的关系、结束位置、视线。调度不是"演员站哪儿",是身体位置+运动+道具+机位共同揭示权力、恐惧、吸引、秘密、孤立、反讽。

**先定调度再定机位。** 调度对了,机位平都能读;调度错了,运镜再花也救不回来。

### 7. 分镜表
节拍与调度清楚之后才建行。每镜写:编号、时长、场/景、叙事功能、景别、焦段、角度、运镜、调度(起点→运动→终点)、光向与气氛、连续性锚点、转场、风险、AI 生成备注。

运镜从 `moves/camera-moves.md` 里选,**一镜一个**。

### 8. 关键帧策略
按连续性风险选:

- **单首帧** —— 一个稳定构图里的简单动作。
- **首帧 + 末帧** —— 受控转变、有明确结束点的动作、两个构图之间的设计转场。
- **逐镜关键帧** —— 身份、服装、地点、调度必须守住的场合。
- **分镜图版** —— 模型把静帧当幻灯片时。

**关键帧是控制点。** 视频模型基本只是把静帧重新动起来。先修图,再花视频生成的钱。

### 9. 工具适配
先认控制面再写一个字:文生视频 / 图生视频(首帧) / 末帧槽 / 参考绑定 / 机位控制 / 运动强度 / 原生音频 / 时长范围 / 续写 / 多镜时间戳 / 种子 / 负向提示词 / 视频转视频。

认不出就不要猜它的能力——问它暴露了哪几项,或者按能力路由。

### 10. 提示词构建
形状由控制面决定:

**S1 纯运动**(图生视频):图已经承载身份、构图、光线、场景、服装、风格。文字只写运动、机位、时间、结束状态、约束。

```
[机位行为]. [主体起始可见状态], then [一个主动作,含速度与方向].
[环境做一处细微反应]. End with [明确的最终姿态/构图].
Maintain [身份/服装/地点/光向]. Avoid [与本镜真实风险匹配的失败项].
```

**S2 完整描述**(文生视频):文字承载全部。

**S3 关键帧对**(首帧+末帧):写两张已批准静帧之间的**桥**,不是写静帧本身。

**S4 多镜时间戳**:`Overall:` 块放身份/服装/色板/光线事实,**段内一律不重述**——重述一次,模型就换一次人。

**动作必须分层**:把"一个动作"拆成 **起势 → 发力 → 落点** 三拍,每拍写可见的身体/道具状态。只写一拍 = 模型只演一个姿势。

### 11. 声音与对白
每镜五层:room tone、氛围、拟音、点效、配乐。对白守一镜一人,说话人必须在画内开口、口型同步。生成不了的(方言、特殊音色)改成画外音、反应镜或后期配音。

**一条连续的环境底噪能盖住大量视觉漂移**——这是最便宜的连续性胶水。

### 12. 剪辑与组接
生成出来的片段是原料不是成片。指定:片段顺序、入点出点、修剪余量、每段的进入转场、下面的音频层。

匹配剪辑要靠**把 A 的末帧和 B 的首帧一起设计**。能用切、修剪、叠化解决的,不要多生成一次。

### 13. 质检与修复
诊断按这个顺序查:素材不一致 → 提示词超载 → 动作太弱(是姿势不是动作)→ 缺结束状态 → 机位逻辑错 → 跨镜断裂 → 工具不匹配。

**成本阶梯**:改提示词 → 调参数 → 重生成 → 重建关键帧 → 视频转视频 → 重规划镜头 → 剪辑里修 → 删掉这个镜。停在第一个有效的层级。

**同一镜三次生成都失败,就改镜头不要改提示词**:更短、更近、更简单、拆成两个、换首末帧、移出画外只给结果、换成反应或插入镜。

---

## 五、硬规则

1. **叙事功能优先。** 没有叙事功能的镜头删掉,不是改进。
2. **调度先于构图。** 先决定身体在空间里做什么,再放机位。
3. **一条 clip 只能有一个主运镜 + 一个主动作。** 完全不动是正当选择,而且常常更好。
4. **每个动作都有结束状态。** "他转身"不是镜头;"他转到侧脸压住窗户,停住"才是。
5. **写行为不写情绪。** 永远不要写"他很害怕",写害怕在身体上是什么样。
6. **连续性靠工程。** 点名不变项(身份、服装、光向、年代、地理),并在每一镜里逐字重复。
7. **关键帧是控制点。** 先用图把身份和构图定死,再花视频的钱。
8. **匹配工具的控制面。** 不要向模型要它没暴露的功能。
9. **负向词要指名实例。** "不要现代物件"是模型无法解析的类别;写"不要塑料、不要杠杆把手、不要橡胶鞋底、不要手表、不要印刷 logo"。
10. **一次只挂一个风格透镜。**
11. **回答要匹配问题的体量。** 一句提示词的需求就给一句提示词,不要扩成整包制作方案。
12. **正文与判据优先于一句话人设。** 人设给方向,切片给可核对的判据。

---

## 六、与其他技能的衔接

- 写**剧本**前:`canvas-craft` 的剧本方法论(四要素、因果钩子、分场格式)+ 本技能的 `kind:'script'` 切片。
- 拆**分镜**前:`canvas-craft` 的分镜六要素(景别/机位/主体位置朝向/前后景层次/光线方向质感/关键道具位置)+ 本技能的 `kind:'storyboard'` 切片。
- 写**图片提示词**前:本技能的 `kind:'prompt'` 切片(含风格参数与负向词)+ 设定集里的角色/场景/道具外观描述。
- 写**视频提示词**前:同 `kind:'prompt'` 切片;若上游是分镜表,结构化格式照 `canvas-craft` 的规定,本技能的切片只作为风格锁追加在尾部。
- 建**节点**前:`canvas-layout` 的布局纪律。

---

## 七、诚实边界

- 本套件的方法论是**通用手法**,不复制任何具体作品的镜头、台词、角色或情节。透镜名只作为内部选择标签,交付物里**绝不出现导演名**——一律翻译成可执行参数(焦段、光比、ASL、色板、负向词)。
- **不承诺逐帧还原参考视频的动作**。具体武打招式要靠 3D 导演台骨骼动画或实拍参考,文字提示词硬凑招式必然出糊动作。详见 `moves/fight-rhythm.md` 的「生成时的明确边界」。
- 题材卡的置信度标注的是「该卡的机制在本套件内被多处交叉印证的程度」,**不代表市场表现、测量结果或任何统计结论**。