本节摘要:本节做全书的第一次拆解。拿来一条 60 秒的原创知识短片《六十秒看懂:彩虹为什么是弧形》,逐秒还原它是怎么被生产出来的,把「一条片子」拆成脚本、分镜、素材、生成、剪辑、音轨、字幕七段加工,并标出每段的输入、输出与责任边界。随后对照「单模型直出」与「流水线组装」两条路线:同样一条 60 秒短片,直出路线改一个镜头要整条重生成,流水线路线只重跑受影响的镜头——质量差距是表象,可控性差距才是本质。最后给出经 GitHub 接口核实的生态热度图景(事实基准日 2026-10-16,stars 为社区口径、增速需甄别),并说明怎么读这些数字才不会被带偏。
示例是一条完全原创的知识短片《六十秒看懂:彩虹为什么是弧形》,总长 60 秒、竖屏 1080 by 1920、30 帧。它的镜头表如下(时间码为示意,讲解逻辑自洽即可):
| 时间码 | 画面 | 旁白台词 | 加工段归属 |
|---|---|---|---|
| 00:00 到 00:05 | 雨后天空转晴的空镜,片名字卡淡入 | 雨停了,阳光回来,天边挂出一道弧 | 素材、剪辑 |
| 00:05 到 00:15 | 动画:一束阳光射向一颗水滴 | 你看到的弧,起点是一亿五千万公里外的阳光 | 生成、剪辑 |
| 00:15 到 00:30 | 动画:光在水滴里折射、分色、再反射 | 阳光进入水滴时折一次,出来时再折一次,不同颜色的光偏折角不同 | 生成、剪辑 |
| 00:30 到 00:45 | 动画:观察者背对太阳,视线抬起约 42 度的锥面 | 只有和你的视线成约 42 度角的水滴,颜色才叠得足够浓 | 生成、剪辑 |
| 00:45 到 00:55 | 实拍感的弧形叠加:把所有 42 度的点连起来是个圆 | 把这些点连起来是个圆,地面挡住了下半截,你看到的就是弧 | 剪辑 |
| 00:55 到 01:00 | 字卡收尾:下一个雨天,背对太阳去找它 | 下一个雨天,背对太阳,去找那道只属于你角度的弧 | 剪辑、字幕 |
这张镜头表此刻还是「人读的表」,流水线里它会变成「机器读的表」。提前看一眼它将来的样子(schema 在第 1.2 节正式定义,此处只求混个眼熟):
# storyboard_preview.json —— 彩虹片镜头表前两行的机器形态(示意) { "shots": [ {"shot_id": 101, "duration": 5.0, "camera": "固定", "visual": "雨后天空转晴的空镜,片名字卡淡入", "line": "雨停了,阳光回来,天边挂出一道弧", "transition": "切"}, {"shot_id": 102, "duration": 10.0, "camera": "推", "visual": "一束阳光射向一颗水滴的动画", "line": "你看到的弧,起点是一亿五千万公里外的阳光"} ] }
现在不必逐字段抠细节,只记一件事:镜头表里的每一行,将来都是一个带镜头号的 JSON 对象——这个号码是它此后在素材、生成、剪辑三段里被指名道姓的唯一凭据,「只重跑第 3 个镜头」说的就是它。
这条片子没有明星、没有实拍团队、没有版权素材,全部内容要么来自生成模型,要么来自程序绘制的图形——这正是它能被一条流水线完整生产的原因。下面把它拆回七段。
脚本 ──▶ 分镜 ──▶ 素材 ──▶ 生成 ──▶ 剪辑 ──▶ 音轨 ──▶ 字幕 ──▶ 导出 │ │ │ │ │ │ │ │ 剧本JSON 分镜JSON 素材清单 片段mp4 时间线JSON 音频轨 SRT 成片
第一段,脚本。输入是一句想法(「讲清楚彩虹为什么是弧形,60 秒,科普口吻」),输出是剧本 JSON:三场戏、每场的动作与台词。责任方是大模型加结构化输出约束,第 2.1 节展开。
第二段,分镜。输入是剧本 JSON,输出是分镜 JSON:把每场戏切成带镜头号、时长、画面描述、台词、运镜、转场的镜头列表——上表六行就是分镜的雏形。这一段是全书最重要的人审节点,第 2.3 节展开。
第三段,素材。输入是分镜 JSON,输出是素材包与生成任务清单:哪些镜头走文生图转图生视频、哪些走纯文生视频、哪些用程序图形直接绘制(本片的三段动画其实最适合矢量图形或 HTML 渲染,第 5.3 节会回到这一点)。第 3、4 章展开。
第四段,生成。输入是生成任务清单,输出是「每镜一条片段 mp4」。注意产物形态:不是一条成片,而是一堆几秒钟的镜头片段,带着镜头号落盘。第 3 章展开。
第五段,剪辑。输入是片段集合与分镜 JSON,输出是时间线 JSON 与拼接后的视频轨。第 5 章展开。
第六段,音轨。输入是台词文本,输出是配音、音效与混音。原理见 ai-engineering-from-scratch 第 7 章《语音与音频》,工程实做在后半本第 6 章。
第七段,字幕。输入是音轨与台词,输出是对齐到帧的字幕文件。后半本第 7 章展开。
七段连起来有一个共同点:段与段之间传递的都是文件——JSON 清单、图片、片段、音轨、字幕——而不是内存里的隐含状态。这个特点让任何一段都可以单独重跑,是第 1 章的总论主题。
把七段的接口收进一张总表,它可以当作全书的地图用——后面每章展开一段时,回来对一眼输入输出即可:
| 段 | 输入 | 输出 | 落盘位置 | 关键人审点 |
|---|---|---|---|---|
| 脚本 | idea.md 里的一句话 | 剧本 JSON | build/01_script | 通读台词与结构 |
| 分镜 | 剧本 JSON | 分镜 JSON | build/02_storyboard | 全流水线主关卡(第 2.3 节) |
| 素材 | 分镜 JSON | 素材包与生成任务清单 | build/03_assets | 授权核对(第 4.2 节) |
| 生成 | 任务清单 | 每镜一条片段 mp4 | build/04_clips | 画面抽查 |
| 剪辑 | 片段与时间线 | 视频轨 | build/05_timeline | 节奏通看 |
| 音轨 | 台词文本 | 配音与混音 | build/06_audio | 人工听检 |
| 字幕 | 音轨与台词 | 对齐字幕 | build/07_subs | 断句抽查 |
读这张表还有一个附加收获:它就是 1.3 节目录模板的来历——build 下的七个子目录与七个加工段一一对应,目录结构即流水线形状。
「一句话直出成片」的路线在 2026 年已经相当能打:给一句提示词,模型直接吐出几秒到几十秒的视频。它的天花板也稳定:
| 维度 | 单模型直出 | 流水线组装 |
|---|---|---|
| 交付速度 | 一句话到片,分钟级 | 七段走完,小时级(可自动化到分钟级) |
| 时长上限 | 模型口径,通常几十秒内 | 契约拼接,理论上不限 |
| 镜头语言 | 模型自己决定,不可指定分镜 | 分镜 JSON 逐镜指定,人审把关 |
| 一致性 | 跨镜头角色与风格易漂移 | 首尾帧、参考图、种子等工程手段缓解 |
| 修改成本 | 改一处,整条重生成 | 只重跑受影响的镜头 |
| 成本结构 | 按次付费,试错即花钱 | 失败隔离,重跑只花那一段的钱 |
| 适合场景 | 灵感草稿、社交短内容 | 栏目化、批量、需要交付质量下限的内容 |
一个思想实验把差别钉死:客户看完样片说「00:30 那句旁白后面的动画,把 42 度改成带刻度的扇形」。直出路线的答案是把提示词改一改、整条重生成,然后祈祷其他五段没有变样;流水线路线的答案是改分镜 JSON 里那一个镜头的画面描述,重跑一个镜头的生成与剪辑,其余五个镜头原样复用。生产的竞争力不在第一次出片多快,而在第十次修改还剩多少可控性。
还要说清反面:流水线不是免费的。它要求你维护契约、目录与重跑逻辑,前期工程量明显更大。日更一条的个人创作者用直出加手工微调可能就够了;要做栏目化、多客户、批量交付,「第十次修改」迟早来,流水线的投入从那时开始回本。
以下项目在事实基准日 2026-10-16 经 GitHub 接口逐一核实过存在性与官方描述,stars 为社区口径,只表达热度量级,增速需甄别,不构成选型结论:
| 项目(owner/repo) | 定位(以官方描述为准) | stars(社区口径) |
|---|---|---|
| OpenMontage(calesthio/OpenMontage) | 智能体式视频生产系统,官方口径 12 条流水线、700 余个技能 | 约 68.6k |
| hyperframes(heygen-com/hyperframes) | 「写 HTML,渲成视频」的动态图形路线 | 约 64.7k |
| Recordly(webadderallorg/Recordly) | 无需剪辑技能录制演示视频的桌面工具 | 约 33.9k |
| video-use(browser-use/video-use) | browser-use 组织的视频方向项目,用编码智能体剪视频 | 约 29k |
| Toonflow(HBAI-Ltd/Toonflow-app) | 开源短剧与动态漫画工具,无限画布加自部署 | 约 17.9k |
| huobao-drama(chatfire-AI/huobao-drama) | 中文「一句话生成完整短剧」平台火宝短剧 | 约 16.3k |
| filmcraft(storytold/filmcraft) | 纯 Rust 手写的非线性剪辑器 | 约 13.9k |
| LTX-2(Lightricks/LTX-2) | 开源音频-视频生成模型的官方推理与训练包 | 约 9.8k |
怎么读这张表:第一,2026 年 GitHub star 通胀是公认现象,玩梗仓库也能冲到十万级,六位数不等于六位数质量,看增速曲线与 issue 活跃度比看绝对值可靠;第二,项目定位以官方仓库描述为准,二手转述常把「录制工具」说成「生成模型」;第三,这些项目覆盖了流水线的不同段——OpenMontage 与 huobao-drama 是整线整合,hyperframes 是渲染段的新路线,video-use 与 filmcraft 是剪辑段,LTX-2 是生成段的本地选项——本书各章会按段取用它们的思路,而不绑定任何一家。
第一次用七段视角看片子,疑问常集中在四处。
问:七段必须严格串行执行吗? 段间依赖决定大顺序:脚本在分镜前、分镜在生成前、剪辑在音轨字幕前,这条主链不能乱。但段内任务可以并行——最典型的是生成段,一批镜头任务同时挂起(第 3.1 节的并发控制);素材段的找图与选曲也可以与脚本段并行起步,只要在生成段开工前把任务清单填齐。
问:口播类、实拍类内容也适用这七段吗? 适用,只是个别段会「退化」。实拍内容的生成段换成拍摄素材入库,素材段多一项整理母版的工作;纯口播内容的分镜可能只有两三条镜头。七段是加工抽象,不绑定生成模型——只要产物仍是文件加清单,目录、契约、重跑逻辑全部照用。
问:每段产物为什么必须落盘成文件?一个长脚本从头跑到尾不行吗? 进程内存里的状态无法单独重跑、无法人审、无法交接,进程一崩全部蒸发。文件是断点、是证据、也是协作界面——第 1 章的执行器与完成标记全部建立在「产物即文件」之上。
问:直出路线以后会不会支持只改一个镜头? 部分产品确实在朝局部编辑演进,但截至事实基准日,主流直出路线的修改单位仍是整条重生成;即便局部能力普及,「分镜级契约」的可控性仍高于「提示词级祈祷」——可控性来自结构,不来自某一家产品的功能承诺。
问:想拿自己的片子练手拆解,从哪下手? 找一条自己拍过或剪过的 60 秒内容,先只做前四段的归位——每个镜头标出它的画面描述与台词,再对照本节镜头表的格式补全时间码;后三段等读完第 5 到 7 章再回来补。拆三条之后,七段会从概念变成手感。
拆解是纸面功夫,下一节把它变成能跑的东西——三十余行代码,两段文字进,五秒成片出。