# AI Short Drama

> AI 短剧分镜脚本生产管线。从剧情头脑风暴 → 画风与人设建议 → 人物生图提示词（GPT Image / Nano Banana）→ 分镜拆解 → 中英双语台词 → 转场与运镜指导 → 产物归档。专为 AI 视频工具（Seedance、Runway、Kling 等）优化，规避真人版权、保证多镜头一致性、降低 AI 生成不确定性。触发词：「生成 AI 短剧脚本」「写个短剧」「做短剧分镜」「短剧角色画像」「打磨剧本」。

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

---


# AI 短剧分镜管线 (AI Short Drama Pipeline)

> 把一个剧情创意，沉淀为可直接交付给 AI 视频工具与剪辑后期使用的工业级分镜台本。

核心目标：**降低 AI 视频生成的不确定性**（角色崩坏、布景漂移、嘴型不同步、字幕乱码、版权拦截），让分镜稿"开箱即用"。

---

## 触发词

| 触发词 | 行为 |
|-------|------|
| `生成 AI 短剧脚本` / `写个短剧` | 启动完整流程：头脑风暴 → 画风人设 → 生图提示词 → 分镜 |
| `打磨剧本` | 与用户多轮迭代剧本（节奏、反转、人设、梗） |
| `做短剧分镜` | 已有剧本，直接进入分镜拆解 |
| `短剧角色画像` | 生成可投喂 GPT Image / Nano Banana 的人物生图提示词 |
| `确定配音语言` | 根据剧情文化背景确定主配音语言与字幕语言 |
| `翻译台词` | 在主语言与字幕语言之间互译 + 标注情绪 Tone |

---

## 存储规范

短剧产物独立于 `content/`，存放在 `dramas/[slug]/`：

```
dramas/[slug]/
├── brief.md              # 创意 brief（题材、基调、目标平台、关键事实）
├── script.md             # 文字剧本（多轮打磨的最终版）
├── art-direction.md      # 整体画风建议 + 配色 + 参考锚点
├── characters.md         # 角色人设卡 + 生图提示词（GPT Image / Nano Banana）
├── storyboard.md         # 分镜台本（最终交付物）
├── background.md         # 背景一致性方案（坐标锁定 / Seed / 绿幕底图）
├── prompts/              # 各分镜的 AI 视频提示词（按镜号）
│   ├── shot-01.txt
│   └── ...
├── assets/               # 用户生成回传的角色基准图 / 背景底图
├── footage/              # AI 生成回传的单镜视频素材（shot-NN.mp4）
└── final/                # 剪映整合后的最终成片
```

**slug** = 短剧主题英文短横线命名。

---

## 工作流（六步法）

> 📌 **各步骤推荐模型 / 工具速查**
>
> | 步骤 | 推荐模型 / 工具 | 用途 |
> |------|---------------|------|
> | Step 1 头脑风暴 + 剧本打磨 | **Gemini 3.1 Pro** | 长上下文 + 强创意推理，多轮共创 |
> | Step 2 画风 + 人设建议 | Gemini 3.1 Pro / Claude | 美学判断 + 角色设计推理 |
> | Step 3 人物生图 | **GPT Image** / **Nano Banana**（Gemini 2.5 Flash Image） | 角色基准图生成 |
> | Step 4 分镜脚本 | Claude / GPT-5 | 结构化输出、严谨字段 |
> | Step 5 视频生成 | Seedance / Runway / Kling | Image-to-Video 垫图 |
> | Step 6 后期整合 | **剪映 / CapCut** | 拼接、字幕、音效、调色、成片 |

### Step 1：剧情头脑风暴与剧本打磨（与用户共创）

> 🤖 **推荐模型**：这一步的剧情发散、人物冲突设计、节奏打磨推荐使用 **Gemini 3.1 Pro**（长上下文 + 强创意推理 + 丰富的世界知识 + 强语言能力，多轮共创）。若当前对话不在 Gemini 3.1 Pro 上，建议提示用户切换模型后再进入此步。

**这一步必须是对话式的，不要一次性出完整剧本。**

**第一轮：发散收集**
向用户主动提问，收集以下要素（每次问 2-4 个，避免一次轰炸）：

- **题材方向**：喜剧 / 悬疑 / 治愈 / 反转 / 黑色幽默 / 致敬向 / 科幻短篇 ……
- **核心冲突**：故事的"钩子"是什么？一句话能不能说清？
- **人物设定**：几个角色？关系是什么？谁是主视角？
- **场景设定**：发生在哪？室内 / 室外？时代背景？
- **基调**：纯搞笑 / 笑中带泪 / 反转惊喜 / 高密度梗
- **目标平台与时长**：短视频（30-60s）/ 中视频（2-3min）/ 系列短剧
- **关键事实锚点**：剧情依赖的硬事实（时事 / 行业梗 / 文化引用）
- **文化背景 / 语言基调**：决定主配音语言与字幕语言（详见 Step 5 的语言决策矩阵）

