# Storyboard Breaker

> 分镜拆解专业规范 — 将剧本拆分为可承载多个子镜头的分镜段落

- Skill: `chatfire-ai/storyboard-breaker` (Agent Skill)
- Install (CLI): `npx skillmds@latest add chatfire-ai/storyboard-breaker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/chatfire-ai/storyboard-breaker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: chatfire-ai (https://skillmd.com/u/chatfire-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/chatfire-ai/storyboard-breaker

---


# 分镜拆解指南

## 核心定义：分镜段落

一个分镜 = 一个 **分镜段落**（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 秒 |

## 台词时长下限（硬规则）

**段落时长 ≥ 段内台词与旁白总字数（写在 description 中的部分）÷ 4.5字/秒 + 2秒表演余量**

装不下的台词必须拆到下一个段落，不允许把演不完的台词塞进一个段落。

## 镜头要素

1. **镜头标题**：3-5字概括段落核心内容（如"噩梦惊醒"）
2. **时间**：具体时分 + 光线描述
3. **地点**：场景完整描述 + 空间布局 + 环境细节
4. **景别**：段落内主导景别；多景别段落写组合，如"中景+特写"
5. **角度**：平视/仰视/俯视/侧面/背面
6. **运镜**：固定/推镜/拉镜/摇镜/跟镜/移镜（段落内不同子镜头可不同）
7. **画面描述** `description`：按 `【镜头1】…【镜头2】…` 逐子镜头描述观众实际看到和听到的内容——画面（谁 + 具体动作 + 肢体细节 + 表情）写在前；该子镜头有台词时以「角色名说：「台词」」写在对应 `【镜头N】` 内，旁白写「旁白：内容」
8. **画面结果** `result`：段落结尾的即时后果 + 视觉细节
9. **氛围** `atmosphere`：光线 + 色调 + 声音 + 整体氛围
10. **时长** `duration`：段落总时长 8-15 秒，且满足台词时长下限
11. **场景关联**：若能匹配已有场景，必须填写 `scene_id`
12. **角色关联**：填写 `character_ids`，绑定当前段落涉及的 0 到多个角色
13. **道具关联**：填写 `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` 可为空
- 与剧情无关的背景物品、场景陈设不要绑定；没有道具出现的段落传空数组
- 绑定的道具会作为视频生成的参考图（白底单品图），保证道具外观跨段落一致

## 质量要求

- `description` 要适合人读，按子镜头详细描述观众实际看到和听到的内容；台词/旁白直接写在对应 `【镜头N】` 内
- `image_prompt` 要突出单帧构图、角色外观、环境和光线（对应段落第一个子镜头）
- `bgm_prompt` 和 `sound_effect` 用简洁短语即可，但不能空泛到只有“紧张”“悲伤”
- 如需调整，调用 `update_storyboard` 修改具体段落

