216 lines
7.5 KiB
Plaintext
216 lines
7.5 KiB
Plaintext
# BC-006 · 图片优先低成本漫剧生产协议
|
||
|
||
> HLDP://cang-ying/broadcast/BC-006-IMAGE-FIRST-PRODUCTION
|
||
> 类型: 广播执行协议 · 管线切换依据
|
||
> 状态: ACTIVE · 待耳耳蛋/鉴影执行回执
|
||
> 签发: 冰朔 ICE-GL∞ · 2026-07-13
|
||
> 整理执行: 铸澜 ICE-GL-ZL-001
|
||
|
||
---
|
||
|
||
```text
|
||
HLDP://cang-ying/broadcast/bc-006/image-first
|
||
├── trigger
|
||
│ └── 纯视频成本高、人物漂移、重复抽卡;现有“静态图+动态运镜”方向没有接入执行入口
|
||
├── emergence
|
||
│ ├── 已有: Seedream资产、FFmpeg编辑器、zoompan关键帧、字幕/配音/混音模块
|
||
│ ├── 缺口: 没有逐镜动态分级,默认仍是全部生成视频
|
||
│ └── △: 图片负责一致性,本地动画负责大多数运动,视频模型只负责关键表演
|
||
├── lock
|
||
│ ├── ⊢ 默认不是图生视频API,默认是图片→本地动态视频
|
||
│ ├── ⊢ 先完成整集低成本动态分镜,再花钱生成关键镜头
|
||
│ ├── ⊢ 任何镜头必须先得到 motion_route、理由、预算、停止条件
|
||
│ ├── ⊢ 同一路线最多2次付费重跑;失败后退回资产/分镜修正
|
||
│ └── ⊢ 剧本、角色、场景、道具资产锁继续有效
|
||
└── why
|
||
└── 漫剧的目标是连续可看,不是证明每一秒都由视频模型生成。
|
||
```
|
||
|
||
## 一、先纠正一个概念
|
||
|
||
```text
|
||
错误理解:
|
||
图片 → 每张都送图生视频模型 → 仍按秒付费
|
||
|
||
正确路线:
|
||
图片 → 本地关键帧/图层/字幕/声音 → 大多数镜头完成
|
||
↘ 只有必须真实运动的少数镜头 → AI图生视频
|
||
```
|
||
|
||
图片优先不等于“全部图生视频”。真正省钱的是减少视频模型秒数。
|
||
|
||
## 二、五级镜头动态路由
|
||
|
||
| 路由 | 名称 | 适用镜头 | 执行方式 | 视频模型费 |
|
||
|---|---|---|---|---:|
|
||
| `STILL_HOLD` | 静帧叙事 | 旁白、反应、场景交代、道具特写 | 静帧+字幕+声音+轻微淡入淡出 | ¥0 |
|
||
| `LOCAL_MOTION` | 本地运镜 | 对话、环境、情绪特写、信息镜头 | FFmpeg缩放/平移/旋转/裁切/转场 | ¥0 |
|
||
| `LAYERED_2_5D` | 2.5D分层 | 前中后景明显、氛围镜头 | 背景/人物/前景分层,以不同速度移动 | ¥0模型费 |
|
||
| `LOCAL_LIPSYNC` | 局部动态 | 正面对白、轻微表情 | 静态角色+音频驱动嘴型/眨眼;背景不重生成 | 本地或低成本 |
|
||
| `AI_I2V` | AI图生视频 | 打斗、奔跑、转身、复杂表演、大范围真实运动 | 批准首帧/参考图→Seedance等I2V | 按秒计费 |
|
||
|
||
`AI_T2V` 不属于默认生产路由,只允许做无资产、无连续性要求的实验镜头。
|
||
|
||
## 三、逐镜判断规则
|
||
|
||
按顺序提问,第一个“是”就是路由:
|
||
|
||
```text
|
||
1. 只靠构图、声音和字幕能讲清楚吗?
|
||
→ STILL_HOLD
|
||
|
||
2. 只需要推近、拉远、横移、轻摇或画面震动吗?
|
||
→ LOCAL_MOTION
|
||
|
||
3. 前景/人物/背景分开移动就有空间感吗?
|
||
→ LAYERED_2_5D
|
||
|
||
4. 只有嘴、眼、头发、衣摆需要动吗?
|
||
→ LOCAL_LIPSYNC / 局部动态
|
||
|
||
5. 必须出现身体动作、复杂互动或真实空间变化吗?
|
||
→ AI_I2V
|
||
```
|
||
|
||
“感觉视频会更高级”不是调用 `AI_I2V` 的理由。
|
||
|
||
## 四、图片如何变成简单视频
|
||
|
||
### 4.1 静态图片生成指定时长片段
|
||
|
||
编辑器必须识别 PNG/JPG 输入,为图片增加循环输入,再按镜头时长输出视频。核心语义:
|
||
|
||
```text
|
||
image + duration + fps + resolution
|
||
→ loop still frame
|
||
→ scale/crop/pad
|
||
→ optional zoom/pan/rotate
|
||
→ H.264片段
|
||
```
|
||
|
||
现有 `engines/video-editor.js` 已有 `zoompan`、平移、旋转和调色;需要补的是“图片输入循环”和图片/视频分流。
|
||
|
||
### 4.2 六种免费运镜模板
|
||
|
||
```yaml
|
||
slow_push: zoom 1.00 → 1.10 # 情绪靠近、人物特写
|
||
slow_pull: zoom 1.12 → 1.00 # 揭示环境、孤独感
|
||
pan_left: x 右 → 左 # 展示空间/队伍/建筑
|
||
pan_right: x 左 → 右 # 跟随视线/信息展开
|
||
tilt: y 下 → 上 / 上 → 下 # 建筑、人物全身、压迫感
|
||
impact: 短促zoom + 轻震 + cut # 巨响、冲击、惊讶
|
||
```
|
||
|
||
动作要轻;每镜通常只使用一种主运动,避免“PPT乱飞”。
|
||
|
||
### 4.3 2.5D分层
|
||
|
||
```text
|
||
原图/生成阶段
|
||
├── BG: 背景场景
|
||
├── CHAR: 透明人物层
|
||
├── FG: 前景遮挡层
|
||
└── FX: 烟雾/光/粒子层
|
||
|
||
合成阶段
|
||
├── BG慢移
|
||
├── CHAR中速移动/缩放
|
||
├── FG稍快移动
|
||
└── FX循环/淡入淡出
|
||
```
|
||
|
||
没有分层资产时,先从单图慢运镜开始,不得为了做2.5D重新抽大量素材。
|
||
|
||
### 4.4 对白镜头
|
||
|
||
```text
|
||
先生成对白音频
|
||
→ 锁定字幕时间轴
|
||
→ 选择静态运镜或局部口型
|
||
→ 只有表演强度确实需要时才调用AI_I2V
|
||
```
|
||
|
||
对白是否好看,主要由构图、停顿、字幕、声音和反应镜头决定,不要求整张画面一直变化。
|
||
|
||
## 五、图片优先生产管线
|
||
|
||
```text
|
||
01 script_lock 锁剧本与台词
|
||
02 breakdown 拆角色/场景/道具/声音
|
||
03 asset_lock 批准可复用图片资产
|
||
04 shot_design 设计镜头目的与时长
|
||
05 motion_route 每镜选择五级路由
|
||
06 audio_first 先做临时配音/字幕时间轴
|
||
07 animatic 全集静态图+本地运镜预演
|
||
08 human_review 苍耳先看完整节奏
|
||
09 expensive_select 只圈出必须AI_I2V的镜头
|
||
10 ai_generation 批准首帧后按镜生成,最多2次
|
||
11 final_edit 替换关键镜头、混音、字幕、转场
|
||
12 qc_writeback 连续性/成本/失败原因回写
|
||
```
|
||
|
||
硬门槛:第07步没有完整 animatic,不进入第09步。
|
||
|
||
## 六、深海迷航 EP01 立即改路
|
||
|
||
旧方案:10镜、86秒全部按 Seedance 计价,预计约 ¥43;仓库记录的整集预计成本约 ¥60。
|
||
|
||
新方案的目标分布:
|
||
|
||
```text
|
||
10镜
|
||
├── 6~7镜: STILL_HOLD / LOCAL_MOTION
|
||
├── 1~2镜: LAYERED_2_5D / LOCAL_LIPSYNC
|
||
└── 2~3镜: AI_I2V关键动作
|
||
```
|
||
|
||
按仓库当前 ¥0.5/秒记录估算,AI视频只保留约20~30秒时,视频模型预算约 ¥10~15;最终以 dry-run 为准。
|
||
|
||
立即动作:
|
||
|
||
```text
|
||
1. 暂停按旧计划继续 M03~M10 全量生成。
|
||
2. 为 M01~M10 增加 motion_route、route_reason、asset_refs、local_motion、ai_required。
|
||
3. 先用现有批准图片生成完整低成本 animatic。
|
||
4. 苍耳看完整节奏后,圈定必须重生成的2~3镜。
|
||
5. 再调用 Seedance;其余镜头本地完成。
|
||
```
|
||
|
||
## 七、执行代码必须更新的位置
|
||
|
||
```text
|
||
engines/video-editor.js
|
||
→ 支持 PNG/JPG 静帧循环、指定时长、关键帧模板、分层叠加
|
||
|
||
video-ai-system/lib/composer.py
|
||
→ 修正 video-editor.js 实际路径;失败必须显式报错,不得静默退回简单拼接
|
||
|
||
video-ai-system/lib/cli.py
|
||
→ gen 前强制 motion_route;LOCAL路由禁止调用视频API
|
||
|
||
video-ai-system/tools/run_prompts.js
|
||
→ 不再默认每镜输出Seedance提示词;只给 AI_I2V 生成提示词和成本
|
||
|
||
MODEL-ROUTER.hdlp / COST-LOG.hdlp
|
||
→ 增加本地动态路由和新旧预算对比
|
||
```
|
||
|
||
## 八、BC-006回执格式
|
||
|
||
```yaml
|
||
broadcast_id: BC-006
|
||
persona: PTS-VA-001-EED | PTS-VA-001-JY
|
||
status: RECEIVED | PIPELINE_UPDATED | DRY_RUN_READY
|
||
active_anchor: broadcast/ACTIVE-PIPELINE.hdlp
|
||
project: deep-sea-voyage/EP01
|
||
shots_routed: 10
|
||
local_shots: 0
|
||
ai_i2v_shots: 0
|
||
old_budget: 0
|
||
new_budget: 0
|
||
changed_files: []
|
||
blockers: []
|
||
```
|
||
|
||
> ⊢ 先用图片把整集讲明白,再让视频模型只动最值得动的地方。
|