**第二轮：方向收敛**
给出 2-3 个**剧情走向方案**让用户选，或在用户已有想法上提出几个"分叉口"。

**第三轮：节奏打磨**
确定方向后，按下面的结构推进剧本：

```
钩子 (0-5s)：抓住注意力的冲突 / 反差 / 悬念
铺垫 (5-30%)：人物登场 + 设定建立
冲突升级 (30-70%)：矛盾激化 / 误会加深
反转 / 高潮 (70-90%)：核心情绪释放点
余味 (90-100%)：留白 / 彩蛋 / 破功
```

**打磨原则**：
1. 每个主角至少绑定 **2-3 个高辨识度的梗**（视觉梗 + 语言梗）
2. 走心段落紧跟喜剧反差，避免说教
3. 台词尽量短，给 AI 配音和口型留余地
4. 每一场戏要能回答："**这场戏为什么必须存在？**"

→ 输出 `brief.md` 与 `script.md`。

---

### Step 2：整体画风建议 + 人物塑造建议

剧本定稿后，**基于剧情基调**给出风格方案（不要先入为主，先读剧本再推荐）。

**画风建议要包含**：

| 维度 | 说明 |
|------|------|
| **风格大类** | 3D 卡通 / 2D 厚涂 / 赛博朋克 / 吉卜力水彩 / 黏土定格 / 像素艺术 / 写实电影感 …… |
| **参考锚点** | 2-3 个公开作品风格类比（Pixar / Spider-Verse / Arcane / Studio Ghibli / Love Death + Robots ……） |
| **配色基调** | 主色 + 辅色 + 强调色（暖色温情 / 冷色悬疑 / 高饱和喜剧 / 低饱和忧郁） |
| **光影氛围** | 黄金时刻 / 霓虹夜景 / 顶光戏剧化 / 柔光日常 |
| **画幅与构图** | 9:16 竖屏 / 16:9 横屏 / 2.39:1 宽银幕；构图密度建议 |
| **细节密度** | 极简留白 / 中等细节 / 超精细纹理 |

→ 输出 `art-direction.md`。

**🎨 强制产出：全局画风底词（Style Anchor Prompt）**

`art-direction.md` 末尾必须固化一段 **30-60 词的英文画风底词**，作为后续所有生图 / 生视频 prompt 的**强制前缀**。这是防止跨镜风格漂移的"锚"。

**底词结构**：
```
[Style Tag], [Medium / Rendering], [Color Palette], [Lighting Mood], [Detail Density], [Aspect Ratio]
```

**示例**：
```
Pixar-style 3D animation, soft cinematic rendering,
warm amber and teal palette, golden-hour lighting,
medium detail with painterly textures,
9:16 vertical composition, consistent stylized look.
```

**使用约定**：
- 一旦写定，**全剧不可改**（改了就会跨镜漂移）
- Step 3 每个角色的生图提示词以此为首行
- Step 4 每条 `shot-NN.txt` 也必须以此为首行（详见 Step 4）
- 用户若中途想换风格 → 必须**整剧重生**，不允许局部替换

**人物塑造建议要包含**（每个角色一段）：

- **核心人设关键词**（3-5 个标签）
- **外形辨识度设计**：体型 / 五官夸张化方向 / 标志性特征
- **服装与道具**：日常穿搭 + 至少一个标志道具（贯穿全剧）
- **配色暗示**：用颜色强化身份（主角暖色 / 反派冷色等）
- **微表情默认态**：常态情绪（自信 / 蔫坏 / 阳光 / 高冷）
- **梗资产**：视觉梗 + 语言梗 + 人设反差梗

> ⚠️ **规避版权三原则**：
> 1. 不写真实姓名 / 品牌 / 作品名（用"特征 + 配色"暗示）
> 2. 放大单一辨识度特征（让形象"动画化但可辨认"）
> 3. 所有画面内文字（书名、UI、字幕）一律**后期合成**，不让 AI 画字

---

### Step 3：人物生图提示词（投喂 GPT Image / Nano Banana）

基于 Step 2 的人设建议，为**每个角色**生成一份**可直接复制粘贴的生图提示词**，并明确告诉用户去哪里使用：

> 💡 **使用方式**：把下面每个角色的提示词复制到 **GPT Image（ChatGPT 内置图像生成）** 或 **Nano Banana（Google Gemini 2.5 Flash Image）** 上生成 4-6 张候选基准图，挑一张满意的保存到 `dramas/[slug]/assets/character-[代号].png`，后续所有视频镜头都用 **Image-to-Video** 模式垫这张图。

**生图提示词结构**（每个角色一份）：

```
[全局画风底词，与 art-direction.md 一致],
a [体型] [年龄] [性别] character with [核心辨识特征],
[五官夸张化描述],
wearing [服装 + 配色],
holding / accompanied by [标志道具],
[默认表情], [姿势], [构图：full body portrait / half body / close-up],
neutral background, studio lighting, character sheet style,
high detail, 8k, consistent character design.
```

