图片占位 → 视频替换的工作流 · v1
入档:2026-05-19 触发:23 项目《再少年》5/18 全天用这套工作流跑完 23 镜叙事 MV 性质:AI 视频生成不确定性 与 叙事节奏确定性的解耦工作流 关联:方法论笔记_LLM-plan卡点工作流_v1 / L-cut卡点+xfade时长抵消
一句话总结
先用静态基准图按 plan 拼出占位粗剪,验证卡点+节奏+情感曲线 → 再开跑可灵图生视频,逐段替换占位图为视频,plan 时间轴保持不变。失败可回滚到上一段图占位,且整个叙事节奏在视频生成开始前就已固化。
工作流图
[1] 基准图准备(nano + MJ)
│
▼
[2] LLM-plan 出 卡点 JSON(每镜起止时刻 + 镜头编号)
│
▼
[3] ffmpeg 把基准图按 plan 拼成"图占位粗剪"
│ ← 此时验证:卡点 / 节奏 / 情感曲线 / 字幕对齐
│ ← 跳蛛先生预审,可改 plan 不需要重出图
▼
[4] 可灵图生视频开跑(23 段并发)
│ ← 任一段失败:回滚到图占位继续看整体
▼
[5] 逐段替换占位图 → 视频(plan 时间轴不变)
│
▼
[6] 加 xfade dissolve + L-cut + 调色 + 雨声 + 字幕
│
▼
[7] 最终视频
为什么这条工作流值得沉淀
传统 AI 视频工作流的痛点
出图 → 直接生成视频 → 看节奏不对 → 重生成 → 节奏还是不对 → 反复抽卡 → 没钱了
核心问题:AI 视频生成的不确定性 + 叙事节奏的确定性 互相耦合,任一变化都触发全链路重算。
占位工作流的解耦
关键洞察:叙事节奏 ≠ 画面运动。
- 叙事节奏 = 镜头在时间轴上的起止位置(LLM 可以算)
- 画面运动 = 这一秒画面里有什么变化(AI 视频模型才能生成)
这两个维度是正交的——所以可以先固化节奏(图占位)再生成运动(视频替换)。
各阶段操作要点
阶段 1 · 基准图按 plan 拼图占位
# 单帧静图按 plan 时长生成临时视频段
ffmpeg -loop 1 -t {duration} -i S0X.png \
-vf "scale=1080:1920,setsar=1" \
-c:v libx264 -pix_fmt yuv420p \
-r 24 S0X_placeholder.mp4
关键约束:
- ✅ 静图拉成视频段时间长度严格 = plan 里的镜头时长
- ✅ 分辨率/帧率/编码与最终视频一致(避免拼接时重编码)
- ❌ 不要在这一步加 Ken Burns/vignette/grain(这些是装饰,会迷惑后续判断)
阶段 2 · 整体预审
放音轨 + 占位粗剪整体过 1-2 遍,专门看:
- 卡点对不对(歌词↔画面)
- 节奏是否合理(15s 长镜会不会冗长)
- 情感曲线是否单调(连续 3 段静景会不会困)
这一阶段可以省 80% 的视频生成成本——任何节奏问题在此处发现 = 改 plan,不需要重生成视频。
阶段 3 · 视频替换
# 占位段直接替换为可灵视频段,plan 时间轴不变
# 替换公式:
trim_or_setpts(klink_video, target_duration = plan[shot].duration)
关键约束:
- ✅ 可灵视频时长 ≠ plan 时长时,用
setpts慢放/快放对齐 - ✅ 替换是就地替换(同一文件名 S0X.mp4),不改 plan JSON
- ❌ 不要让”可灵的实际时长”反过来改变 plan 时间轴(节奏会再次错位)
阶段 4 · 加叠化和后处理
xfade dissolve 0.4s + 调色 + 雨声 + L-cut 字幕 → 详见 L-cut卡点+xfade时长抵消。
已验证案例 · 23 项目
| 阶段 | 时间窗口 | 产出 |
|---|---|---|
| 阶段 1-2(图占位粗剪) | 5/18 早 4h | 占位 v5 540p(无字幕) |
| 阶段 3(逐段替换) | 5/18 中-晚 6h | v8.2 → v8.4 |
| 阶段 4(后处理) | 5/18 晚 2h | final 1080p |
关键回滚案例:
- S07 第一版可灵跑出”花海溢出画面”——回滚到占位图,改可灵 prompt,再生成。
- S15 第一版”舞蹈状态”飞起来太快——回滚到占位图,plan 时长不变。
→ 回滚成本 ≈ 0(plan 不动,只重生成单段视频),这是占位工作流的核心价值。
反向陷阱
❌ 陷阱 1 · 跳过占位粗剪直接出视频
副会话最容易犯——觉得”反正 plan 已经出了,直接生成视频快”。 实际上,plan 文本 ≠ plan 视觉体感,只有占位粗剪能让你”看到/听到” plan,且发现 plan 本身的问题。
❌ 陷阱 2 · 让占位粗剪太精致
占位粗剪是工程脚手架,不是中间作品。任何在占位粗剪上花的”装饰时间”(Ken Burns/调色/转场)都是浪费——这些后处理在视频替换完成后再统一加。
❌ 陷阱 3 · 让视频时长改 plan
可灵跑出的实际视频时长可能与 plan 不同(默认 5s / 8s / 10s 三档)。 正确做法:用 setpts 把视频拉/压到 plan 时长。 错误做法:改 plan 时间轴去适配实际视频时长——这会让整个节奏链路重新错位。
跨场景适用性
已验证适用
- ✅ 叙事型 MV(23 项目)
- ✅ 多镜头视频拼接(任何 5+ 镜头)
推测适用
- 🔄 商业广告短片(15-30s 多镜头)
- 🔄 PV / 预告片
- 🔄 任何”先有节奏要求,后有视频生成”的项目
不适用
- ❌ 单镜长视频(没有”节奏锁定”的问题)
- ❌ 即兴/纪录片风格(节奏本身就是探索出来的)
关联文档
- 上位工作流:方法论笔记_LLM-plan卡点工作流_v1
- 下游工程:L-cut卡点+xfade时长抵消
- 项目复盘:2026-05-18_23项目再少年MV完整复盘
- 工具洞察:识别工具天花板的时机 / AI静物特写的本质短板
版本
- v1 - 2026-05-19 - 23 项目首次沉淀
升级触发:
- 第二次叙事 MV 验证后(如「拾色 · 叙事 MV」立项)
- 找到比占位图更轻量的”节奏锁定”载体(如 SVG / 关键帧)