storyboard-breaker · diff
git:20260804.64f82ae to git:20260808.99e6680
53 added, 35 removed. Audit A to A.
---
name: storyboard-breaker
- description: 分镜拆解专业规范
+ description: 分镜拆解专业规范 — 将剧本拆分为可承载多个子镜头的分镜段落
---
# 分镜拆解指南
- ## 拆解原则
+ ## 核心定义:分镜段落
- 每个镜头聚焦**单一动作**,描述要详尽具体。每个镜头时长 10-15 秒。
+ 一个分镜 = 一个 **分镜段落**(segment)= 一个视频生成任务。
+ - 每个段落时长 **8-15 秒**,内部承载 **2-4 个子镜头**
+ - 子镜头之间**可以切镜**:换景别、换角度、换拍摄对象,用硬切衔接
+ - 子镜头之间**不跨场景**:一个段落只发生在一个场景内(`scene_id` 是段落级绑定)
+ - 每个子镜头 2-6 秒,聚焦一个画面单元(一个动作、一个反应、一个特写)
+
+ ## 拆分流程(四步)
+
+ 1. 调用 `read_storyboard_context` 读取剧本、角色、场景、道具、已有分镜摘要
+ 2. **节拍识别**:先识别剧本的叙事节拍——剧本中的【开场】【触发】【高潮】【收尾】等标记,或叙事转折点(地点转移、规则揭示、情绪爆发、反转)。**节拍边界强制切段**,同一节拍内的子镜头优先归入同一段落,不把一条因果链(铺垫-发生-反应)切散到不同段落
+ 3. **总量锚定**:目标总时长 = 剧本字数 ÷ 500字/分钟;段落数 ≈ 目标总时长 ÷ 12秒,允许 ±20% 浮动。不要明显超出或不足
+ 4. **段落内拆子镜头**:按动作切换点、视角切换点、对象切换点切分子镜头,为每个段落补全完整字段后调用 `save_storyboards` 一次性保存
+
+ ## 节奏分层时长
+
+ 按段落功能确定时长,不要一刀切:
+
+ | 段落类型 | 时长 | 说明 |
+ |---|---|---|
+ | 过渡段 | 8-10 秒 | 赶路、空镜、环境建立、转场 |
+ | 叙事段 | 10-15 秒 | 常规剧情推进、对话 |
+ | 爆点段 | 12-15 秒 | 特写、规则揭示、情感爆发、反转;子镜头节奏放慢,单个子镜头可停留 4-6 秒 |
+
+ ## 对白时长下限(硬规则)
+
+ **段落时长 ≥ 段内对白总字数 ÷ 4.5字/秒 + 2秒表演余量**
+
+ 装不下的对白必须拆到下一个段落,不允许把演不完的对白塞进一个段落。
+
## 镜头要素
- 1. **镜头标题**:3-5字概括核心内容(如"噩梦惊醒")
+ 1. **镜头标题**:3-5字概括段落核心内容(如"噩梦惊醒")
2. **时间**:具体时分 + 光线描述
3. **地点**:场景完整描述 + 空间布局 + 环境细节
- 4. **景别**:远景/全景/中景/近景/特写
+ 4. **景别**:段落内主导景别;多景别段落写组合,如"中景+特写"
5. **角度**:平视/仰视/俯视/侧面/背面
- 6. **运镜**:固定/推镜/拉镜/摇镜/跟镜/移镜
- 7. **动作**:谁 + 具体怎么做 + 肢体细节 + 表情
- 8. **对话**:该镜头的完整对话
- 9. **画面结果**:动作的即时后果 + 视觉细节
- 10. **氛围**:光线 + 色调 + 声音 + 整体氛围
- 11. **时长**:每个镜头 10-15 秒
- 12. **静态画面提示词**:`image_prompt`,用于首帧/尾帧/镜头图片生成
- 13. **视频提示词**:`video_prompt`(**拆分时留空,由提示词 Agent 在视频生成阶段生成**)
- 14. **配乐提示词**:`bgm_prompt`,描述该镜头适合的配乐风格
- 15. **音效提示词**:`sound_effect`,描述该镜头关键环境音/动作音
- 16. **场景关联**:若能匹配已有场景,必须填写 `scene_id`
- 17. **角色关联**:填写 `character_ids`,绑定当前镜头涉及的 0 到多个角色
- 18. **道具关联**:填写 `prop_ids`,绑定当前镜头出现的关键道具(0 到多个)
-
- ## 使用步骤
-
- 1. 调用 `read_storyboard_context` 读取剧本、角色、场景、道具、已有分镜摘要
- 2. 先基于剧本完成镜头拆解,确保总时长和叙事连续性合理
- 3. 为每个镜头补全完整字段:`title / shot_type / angle / movement / location / time / character_ids / prop_ids / action / dialogue / description / result / atmosphere / image_prompt / bgm_prompt / sound_effect / duration / scene_id`(不含 `video_prompt`)
- 4. 调用 `save_storyboards` 一次性保存完整分镜
- 5. 如需调整,调用 `update_storyboard` 修改具体镜头
+ 6. **运镜**:固定/推镜/拉镜/摇镜/跟镜/移镜(段落内不同子镜头可不同)
+ 7. **动作** `action`:按 `【镜头1】…【镜头2】…` 逐子镜头组织,每个子镜头写清谁 + 具体怎么做 + 肢体细节 + 表情
+ 8. **对话** `dialogue`:该段落的完整对话
+ 9. **画面结果** `result`:段落结尾的即时后果 + 视觉细节
+ 10. **氛围** `atmosphere`:光线 + 色调 + 声音 + 整体氛围
+ 11. **时长** `duration`:段落总时长 8-15 秒,且满足对白时长下限
+ 12. **画面描述** `description`:按 `【镜头N】` 逐子镜头描述观众实际看到的画面
+ 13. **场景关联**:若能匹配已有场景,必须填写 `scene_id`
+ 14. **角色关联**:填写 `character_ids`,绑定当前段落涉及的 0 到多个角色
+ 15. **道具关联**:填写 `prop_ids`,绑定当前段落出现的关键道具(0 到多个)
## 场景关联规则
- 优先使用 `read_storyboard_context` 返回的 `scenes`
- `location + time` 可明确匹配时,必须回填正确 `scene_id`
- 不要凭空生成不存在的场景 ID
- 如果剧本内容明显落在已有场景中,不要重复创造新场景描述
## 角色绑定规则
- `character_ids` 必须从 `read_storyboard_context` 返回的角色列表中选择
- - 一个镜头可以没有角色,也可以绑定多个角色
- - 只要镜头里有明确出场、被看见、发生动作或说话的角色,都应绑定进去
- - 纯环境镜头、空镜头、物件镜头可以传空数组
+ - 一个段落可以没有角色,也可以绑定多个角色
+ - 只要段落里有明确出场、被看见、发生动作或说话的角色,都应绑定进去
+ - 纯环境段落、空镜、物件特写可以传空数组
## 道具绑定规则
- `prop_ids` 必须从 `read_storyboard_context` 返回的道具列表(`props`)中选择
- - 道具被角色使用、交接、特写,或在画面中明显可见且对叙事有意义时,必须绑定到该镜头
- - 道具特写镜头(无角色)也应绑定道具,`character_ids` 可为空
- - 与剧情无关的背景物品、场景陈设不要绑定;没有道具出现的镜头传空数组
- - 绑定的道具会作为视频生成的参考图(白底单品图),保证道具外观跨镜头一致
+ - 道具被角色使用、交接、特写,或在画面中明显可见且对叙事有意义时,必须绑定到该段落
+ - 道具特写段落(无角色)也应绑定道具,`character_ids` 可为空
+ - 与剧情无关的背景物品、场景陈设不要绑定;没有道具出现的段落传空数组
+ - 绑定的道具会作为视频生成的参考图(白底单品图),保证道具外观跨段落一致
## 质量要求
- - `description` 要适合人读,详细描述观众实际看到的画面内容
- - `image_prompt` 要突出单帧构图、角色外观、环境和光线
+ - `description` 要适合人读,按子镜头详细描述观众实际看到的画面内容
+ - `image_prompt` 要突出单帧构图、角色外观、环境和光线(对应段落第一个子镜头)
- `bgm_prompt` 和 `sound_effect` 用简洁短语即可,但不能空泛到只有“紧张”“悲伤”
- 若存在旁白,统一写入 `dialogue`,格式为 `旁白:内容`
+ - 如需调整,调用 `update_storyboard` 修改具体段落