**生图提示词检查清单**：
- [ ] 全局画风底词与其他角色一致（保证全剧风格统一）
- [ ] 五官特征唯一化（"a thick mustache" 比 "handsome face" 有用 100 倍）
- [ ] 服装颜色明确（用色卡词，不用模糊词）
- [ ] 不出现真人姓名、品牌名、版权 IP
- [ ] 标注 `character sheet style` / `neutral background` 便于后续抠图
- [ ] 同一角色生成多视角时复用同一提示词，只改 `pose` 与 `angle`

→ 输出 `characters.md`（含每个角色的生图提示词块 + 使用说明）。

**告知用户的下一步操作**：
1. 把每个角色的提示词复制到 GPT Image / Nano Banana
2. 每个角色生成 4-6 张候选
3. 挑选并保存为 `assets/character-[代号].png`
4. 回到对话告知"角色图已准备好"，进入 Step 4

---

### Step 4：分镜脚本生成

> ⚠️ **单镜头物理限制与拆镜红线**
> 目前主流 AI 视频生成工具（Kling, Runway Gen-3, Sora 等）的最大物理生成时长上限为 15 秒，但超过 8~10 秒后人物一致性与画面的稳定性会有较大崩溃风险。
> **强制规则**：
> - 单个 Shot 时长**物理绝对不可超过 15 秒**（强烈推荐保持在 4~8 秒的最佳稳定区间）。
> - 当遇到人物长篇台词或复杂动作时，必须通过以下手法进行“拆镜（Split Shots）”：
>   - **正反打 (Shot Reverse Shot)**：镜头切向对话另一方的反应。
>   - **特写切入 (Cut-in)**：如“震惊时近景推成脸部大特写”、“拍桌子时手部震动特写”。
>   - **动作匹配 (Match on Action)**：换角度接续同一连续动作。
>   - **J-Cut / L-Cut（声音引导）**：声音先于画面切入下一镜。
> - 在计算每个镜头的总时长 (`🕘 总时长`) 时，必须根据台词语速或动作物理耗时逆推，超出 15s **必须**强制打碎成 a/b 两个 shot（超过 10s 也**强烈建议**打碎）。


基于 Step 1 的剧本 + Step 2 的画风 + Step 3 的人设，输出工业级分镜。

**分镜节奏**：
- 单镜基础时长 **4-8 秒**（AI 视频甜区）
- 优先**多人同框（2-Shot / 3-Shot）**，少切碎镜
- 关键情绪点用单人特写（推镜头 + 静音留白）

**⚠️ 时长必须由台词时长反推（关键原则）**：

分镜时长不是"先定 5 秒再塞台词"，而是**"先算台词需要几秒，再加缓冲定分镜时长"**。否则 AI 配音会把台词压成机关枪语速，毁掉表演节奏。

**台词时长估算公式**（基于自然口语语速）：

> ⚠️ **语速不是常量，必须由"剧情场景 + 人物特点 + 当下语气"三要素决定**。同一个角色在追问时可能 6 字/秒，在告白时可能 2 字/秒。下表是基准档位，每句台词都要**先判档再估算**。

**语速三要素决策**：

| 维度 | 偏快（连珠炮档） | 常态 | 偏慢（情绪化档） |
|------|----------------|------|----------------|
| **剧情场景** | 吵架 / 吐槽 / 解释 / 追问 / 喜剧爆梗 / 紧急情况 | 日常对白 / 信息陈述 | 告白 / 悼念 / 威胁 / 思考 / 顿悟 / 临终 |
| **人物特点** | 急性子 / 话痨 / 推销员 / 程序员吐槽 / 北方话密 | 正常人设 | 老人 / 高冷 / 大佬 / 文艺青年 / 喝醉 |
| **当下语气** | 兴奋 / 慌张 / 不耐烦 / 阴阳怪气 | 平静叙述 | 沉重 / 哽咽 / 故作神秘 / 居高临下 |

**判档规则**：三要素若有 ≥2 个偏快 → 喜剧档；≥2 个偏慢 → 情绪化档；其余 → 常态。

| 语言 | 自然语速 | 估算方法 |
|------|---------|---------|
| 中文（常态） | 4-5 字/秒 | 字数 ÷ 4.5，再 +0.3s 起停缓冲 |
| 中文（情绪化 / 慢） | 2-3 字/秒 | 字数 ÷ 2.5（适用煽情、思考、威胁） |
| 中文（喜剧 / 快） | 5-6 字/秒 | 字数 ÷ 5.5（适用吐槽、连珠炮） |
| 英文（常态） | 2.5-3 词/秒 | 词数 ÷ 2.8，再 +0.3s 起停缓冲 |
| 英文（情绪化 / 慢） | 1.5-2 词/秒 | 词数 ÷ 1.8 |
| 英文（喜剧 / 快） | 3.5-4 词/秒 | 词数 ÷ 3.8 |

