cang-ying/broadcast/BC-006-IMAGE-FIRST-PRODUCTION.hdlp

216 lines
7.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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_routeLOCAL路由禁止调用视频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: []
```
> ⊢ 先用图片把整集讲明白,再让视频模型只动最值得动的地方。