---
name: 剧本→分镜自动化已完成
description: run_storyboard.py已通用化，pipeline.py统一入口，整条链路就绪
type: project
---

# 剧本→分镜自动化 — 已完成

**工具状态：**
- `tools/run_storyboard.py` ✅ 通用化（支持任意剧本路径、集号、Pro/Lite模型切换）
- `tools/storyboard_to_workflow.py` ✅ 分镜JSON→ComfyUI批量出图桥接（自动生成workflow+shell脚本）
- `tools/route_shots.py` ✅ BC-006逐镜路由分配（用豆包AI自动分配STILL_HOLD/AI_I2V等）
- `pipeline.py` ✅ 统一生产入口（`python pipeline.py go <剧本> -e 1` 全自动）

**成本：** 豆包API拆一集剧本出分镜 ≈ ¥0.01（之前已实测验证）
**之前已跑通过：**《深海迷航》EP01，Pro版26镜、Lite版24镜，效果良好

**Why:** 爸爸要求补短板+全面优化，让管线从剧本到成片全自动
**How to apply:** `python pipeline.py go <剧本> -e <集号>` 一条命令跑完整链路

## 分镜故事板提示词模板（爸爸共享社群资料吸收，2026-07-31）
> 让大模型把分镜剧本转成"带标注的素描线稿故事板"的标准指令，直接可复用：

请你提取以下分镜剧本中的信息，并根据剧本的信息，给我生成一张素描线稿的分镜故事板，每个分镜头的比例是9:16，并在故事板中通过箭头和文字来标注以下关键内容：
1.镜头运动(红色箭头标注）
2.景别变化（橙色箭头标注）
3.人物动作（黄色箭头标注）
4.人物站位（绿色箭头标注）
5.环境元素动态（蓝色箭头标注，元素内容例如：风向哪吹、雪往哪飘等）
按照剧本剧情的分镜，给每个分镜打好编号。

**用法**：把"以下是分镜剧本：XXX"换成实际剧本内容喂给大模型（豆包/千问/Z-Image 编码器均可）。
**对接管线**：可接 pipeline.py 的 storyboard 环节，生成标注故事板 → 分镜图 → LTX/Wan 出片。

## 分镜故事板 5 色标注法（实战范例，2026-07-31 爸爸共享）
> 来源：ce3c9bfe-0e8e-4bcb-91f3-3897581209e1.png（社群里爸爸保存的分镜图范例）

5 色标注法是**让分镜线稿信息密度爆炸**的关键：

| 颜色 | 含义 | 典型符号 |
|---|---|---|
| 🔴 红 | 镜头运动 | 箭头（推/拉/摇/移） |
| 🟠 橙 | 景别变化 | 中景/近景/特写/Extreme Close-Up |
| 🟡 黄 | 人物动作 | 抬手/手指轻压 |
| 🟢 绿 | 人物站位 | 男左女右、前后、居中 |
| 🔵 蓝 | 环境动态 | 风吹方向、雪飘方向、花瓣飘落 |

**实战范例（古风红线主题 6 镜头）**：
- 镜头 025：中近景（MC），女右手指轻触腕部红印，男手轻抬；缓推镜头；花瓣飘落
- 镜头 026：近景（CU），男主扶腰；轻推聚焦手部；红丝缠绕
- 镜头 027：极近景双人对视；缓移聚焦眼神；花瓣飘落
- 镜头 028：面部近景（FCU），女主轻推男主胸口；焦点从脸颊切到眼神
- 镜头 029：近景（CU），男主抬手轻托花瓣；红丝拉近；远处透光
- 镜头 030：中近景收尾（MC Ending），男主跟女主并肩缓推；花瓣落下；红丝发力

**用法**：写"分镜故事板提示词"时直接说"用红橙黄绿蓝 5 色标注"，豆包/千问都能稳定输出。

参考完整文件：`/home/ls/下载/ce3c9bfe-0e8e-4bcb-91f3-3897581209e1.png`


2026-07-31 晚 一键短剧 Agent 第一版完成（agent_short_drama.py，183行）：
- 位置：~/cang-ying/video-ai-system/agent_short_drama.py
- 阶段：①分镜(豆包¥0.01/集,走申请) ②路由(豆包) ③逐镜出图(本地Z-Image零成本) ④拼接(待接LTX I2V视频)
- 特性：--until/--from 断点续跑、--max-shots 限镜测试、失败即报错定位、自动提交ComfyUI并等待
- 已验证：--from render 造最小分镜出1镜 ✅（自动提交+等待+清单）
- 待做：video 阶段（LTX I2V 逐镜成片）、compose 阶段、面板"一键短剧"按钮
- 出图默认走 Z-Image（1024x1024 8步 res_multistep），未来接 IP-Adapter/StoryDiffusion 做角色一致性

2026-07-31 晚 一键短剧 Agent 全链路验证通过（282行）：
- render→video→compose 三段全通（本地零成本，测试1镜：出图→LTX 49帧视频→成片）
- 新增：stage_video（LTX I2V 逐镜成片，默认49帧768x512，自动找起始图→提交→收片）、stage_compose
- 断点：--until video/compose、--from video/compose；--frames 控制帧数
- ⚠️ 坑：video_composer 方案B 的 concat 滤镜假定每段有音频流，LTX 视频无声会挂→Agent 单段直接拷贝绕过；多段无声走方案A concat copy 正常
- 待做：面板"一键短剧"按钮、真实剧本试跑（豆包分镜费申请）、B Skill 系统
- 试跑示例：python agent_short_drama.py <剧本> -e 1 --until compose

2026-07-31 晚 面板"一键短剧"按钮完成（eed_web.py 补丁，备份 .bak5）：
- 前端 #btnDrama 按钮 + dramaModal（贴剧本/分镜JSON、类型选择、豆包授权勾选、帧数、进度pre、成片video）
- 后端 /api/agent 端点（SSE 流式 agent_log 进度 → agent_done 返回成片 /media/outputs/agent_EP.mp4）
- 已验证：/api/agent 贴分镜JSON → 自动出图→LTX 25帧视频→成片 ✅（curl -N SSE）
- ⚠️ 踩坑×2：① eed_web.py 缺 import urllib.request/sys（NameError 被 except 吞成 503/异常）② 诊断方法=except 加 print 日志定位
- 剧本类型需勾选豆包授权（EED-PROTO-005）才能跑分镜段
- 待重启面板生效：bash ~/cang-ying/scripts/restart-eed.sh