> 🎙️ **Tone 字段必须显式标注语速档**（如 `语速：慢 / 哽咽`、`语速：快 / 不耐烦`），TTS 配音或真人录音才能据此执行；不要假设配音演员能"猜到"节奏。

**分镜总时长 = Σ(每句台词时长) + 句间停顿 + 表演留白 + 进/出场缓冲**

- 句间停顿：常态 0.3-0.5s，反应停顿 0.8-1.5s
- 表演留白：标志性表情、视线转移、动作铺垫各预留 0.5-1s
- 进出场缓冲：分镜首尾各 0.3s（也用于后期裁掉畸变帧）

**示例**：
> 台词："你以为我没看见？"（8 字，常态语速）→ 8 ÷ 4.5 ≈ 1.8s
> 接一个反应停顿（瞪对方）1.0s + 句间停顿 0.4s + 首尾缓冲 0.6s ≈ **3.8s**
> 若想让"看见"二字加重处理（慢语速）→ 估算应 +0.5s，分镜定 **4.5-5s**

**避坑要点**：
- **严禁过度抽象/总结剧情**：分镜台本必须**100% 像素级对齐原剧本的台词、动作说明与情绪细节**。不要在转化分镜时为了追求结构化和简短，而丢掉原剧本中嘲讽、压迫等关键文本颗粒度。
- 单镜台词超过 12 字（中）/ 8 词（英）应考虑**拆分到两个镜头**或加镜内停顿
- 多人对话镜：每个角色台词时长**分别估算后相加**，再加 0.5-1s 接话间隙
- 情绪转折点（停顿、叹气、苦笑）必须显式标注秒数，不要默认 AI 会留白
- 若分镜时长被迫超过 8s（AI 生成质量下降区），优先拆镜而非压缩台词
- 字段 ⏱️ 时序必须**显式写明每句台词起止秒数**，例如 `00:00.3-00:02.1 角色 A: "..."`

**无台词分镜（空镜 / 默剧 / 反应镜）的时长设计**：

不是所有分镜都有台词。**无台词镜的时长由"画面要传达的信息密度 + 情绪节拍"决定**，不要默认 4-8s。

| 镜头类型 | 推荐时长 | 设计要点 |
|---------|---------|---------|
| **建立镜（Establishing Shot）** | 3-5s | 让观众看清环境、时间、空间关系；广角缓推 |
| **空镜 / 转场镜** | 1.5-3s | 一物一意，过长会拖；用于章节切换或情绪过渡 |
| **反应镜（Reaction Shot）** | 1.5-3s | 单一表情变化（瞪眼 / 嘴角抽搐 / 苦笑）；过长会僵 |
| **情绪特写 / 默剧高潮** | 4-8s | 微表情递进（震惊→泪盈→破涕为笑）；配 BGM 撑住 |
| **动作镜（无对白打斗 / 追逐）** | 4-6s | 一个完整动作单元（一次出招 / 一次回头） |
| **氛围长镜 / 蒙太奇单格** | 2-4s | 节奏感优先，与 BGM 鼓点同步 |
| **结尾留白镜** | 3-6s | 给观众回味；过短显得仓促，过长显得拖沓 |

**无台词镜的时长估算公式**：

```
时长 = 主体动作时长 + 镜头运动时长 + 情绪留白 + 首尾缓冲
```

- **主体动作时长**：实际动作需要多久（开门 1s、转身 0.8s、拿起杯子 1.5s）
- **镜头运动时长**：推/拉/摇/移镜本身的时长（缓推 2-3s、急推 0.5s、横摇 2s）
- **情绪留白**：动作完成后保留几秒让观众消化（关键情绪 1-2s、普通过渡 0.3-0.5s）
- **首尾缓冲**：仍各预留 0.3s 用于裁畸变帧

**示例**：
> 一个无台词反应镜——角色看到信息后表情从平静到崩溃：
> 微表情递进 2.5s + 缓推近景 1s + 崩溃后定格 1s + 首尾缓冲 0.6s ≈ **5s**

**无台词镜避坑**：
- 不要为了"凑够 5 秒"硬塞内容，**短而精**比长而空更有力
- 节奏型蒙太奇（多个 2-3s 短镜连切）要在 storyboard 标注**与 BGM 鼓点对齐**
- 默剧表演镜务必配 BGM / 环境音，**纯静音 > 3s 会让观众以为视频卡了**
- ⏱️ 字段写作 `00:00-00:03 (无台词) 动作描述 + 镜头运动` 形式

**每个分镜必须包含的 8 个字段**（格式参考下方示例）：
1. 🕘 **总时长**
2. 📍 **布景**（引用 background.md 的某个坐标方案）
3. 👔 **服装**（每个出场角色，每镜复述一次防 AI 遗忘）
4. 🎬 **动作与表情**（微表情 + 肢体语言。**必须 100% 还原剧本中的细节描写，严禁概括缩写**）
5. ⏱️ **说话顺序与时序**（精确到秒，标注谁先说、谁静音）
6. 🎙️ **台词，声调与字幕**（**必须一字不落地搬运原剧本所有台词文本**；含语气指导 Tone；语言选择见 Step 5）
7. 🎥 **运镜**（机位、景别、推拉摇移）
8. 🔄 **转场**（向下一镜的衔接方式）

