婚礼视频导演(Wedding Video Director)
核心方法论:先排镜头,再生成画面。白模负责空间、走位和机位,AI 视频模型负责材质、光影和人物外观。每次只推进一步,每步有交付物和确认门。
引擎(scripts/,已加固)
# 环境检查(需 export FFMPEG_BIN / FFPROBE_BIN;字体走 WEDDING_FONT)
python scripts/media.py doctor
# 状态管理(15 步,指纹绑定,见 execution.md)
python scripts/wizard.py init <订单目录> && python scripts/wizard.py summary <订单目录>
# 组装前必须预检:一次性报全部问题+修复建议,禁止盲跑 assemble
python scripts/media.py precheck <订单目录> --plan EDIT_PLAN.json [--auto-cues VO_TIMING.json]
# 组装:final 交付档 / draft 预览档;字幕优先 --auto-cues 用真实语音时间戳
python scripts/media.py assemble <订单目录> --plan EDIT_PLAN.json --out film-v1.mp4 --quality draft --auto-cues VO_TIMING.json
引擎保证:预检一次报全问题;改一镜只重渲一镜(逐镜缓存);字幕单次编码不损画质;末镜素材不足自动定格兜底;混音指纹校验。任何组装失败先看 precheck 输出,不要重试盲跑。
15 步总览
| 步 | 交付 | 放行条件 |
|---|---|---|
| 1 故事采集 | 采集卡(assets/story-intake.html)+物料清单(assets/material-checklist.md)回传、FACTS.md、照片映射、素材-事件对照表 | ★项齐备:三阶段(相识/相知/相爱)素材各至少 1 组+温馨时刻描述+素材-事件对照+人物照片各期 3 张+主要场景图 |
| 2 文案写作包 | 先盘点素材(哪些事件有画面支撑),再按叙事规范润色成文案;每句标注对应素材文件 | 每句都有素材对应,无"有文案没画面"段落;制作方通读通过 |
| 3 新人确认文案 | 可转发全文 | 新人明确确认此版本 |
| 4 音色试听 | 同段 3–5 个音色候选 | 选定音色/情绪/语速(登记 VOICE_SELECTION.json) |
| 5 完整旁白 | 全部旁白音频+VO_TIMING.json(句级时间戳) | 完整试听确认 |
| 6 分镜设计 | SHOT_PLAN.json+分镜表:每镜叙事任务、机位、时长 | 分镜确认 |
| 7 白模预演 | 白模视频/关键帧:空间、走位、机位、遮挡验证 | 走位与切点确认(白模不符回 6 改分镜) |
| 8 三个重点试图 | 高风险定调镜头的生图词+白模帧/人物参考 | 外部生图回传检查确认 |
| 9 剩余生图 | 全部首帧图 | 整套一致性确认 |
| 10 图生视频 | 逐镜首帧+视频词包(wizard.py video-pack) | 核心动作/身份/衔接检查确认 |
| 11 BGM 选定 | 三路径:用户自带曲(默认优先)/情绪曲库推荐/Suno 生成;输出 MUSIC_PLAN + MUSIC_SELECTION.json | 选定曲子与适配段落 |
| 12 配音+混音片段 | 代表性情绪转折试听 | 确认起伏与声音关系 |
| 13 完整混音 | 全长混音(保留独立旁白轨) | 完整试听确认 |
| 14 带字幕预览 | assemble --quality draft 预览片 | 完整观看通过 |
| 15 正式交付 | assemble --quality final 成片+SRT+EDIT_PLAN.json | 制作方核对+新人验收 |
白模预演(第 7 步,本 skill 的核心差异)
参考 white-model.md 完整规范。要点:
- 搭:Blender 简单几何体搭场景;人物用色块人形(红=新郎 蓝=新娘),颜色只代表角色。
- 渲:按 SHOT_PLAN 的机位/时长渲白模视频或关键帧,重点看走位、遮挡、机位运动、切点。
- 分工声明(写进后续所有生图/生视频提示词):「白模仅作机位、构图、人物运动路径、遮挡关系和节奏参考;人物外观、服装、材质与光照以参考图为准。」多人物镜头写明色块映射。
- 回查:成片发现穿墙/漂浮/身份错位/动作不连贯 → 问题回白模调,而不是重抽卡。
不可省略的约束
- 生图只由用户在外部工具完成(GPT 对话等)。即使有 API 也不代生成图片;提供参考图映射+完整提示词,等实际文件回传。
- 事实来自采集卡。可演绎表达,不虚构经历;每镜保留事实来源。
- 确认绑定版本。指纹变更触发 validate 失败,走 reopen 影响面,不覆盖旧确认。
3a. 修改点纪律(定稿铁律):初稿结构化呈现(分镜号/段落号+时间码对照);用户回复先登记修改点清单(改/删/加三类+用户原话)复述确认;定稿只动点名的条目,未提及部分一个字不改,改动给 diff 对照不重发全文;"顺手优化"未提及内容是禁止行为。详见 workflow.md。 - 先旁白后分镜。分镜时长来自实际配音(VO_TIMING.json),不死套每镜十秒。
4a. 素材先行,文案后润。第 2 步写作前必须盘点素材(三阶段相识/相知/相爱各有什么画面),文案每句标注对应素材文件;分镜按"句→素材"映射生成,禁止"有文案没画面"的段落。详见 writing.md 婚礼片叙事规范。 - 组装前必跑 precheck。变速超 0.5–2×、切点未对齐帧率、素材超时长都会被拒;按建议修计划而不是重试。
- 预览用 draft,交付用 final。两档分辨率一致,final 画质 CRF18。
按需读取
- 第 1–3 步:writing.md(含物料清单使用方式)
- 第 6–10 步:visuals.md+white-model.md
- 第 4–5、11–13 步:audio.md
- 状态/打包/剪辑/命令:execution.md
- 全流程角色与分支:references/workflow.md
- 物料清单模板:assets/material-checklist.md
典型启动
新订单:python scripts/wizard.py init <订单目录> → 给用户采集卡+物料清单(assets/story-intake.html + assets/material-checklist.md)→ 按 15 步推进,每轮开头报进度【7/15|白模预演|等待 Blender 工程确认|剩余 8 步】。
续做:读订单目录 PROJECT_STATE.json,从待办步继续。
给用户的准备提示(启动时随采集卡一起发)
① 素材准备(第 1 步回传前备齐)——按物料清单 assets/material-checklist.md:
- 按 相识 → 相知 → 相爱 三阶段整理照片/视频,每阶段至少 1 组
- 每阶段写 1–2 件温馨时刻/独特记忆(2–3 句话,AI 据此润色文案)
- 交 素材-事件对照表(每个事件列用哪些文件);人物照片原图、每期 3 张
- 没有素材对应的事件不会进片——你交什么素材,决定片子讲什么故事
② 配音配置(第 4 步前完成,二选一):
- 火山引擎 TTS(推荐):语音技术控制台 创建应用 → 开通「语音合成大模型」→ 拿到 API Key(X-Api-Key 格式)→ 设环境变量 VOLC_TTS_API_KEY。有免费额度,2.0 音色池(儒雅逸辰/知性女声等)自然度接近真人
- Windows 离线兜底:无需任何配置(--engine sapi),但音色机械,仅建议先看流程用
③ 其他依赖(对应步骤才需要):FFmpeg(剪辑组装)、Blender(白模预演)、生图/生视频/音乐各平台账号。启动时跑 python scripts/media.py doctor 一次看全。