铸物 · 之二FORGE / TECHNICAL ANALYSIS

自有媒体流水线:
从提示词到音画同步的成片工程

WZW-MEDIA-FLOW — A Fully Owned Text-to-Cinema Pipeline
本文解剖本刊的「自有媒体流水线」(wzw-media-flow):一套覆盖文生图(Qwen-Image-2.1)、文生音乐(MiniMax-Music3)、参考生视频(MiniMax-H3)与 ffmpeg 本地合成的全链路工程。九个工具、四种组合形态、一条可断点续跑的产线——它的意义不止于省下制作费,而在于验证一个命题:当表达的每个环节都可编程,创作就从「术」变成了「工艺学」。
栏目 铸物 · AI 炼金术系列 技术分析 Ⅱ / Ⅴ日期 2026-10-11底稿 dsh-wzw-media-flow 插件文档 · 生产日志
fig.02 — 炼金工坊的运镜:由首图经 MiniMax-H3 参考生视频直接驱动(6s · 1344×768 · steps=20),随后 ffmpeg 封装。图为同源静帧

一、产线的四层结构

流水线并非一堆 API 的堆叠,而是一个四层的分层系统——每层只信任下一层的输出格式,而不关心它的来源:

层工具关键约束
体检层wzw_media_status三端点连通性 + 模型清单 + ffmpeg 可用性;只读、零费用,任何生成前的强制步骤
单模态层image_generate / image_edit / music_generate / video_generate / video_status图 1664×928 · steps=40;乐 25 tokens≈1s 音频;视频 4–15s · steps≤20 · 短边 768
编排层wzw_media_pipeline(song / image_set / mv / movie)本地步骤立即执行,云端任务分批提交;返回 runId 即断点
运行与合成层wzw_media_run / wzw_media_assemblestatus / resume / assemble;slideshow · concat · mux · still,统一 h264+aac · 1344×768 · 24fps

二、三个模型的工程性格

2.1 文生图:Qwen-Image-2.1 的「对齐纪律」

服务端要求尺寸为 32 的整数倍,插件自动向下对齐;默认 1664×928(16:9 宽幅)、steps=40,实测约 75–90 秒/张。预设(square/portrait/cinema/clip)实为分辨率模板,显式 width/height 会覆盖预设。种子(seed)一旦落盘即可复现——这对本刊意义重大:每一期封面都是一条可审计的记录,而非一次性的巧合。

2.2 文生音乐:以 Token 计量的时间

MiniMax-Music3 的标定关系朴素得迷人:约 25 tokens 换 1 秒音频,上限 9000 tokens≈360 秒整曲。歌词结构标签([Verse]/[Chorus]…)必须独占一行,否则该行歌词被模型静默丢弃——一个典型的「格式即语义」陷阱。插件按目标时长自动换算 tokens,并在歌词不足以唱满时主动收敛时长:宁可短,不留一段静默。本篇所在专题的两首配乐(40 秒)正是这一逻辑的产物。

2.3 参考生视频:H3 的素材物理学

MiniMax-H3 Ref2VA 接受图/音/视频参考,用占位符(<Picture 1>/<Audio 1>)在提示词中引用素材。这里埋着本项目踩过的最深的一个坑:网关不读客户端本地路径,multipart 直传返回 500;可行解是把素材降采样后转成 base64 data URI 内嵌 JSON。音画同步靠「音频流强度」参数(audio_flow_shift)调节,默认 3.0——数值越高,镜头运动越服从节拍。

三、断点续跑:把「 Render 」变成状态机

电影级生成动辄数十个镜头,云端串行队列一跑数小时,任何网络抖动都可能毁掉整晚。编排层的解法是把一次生成变成可恢复的状态机:每次运行落盘一个工程目录 output/runs/<runId>/manifest.json,本地步骤(出图/作曲)即时完成,云端任务分批提交(默认批大小 2,防过载),wzw_media_run action=resume 可反复轮询、下载已完成片段,全部就绪后自动拼接成片——中途崩溃,从断点继续即可。

# 断点续跑的最小闭环
wzw_media_pipeline mode=movie brief="…" lyrics="…"   # → runId
wzw_media_run action=status  run_id=ep01v2           # 查看片段 27/27
wzw_media_run action=resume  run_id=ep01v2           # 续跑 + 下载 + 自动拼片
# → output/runs/ep01v2/work/joined_*.mp4

本刊《山海经·星门》第一集(27 个 H3 片段)即以此方式完成:分批提交、断点续跑、尾部统一混入配乐——工程上它是一次渲染,概念上它是一台可以暂停的制片厂。

四、合成层的音画同步公式

ffmpeg 合成层把「图 + 乐」拼成 MV 的手法并不神秘,但值得记下这个默认配方,因为它是一套可复算的美学参数:

当每一秒画面都有种子可查、每一拍配乐都有 token 可计,
「创作」第一次变成了一门可审计的工艺学。

五、自有意味着什么

「自有媒体插件」的自负之处不在免费,而在主权:素材不过第三方手、参数由编辑部自持、失败可回溯、风格可沉淀。对一个以「智人如何重写自己」为题的刊物而言,这不是成本问题,而是立场问题——用自己的引擎讲黄昏的故事,是黄昏叙事的第一性。

Qwen-Image-2.1
MiniMax-Music3
MiniMax-H3
ffmpeg
断点续跑
底稿与来源
  • 《媒体流水线 · wzw-media-flow》插件 README,媒体流水线工作区
  • Qwen-Image-2.1 API 笔记(model-conf)
  • 《山海经·星门》制作档案与 ep01v2 运行日志,AI 漫剧 01 工作区
  • 本刊实测:15 张图 75–91s/张;2 首乐曲 221–222s/首;1 段 6s 视频(H3 云端队列)