> 💡 **分镜输出格式示例（单镜）**：
> ```markdown
> ### Shot 01 (00:00 - 00:05)
> **🕘 总时长**: 5s
> **📍 布景**: 赛博朋克面馆，霓虹灯牌闪烁 (坐标方案 A)
> **👔 服装**: 主角A (黑色夹克)，配角B (红色围裙)
> **🎬 动作与表情**: A 猛地拍桌子，面汤溅出；B 吓得战术后仰。
> **⏱️ 时序**: `00:00.0-00:01.5` B 放下面碗 (无台词)；`00:01.5-00:04.5` A 说话；`00:04.5-00:05.0` A 怒视定格。
> **🎙️ 台词**: 
>   - 主角A: "老板，这面里怎么有螺丝？" (语速: 偏快 / 愤怒质问)
>   - [字幕]: Boss, why is there a screw in my noodles?
> **🎥 运镜**: 中景 (Medium Shot)，机位随 A 拍桌子动作轻微震颤。
> **🔄 转场**: 硬切 (Smash Cut)
> ```
> 
> ⚠️ **强烈警告：不可删减原案！** 以上示例仅为版式演示。实际生成分镜时，`🎬 动作与表情`与`🎙️ 台词`字段中，**绝对不允许为了保持版面清爽或“结构化”而私自压缩、概括原 script.md 中大段的长对白、脏话梗和极致的情绪描写！** 原剧本怎么写，这部分必须一字不落地吃进分镜里。

**生成视频提示词 (Video Prompts)**：
输出完 storyboard 之后，必须为每个镜头对应生成一条可直接喂给 Kling / Runway / Seedance 的**英文视频提示词**并存入 `prompts/shot-NN.txt`。

**强制构成公式**（顺序不可调整）：
```
[STYLE ANCHOR 全局画风底词，逐字复述自 art-direction.md],
[Setting 布景，复述自 background.md 坐标方案],
[Character Base Prompt，复述自 Step 3 角色卡的关键辨识特征 + 服装],
[Action & Expression 单一动作描述],
[Camera Movement 运镜],
[Lighting & Color Reinforcement 再次强调主色调 + 光影]
```

**为什么每镜都要复述画风底词与角色特征**：
- AI 视频工具每次生成是**独立 session**，没有跨镜记忆
- 即使用 Image-to-Video 垫图，**运动过程中的色调、光影、笔触仍会偏移**
- 复述是**唯一的锚定手段**，宁可冗余也不要省略

**注意事项**：
- 不要把台词写进视频提示词里，AI 视频工具听不懂台词
- 不要写"like the previous shot"这种相对引用，AI 看不到上一镜
- 每条 prompt 控制在 80-120 词以内，过长会被截断或权重稀释
- 若使用 Midjourney/SD 工作流，在底词后追加 `--seed [固定seed] --style raw` 进一步锁定

**转场设计原则（双向考量）**：

🔄 字段不是当前镜头的"收尾装饰"，而是**当前镜结尾 ↔ 下一镜开头**的衔接器。设计转场时必须**同时读两个镜头**，问三个问题：

1. **节奏对比**：当前镜是慢节奏还是快节奏？下一镜呢？
   - 慢 → 快：Smash Cut / Whip Pan（制造冲击）
   - 快 → 慢：Cross Dissolve / Fade（情绪沉淀）
   - 同节奏：硬切（保持惯性）
2. **空间/时间跳跃幅度**：
   - 同一场景同一时刻 → 硬切 / 视线匹配 (Eyeline Match)
   - 同场景但有时间流逝 → 叠化 / 闪白
   - 跨场景跨时空 → J-Cut（用下一镜音效预入）/ Match Cut（形状/动作匹配）
3. **下一镜的开头是什么**（最容易被遗漏）：
   - 下一镜开头是**动作高潮**（如砸门、爆炸）→ 当前镜尾用 Crash Zoom 或骤停留白蓄势
   - 下一镜开头是**特写情绪**（如流泪、震惊）→ 当前镜尾留 0.5s 静默 + Eyeline Match
   - 下一镜开头是**环境建立镜** → 当前镜尾可用 Fade / Dissolve 给观众喘息
   - 下一镜开头有**关键音效**（手机响、玻璃碎）→ 必须用 J-Cut 提前 0.3-0.5s 引入

**强制规则**：每个 🔄 转场字段写法必须包含**衔接逻辑说明**，而非只写转场名词。
- ❌ 不够：`Smash Cut`
- ✅ 标准：`Smash Cut → 下一镜开场是反派冷笑特写，本镜尾在主角说完"不可能"的瞬间硬切，制造情绪反差`

**背景一致性方案**（三选一，写入 `background.md`）：

| 方案 | 适用场景 | 操作 |
|------|---------|------|
| A. 坐标锁定提示词 | 镜头数少（< 6） | 每条 prompt 固定光照方向、关键道具位置、构图坐标 |
| B. Seed 固定 | Midjourney / SD 工作流 | 第一张选定后获取 seed，后续全部复用 `--seed xxx` |
| C. 绿幕合成（工业级） | 镜头数多 / 严格一致 | 角色加 `green screen background`，统一底图后期合成 |

→ 输出 `storyboard.md`，详见 `references/storyboard-template.md`。

---

### Step 5：双语台词 + 转场运镜 + 产物归档

#### 配音语言决策（按剧情文化背景）

**主配音语言 = 故事中角色实际使用的语言**。不要默认英文配音，配音语言要跟着剧情走。

| 剧情文化背景 | 主配音语言 | 字幕语言 | 说明 |
|------------|----------|---------|------|
| 欧美 / 国际化场景（硅谷、好莱坞、欧洲都市……） | 英文 | 中文 | 角色说英文，中文字幕辅助 |
| 中国本土 / 中华文化场景（武侠、都市、家庭、国风奇幻……） | 中文 | 英文（可选） | 角色说中文，英文字幕用于海外分发 |
| 日韩文化场景 | 日文 / 韩文 | 中文 + 英文 | 强文化背景下优先原语言 |
| 跨文化对话场景 | 按角色身份分配 | 双语字幕 | 不同角色说不同语言，字幕同时呈现 |
| 架空 / 奇幻世界 | 中文（默认母语优先） | 英文（可选） | 无现实文化锚点时默认中文 |

**特殊提醒：AI 视频口型同步现状**
- 英文配音的口型同步质量最佳
- 中文配音口型同步仍较弱，**可用规避手段**：
  - 多用侧脸 / 背身 / 远景镜头（避开正面特写）
  - 让角色边说话边做大幅动作（注意力转移）
  - 关键中文台词用画外音 (V.O.) / 旁白 (Narration) 形式
  - 正面特写时配静音表情 + 字幕代替对白

#### 翻译与字幕原则

1. 译为**地道口语**（避免书面翻译腔与机翻味）
2. 保留双关与文化梗，必要时**本地化改写**而非直译
3. 每句标注 🎙️ **Tone**（语速 / 音调 / 情绪关键词）
4. 字幕语言单独成行，作为后期叠加素材（不交给 AI 生成）
5. 中译英时避免过度直白；英译中时避免翻译腔（"哦，我的老伙计"绝对禁止）

**常用转场术语对照**：

| 术语 | 中文 | 适用场景 |
|------|------|---------|
| J-Cut | 声音前置引导 | 用下一镜的音效提前 0.5s 切入做引导 |
| Smash Cut | 情绪反差硬切 | 喜剧反差（感动 → 破功） |
| Crash Zoom | 极速推镜头 | 进入设备屏幕 / 引爆情绪 |
| Cross Dissolve | 叠化过渡 | 走心段落 / 时空共鸣 |
| Eyeline Match | 视线匹配 | 两个空间的角色"对视" |
| Motion Match | 动势匹配 | 物体飞过 / 动作延续 |
| Whip Pan | 甩镜过渡 | 高能段落 / 快节奏切换 |
| Fade to Black | 黑场淡出 | 结尾收束 |

**反派音效清单**（打破煽情用）：
- 通知提示音 / 信息送达音
- 玻璃杯倒地 / 物体掉落
- 突兀的电子音效
- 环境音瞬间消失（绝对静音）

**归档检查清单**：
- [ ] `brief.md` / `script.md` / `art-direction.md` / `characters.md` / `storyboard.md` / `background.md` 齐全
- [ ] 每个镜头有对应的 `prompts/shot-NN.txt`
- [ ] 角色基准图存入 `assets/`
- [ ] 镜头清单总时长符合目标平台要求

---

### Step 5.5：分镜回看与迭代（视频回传后必经）

用户用 AI 视频工具生成完素材后，**会有一部分镜头不可用**（这是常态，不是异常）。Agent 必须主动进入"诊断 → 改 prompt / 改基准图 / 改分镜"的循环，而不是默认"一次过"。

**生成实践建议**：
- 每个镜头默认生成 **3-4 个 take**（candidates），命名 `shot-NN-take1.mp4` … 挑最佳的命名为 `shot-NN.mp4`，其余移入 `footage/discarded/`
- 关键情绪镜（高潮、特写）建议生成 **5-6 个 take**

**问题归因决策树**（用户反馈某镜不可用时按此排查）：

| 问题表现 | 根因层 | 修复动作 |
|---------|-------|---------|
| 角色五官 / 体型崩坏 | **基准图层** | 回 Step 3 重生基准图，换 seed 或加强辨识特征 |
| 角色服装 / 配色与设定不符 | **Prompt 层** | 改 `shot-NN.txt`，把服装颜色写得更具体 |
| 动作不到位（如"拍桌子"变"摸桌子"） | **Prompt 层** | 改用更具体的动作动词 + 强度副词（`slams violently` 而非 `hits`） |
| 嘴型与中文配音不同步 | **分镜层** | 回 Step 4 改运镜（侧脸 / 远景 / 改画外音）+ 后期字幕补救 |
| 画风与其他镜头明显漂移 | **画风层** | 检查 Style Anchor 是否被遗漏，逐字补回 `shot-NN.txt` 首行 |
| 时长不够 / 配音过快 | **分镜层** | 回 Step 4 重新按语速档估算时长，必要时拆镜 |
| 多次重生仍崩 | **分镜设计层** | 此动作 AI 当前能力不支持，**改写分镜**（拆动作 / 换景别 / 改运镜） |

**迭代原则**：
- **从最便宜的修复试起**：改 prompt（秒级） → 重生基准图（分钟级） → 改分镜（重新生成）
- **同一镜不要无限重生**：3 次失败仍不可用 → 必然是分镜设计问题，立刻回 Step 4 改设计
- **记录失败 take**：在 `storyboard.md` 对应镜号下补一行 `❌ 已知问题：xxx 不要再尝试 xxx 方案`，避免下次重蹈覆辙

---

### Step 6：分镜优化整合（剪映 / CapCut 后期）

AI 生成的单镜素材必须经过后期整合才能成片。**剪映**（国内版）/ **CapCut**（国际版）是目前最适配 AI 短剧后期的工具：移动端 / 桌面端双平台、AI 字幕识别准、模板与音效库丰富、导出无水印。

#### 文件准备

下载/收集每个镜头的视频后，按镜号命名归档：

```
dramas/[slug]/footage/
├── shot-01.mp4         # 与 storyboard.md 镜号一一对应
├── shot-02.mp4
├── shot-02-alt.mp4     # 候选 / 备选版本
└── ...
```

#### 剪映工程模板（推荐轨道结构）

建立标准化的多轨道结构，便于团队协作与后续返修：

| 轨道 | 内容 | 说明 |
|------|------|------|
| V1 主画面 | shot-01 → shot-NN 顺序拼接 | 主视频轨 |
| V2 转场 / 叠加 | 闪白、黑场、贴图、画中画 | 叠加层 |
| V3 文字 / UI 合成 | 画面内书名、聊天 UI、弹幕等（避免 AI 画字乱码） | 后期叠加 |
| V4 字幕 | 主语言 + 翻译字幕（双轨可拆分） | 见下文字幕策略 |
| A1 主配音 / 对白 | 角色台词 | TTS 或真人录音 |
| A2 环境音 | 风声、人群、室内底噪 | 营造空间感 |
| A3 音效 SFX | 反派音效、转场音效 | 见 Step 5 音效清单 |
| A4 BGM | 背景音乐 | 控制在 -18 到 -24 dB |

#### 关键后期操作清单

**1. 拼接与节奏修剪**
- 按 `storyboard.md` 镜号顺序导入到 V1
- 每个镜头**首尾各裁掉 0.2-0.3 秒**（AI 视频起手/收尾常有畸变帧）
- 用 `J / K / L` 快捷键预览节奏，必要时**变速 1.05-1.15x** 提升喜剧节奏感（剪映：右键 → 变速 → 常规变速）

**2. 转场处理**
- **优先硬切**（Smash Cut）：90% 的镜头切换不需要转场特效
- 仅在 `storyboard.md` 明确标注的位置使用：J-Cut / Cross Dissolve / Whip Pan / Crash Zoom
- 剪映自带转场库的 `叠化`、`闪黑`、`运镜`、`MG 转场` 基本够用；甩镜过渡用 "运镜 → 水平甩动"

**3. 字幕处理（核心环节）**
- **AI 字幕识别**：剪映 → 文本 → 智能字幕 → 识别字幕（先识别再校对，比手打快 10x）
- **双语字幕做法**：
  - 单语：主语言字幕一行
  - 双语：主语言上行（字号较大）+ 翻译字幕下行（字号较小、透明度 80%）
  - 跨文化对话：不同角色用不同颜色字幕区分
- **字幕样式建议**：
  - 字体：思源黑体 / 苹方（中）/ Inter / Montserrat（英）
  - 颜色：白色 + 黑色描边 2-3px，确保任意背景可读
  - 位置：底部居中，安全区距底边 8-12%
- **画面内文字合成**：所有"AI 故意不画的文字"（书名、聊天界面、弹幕、UI）在 V3 轨用文本框 + 贴图合成

**4. 配音整合**
- TTS 推荐：剪映自带的"文本朗读"（中英多音色）/ ElevenLabs（英文最佳）/ Fish Audio（中文情感强）
- **重要**：配音长度必须**匹配分镜标注的 ⏱️ 时序**，超长就压缩语速，超短就加停顿
- 中文配音口型规避见 Step 5：侧脸 / 远景 / 画外音 / 静音特写 + 字幕

**5. 音效与 BGM**
- 反派音效（Step 5 清单）从剪映音效库搜：`通知`、`碎裂`、`电子音`、`静默`
- BGM 选择遵循基调：喜剧用轻快电子 / 走心用钢琴弦乐 / 悬疑用低频铺底
- BGM 在对白时**自动闪避**（剪映：选中 BGM → 音频 → 自动闪避，让对白清晰）

**6. 调色统一（解决跨镜画风漂移）**
- 全片套用统一**滤镜 + LUT**，让不同 AI 生成镜头风格收敛
- 剪映 → 调节 → 全局复用：色温 / 饱和度 / 对比度 / 高光阴影
- 推荐：喜剧 +5 饱和度 / 走心 -5 饱和度 + 暖色温

**7. 封面与片头片尾**
- 封面：用 Step 3 生成的角色基准图 + 大字标题
- 片头：3-5 秒 logo 闪现或剧名出场
- 片尾：可放彩蛋 / NG / 下集预告 / 关注引导

#### 导出参数

| 平台 | 分辨率 | 帧率 | 码率 | 格式 |
|------|--------|------|------|------|
| 抖音 / 视频号 / 小红书（竖屏） | 1080×1920 | 30fps | 8-12 Mbps | MP4 / H.264 |
| B 站 / YouTube（横屏） | 1920×1080 或 3840×2160 | 30 / 60fps | 16-24 Mbps | MP4 / H.264 |
| 朋友圈 | 1080×1920，**< 30s 且 < 100MB** | 30fps | 6-8 Mbps | MP4 |

剪映导出：右上角"导出" → 自定义参数 → 关闭水印（需登录）。

#### 后期整合检查清单

- [ ] 所有镜头按 storyboard.md 顺序拼接，无错漏
- [ ] 每镜首尾畸变帧已裁除
- [ ] 字幕全文校对（AI 识别有 5-10% 错误率）
- [ ] 画面内所有文字均为后期合成，无 AI 乱码
- [ ] 配音口型已规避正面特写问题
- [ ] BGM 在对白时自动闪避生效
- [ ] 全片调色统一，无明显风格漂移
- [ ] 总时长符合目标平台要求
- [ ] 按目标平台参数导出最终成片
- [ ] 成片归档到 `dramas/[slug]/final/[slug]-v1.mp4`

---

## 关键避坑清单

| 坑 | 规避方法 |
|---|---------|
| AI 生成画面内文字乱码 | **所有画面内文字（书名、UI、字幕）全部后期合成**，提示词里只写 `thick book`、`a screen` |
| 角色服装跨镜头变化 | 每个镜头的 prompt **完整复述服装描述**，不依赖"上文记忆" |
| 跨镜画风漂移（色调/光影/笔触偏移） | Step 2 固化 **Style Anchor 全局画风底词**，每条 `shot-NN.txt` 首行**逐字复述**，不依赖 AI 跨 session 记忆 |
| 多人镜头说话顺序混乱 | 用 ⏱️ 字段精确标注秒数、谁先说、谁此刻必须静音 |
| 分镜时长不够导致 AI 配音语速过快 | 时长由台词反推（中文 4.5 字/秒、英文 2.8 词/秒）+ 停顿 + 表演留白；超长拆镜而非压速 |
| 真人姓名 / IP 触发版权拦截 | 用"特征 + 配色"暗示身份，不写真名 |
| 嘴型对不上中文配音 | 优先英文配音；若剧情必须中文，用侧脸 / 远景 / 画外音规避正面口型特写 |
| 默认配音语言不匹配剧情文化 | Step 5 决策矩阵：欧美剧情用英文、中华剧情用中文，字幕反向搭配 |
| 分镜脚本对原剧本过度总结与抽象 | **严守 100% 还原原则**：拆解分镜时，必须将原剧本的核心台词、夸张动作、微表情一字不落地搬入分镜的字段中，禁止 AI 为追求表格短小而自行“概括缩写”。 |
| 镜头之间割裂 | Step 4 的转场设计必须配合剧情节奏 |
| 转场只考虑当前镜结尾、忽略下一镜开头 | 🔄 字段必须写明"衔接逻辑"，先读下一镜开头再选转场类型（动作高潮→Crash Zoom 蓄势 / 关键音效→J-Cut 预入 / 情绪特写→静默 + 视线匹配） |
| 走心段落过于说教 | 紧跟一个喜剧反差（致敬 → 突兀音效 → 角色破功） |
| 角色跨镜头崩坏 | 全部用 Image-to-Video 垫图模式，垫 Step 3 生成的基准图 |
| 一次性给完整剧本被用户推翻 | Step 1 必须**分轮对话**，每轮只问 2-4 个问题，让用户参与决策 |

---

## 一句话原则

> **"AI 只负责动起来，确定性由提示词、垫图和后期承担。"**

把所有不确定的东西（字幕、画面内文字、复杂手势、跨镜头一致性）从 AI 生成环节剥离，
让 AI 只做它最擅长的事——让一个动画化的形象做一个简单动作。

