OpenMontage AI 视频制作
$1.33、$0.02 等)
是项目方自己标注的金额,不是我们的实测,
本专题不据此推算你做一条要花多少钱。
第二,README 对各家 provider 的形容(High quality、State-of-the-art 之类)
是它的措辞不是我们的评价,本专题只转述、不做选型推荐。
第三,这个项目以 AGPL-3.0 发布,
与本站常写的 MIT / Apache-2.0 项目不是一类许可,
具体边界请以官方 LICENSE 原文为准,本专题不解读。
另外,本地 LLM(Ollama / LM Studio)支持 README 明写 "Coming soon",是计划不是现有功能。
核对日 2026-08-09。
本专题共 45 篇。内容依据
官方仓库
的 README、AGENT_GUIDE.md、config.yaml、pipeline_defs/
与 lib/ 下的治理模块整理。本专题内容为仓库源码与文档口径,
我们没有安装或运行过该系统,也没有调用过其中任何一个 provider API,
因此不涉及渲染耗时、成片画质与界面操作手感的任何描述。
部分流水线在 manifest 中自标 stability: beta。
OpenMontage 到底是什么:没有代码编排器的视频制作系统
OpenMontage 仓库里找不到主程序,因为它没有代码编排器:流程写在 YAML manifest 和 Markdown skill 里,Python 只提供工具和持久化。本文从仓库身份、实读目录、三层知识、Rule Zero 契约和 config.yaml 默认值切入,说清它是什么、不是什么、什么人不适合上手。
上手:零密钥能做到哪一步
四个前置条件、make setup 之后发生什么、Windows 上那条已知的 npm 报错怎么绕、十四个可选密钥各解锁什么、不加密钥会退到哪条路径。还有从一段参考视频起步的入口,以及 Backlot 这块把审批闸做成看板的本地界面。
零 API 密钥能做到哪一步:七行能力表逐行拆
OpenMontage 的 README 有一张「零 API 密钥能得到什么」的七行表,读起来很诱人,但边界藏在括号里。本文逐行拆这七行,说清哪一行其实要申请免费密钥、哪一行只是前置依赖、render_runtime 在提案阶段就被锁死意味着什么,以及为什么零密钥不等于零外部服务。
四个前置条件与 `make setup`:从 clone 到出片的路径
OpenMontage 的 Quick Start 只有三条命令,但前置条件有四项,其中第四项不是环境依赖而是「你得有个 AI 编码助手」。本文按顺序拆四个前置条件、make setup 与两套手动安装串、Windows 已知问题,以及装完之后怎么自查、README 说接下来会发生什么。
OpenMontage 的 Windows 手动安装串,以及那条 `ERR_INVALID_ARG_TYPE` 的已知问题
Windows 上没有 make,只能照 README 的 PowerShell 手动串一条条走。本文逐段拆开这串命令、说清它和 macOS/Linux 那串的差别,并按「现象—确认—处置—验证—排除」的顺序讲 README 单独记下的那条 npm install 报 ERR_INVALID_ARG_TYPE 的已知问题。
十四个可选密钥:每个解锁什么,不加会退到哪
OpenMontage 的 README 在 .env 段列了 14 行配置,原文强调 every key is optional。本文按注释逐行拆开这 14 行各自解锁什么能力,再回到零密钥能力表,说清每一类不加密钥时会退到哪条免费路径,以及为什么不能拿 .env 猜自己的真实能力边界。
从一段你喜欢的视频开始:参考视频入口给你回什么
OpenMontage 的 README 主推「从一段你已经喜欢的视频开始」。本文拆开这条入口的四项返回承诺,落到 documentary-montage 的 manifest 里 reference_input.supported 为 false 这个可核查的开关上,说清它在哪条流水线上不成立,以及成本估算该怎么读。
Backlot 活体故事板:把审批闸做成一块本地看板
OpenMontage 的 Backlot 是一块随流水线自我填充的本地看板,README 把它定位成「看制作实际在做什么」。本文按 README 原文拆它的三条命令、逐场景样片接触表这道真正的审批闸、上墙的成本数字性质,以及我们没有运行过它因而不能说的那部分。
五个 agent 平台各有一个配置文件,都指向同一份契约
OpenMontage 为 Claude Code、Cursor、Copilot、Codex、Windsurf 各准备了一个配置文件,五份文件最后都指向同一份 AGENT_GUIDE.md。本文从这个设计讲起,说清它为什么必须这么做、契约里真正约束了什么、以及这种约束的性质是什么。
架构:编排器是你的编码助手
这个项目最反直觉的设计是「没有代码编排器」——Python 只提供工具和持久化,创意决策、编排逻辑、评审标准全在 YAML 与 Markdown 里。这一组拆 Rule Zero 那条「所有制作必须走流水线」的硬规则、三层知识架构怎么分 723 个文件,以及 config.yaml 逐键读。
「你的编码助手就是编排器」:十一步流程图逐段读
OpenMontage 的 README 首页有一张十一格的流程图,很多人当宣传图翻过去了。本文逐格把它对回仓库里的文件与字段:哪一格读 YAML manifest、哪一格读阶段导演 skill、哪几格才真有代码在执行、哪一格对应 config.yaml 的默认值,以及这张图与 Rule Zero 之间可核查的差异。
Rule Zero:所有制作都必须走流水线,五步与五条禁令
OpenMontage 的 AGENT_GUIDE.md 里有一节 Rule Zero,要求任何视频制作请求都必须走流水线,给了五个必做步骤和五条禁令。本文逐条拆这十条,说清每一步要落到哪个文件、哪个字段,以及这些条文的性质——它们是写给模型看的约束,不是代码里的闸门。
三层知识架构:723 个 md 文件是怎么分层的
OpenMontage 把知识切成 Layer 1 tools/ + pipeline_defs/、Layer 2 skills/、Layer 3 .agents/skills/ 三层。本文按实读计数拆开这 723 个 md 文件的分布,说清每层回答什么问题、三层靠 agent_skills 字段和 Rule Zero 怎么串起来、以及你想改东西时该动哪一层。
Python 只提供工具和持久化:编排逻辑为什么不写在代码里
OpenMontage 把编排逻辑、创意决策、评审标准全部搬出 Python,放进 YAML manifest 和 Markdown skill。本文从 AGENT_GUIDE 的原文分工、lib/ 与 tools/ 的实读清单、723 个 skill 文件的计数,说清这条分界线划在哪里、改行为要改哪个文件,以及这种设计要你付出什么代价。
`skills/` 的四个分区:core / creative / meta / pipelines 各管什么
OpenMontage 的 skills/ 目录有 156 个 Markdown,分成 core、creative、meta、pipelines 四类。本文按实读的文件清单说清每个分区装什么,并落到 documentary-montage.yaml 的 required_skills 与阶段 skill 字段,看 manifest 怎么引用它们。
OpenMontage 的 `config.yaml` 全文逐键读:LLM、预算、检查点、输出、路径
OpenMontage 把流程写在 YAML 和 Markdown 里,唯一一份全局配置只有五段三十来行。本文逐键读这份 config.yaml:默认 provider 是谁、预算默认为什么是 warn 而不是 cap、checkpoint 策略与路径段里那处重复的默认值,以及哪些键 README 根本没提。
十条「不要这么做」:一份写给 agent 的负面清单
OpenMontage 的 AGENT_GUIDE.md 最后一节叫 What Not To Do,十条全是禁止句。本文逐条拆开这份负面清单,说清每一条在拦什么行为、在仓库里对应哪个字段或哪个默认值,以及为什么这类系统的契约必须写成禁止式,而不是正面规范。
OpenMontage 的目录与 README 架构图对不上:五个 tools 子目录没写进去
照着 OpenMontage README 的目录树去仓库里找文件,会漏掉 tools/ 下的五个子目录和根目录下的两个目录。本文把 README 架构图与实读目录逐层摆在一起,指出差在哪几处、哪些计数吻合、哪些不吻合,以及为什么治理数值反而是对得上的。
加一个工具四步、加一条流水线三步:OpenMontage 的扩展契约
OpenMontage 的 Contributing 只给了七行清单:加工具四步、加流水线三步。真正的门槛不在这七行里。本文把这两条清单放回三层知识、Rule Zero、registry 自动发现、预算审批默认值和渲染运行时锁定这几处可核查的锚点上,说清扩展时哪些是形式要求、哪些是契约文本约束。
流水线:manifest 与阶段契约
十一条流水线各产出什么、README 表格 11 行与正文「12 条」和目录里 13 个 yaml 是怎么对不上的、统一的七段阶段流、一份 manifest 有哪些字段、一个阶段的八个字段,以及不用付费视频模型也能出真素材片的纪录片蒙太奇路径。
十一条流水线各产出什么:一张表配决策路径
OpenMontage 的 README 用一张十一行的表列出各条流水线的产出物与适用场景,但 Best For 一列有明显重叠,照着挑很容易挑错。本文把表原样摆出来,按「素材从哪来、画面里有没有人、手里有没有长素材」三个轴重排成决策路径,再落到 manifest 里能核实的字段上。
表里 11 行、正文说 12 条、目录里 13 个:OpenMontage 数字对不上的那条流水线
OpenMontage 的 README 表格列了 11 条流水线,正文却写 12 条,而 pipeline_defs/ 里躺着 13 个 yaml。这篇逐个数清三组数字,指出差额落在 framework-smoke 和 character-animation 两处,并给出按 manifest 字段自查流水线的动作。
OpenMontage 的七个阶段:research → proposal → script → scene_plan → assets → edit → compose
OpenMontage 的 README 用一行箭头写死了阶段流。本文把它落到 pipeline_defs/documentary-montage.yaml 的实读字段上:阶段靠 produces 与 required_artifacts_in 相连、一个阶段有哪几个键、打回与修订上限写在哪、命名哪里对不上。
一份 manifest 有哪些字段:从 `stability: beta` 说起
OpenMontage 的流水线流程写在 pipeline_defs 下的 YAML manifest 里。本文以实读 documentary-montage.yaml 前 70 行为样本,拆开顶层元信息、reference_input、orchestration 与 required_skills 各自落到哪个具体值。
一个阶段的八个字段:produces、review_focus 与 success_criteria
OpenMontage 的流水线 manifest 里,真正决定一个阶段怎么跑的是 stages 下那八个字段。本文以 documentary-montage 的 idea 阶段为样本,拆开 produces、tools_available、review_focus 与 success_criteria,说清后两者差在哪、阶段之间的 artifact 依赖靠什么串起来。
检索优先的纪录片蒙太奇:不用付费视频模型也能出真素材片
OpenMontage 的 documentary-montage,是 README 那张流水线表里唯一一行把「检索」而不是「生成」写进产物描述的。本文照抄它 manifest 里的 description、预算、修订上限与第一个阶段的字段,说清「不用付费视频生成 API」这条路具体靠哪几个 provider 撑住、哪些环节仍然要你自己批。
不是每条流水线都吃参考视频:`reference_input.supported` 这个字段
OpenMontage 主推「从参考视频开始」,但 documentary-montage 的 manifest 里 reference_input.supported 为 false。本文说清这个字段在哪一层、怎么自己核查,以及同一份 manifest 里还有哪几处同样写死的能力边界。
三本风格 playbook 控制什么:排版、配色、动效、音频与质量规则
OpenMontage 的 Style System 给了三本内置 playbook 和一句职责清单,但 playbook 实际内容我们没读过。本文把排版、配色、动效、音频、质量规则五维对回可核查的位置:manifest 的 palette 与 music plan 字段、extensions 里唯一那个 false。
八个平台档位其实只有五组分辨率
OpenMontage 的 README 列了 8 个平台输出档位,去重之后只有 5 组分辨率,竖屏三家完全共用一组。本文把这张表逐行拆开,对上 config.yaml 里 default_resolution / default_fps / default_crf 的实际默认值,说清这张表给了什么、没给什么。
供应商与两套合成运行时
15 个视频 provider 分云 API、本地 GPU 与素材库三条路,TTS 到底是 5 个还是 4 个(README 自己两处说法不一),Remotion 与 HyperFrames 的默认分工与各自边界,以及前置要求写 Node 18+ 而 HyperFrames 标 Node ≥ 22 这处矛盾。
15 个视频生成 provider:云 API、本地 GPU 与素材库三条路
OpenMontage 的 README 列了 15 个视频生成来源。本文把这张表按 Cloud API / Local GPU / Stock 三类拆开,说清网关型路径、Kling 为何出现两次、`VIDEO_GEN_LOCAL_MODEL` 的取值枚举,以及为什么查能力要跑 registry 而不是数这张表。
11 个图像来源,以及为什么 ManimCE 被放进了这张表
OpenMontage 的 README 在图像生成一栏列了 11 个 provider,最后一行是做数学动画的 ManimCE。本文按 Type 把这 11 行拆成四类,说清 ManimCE 为什么算图像来源、这张表和架构图里的 9 个工具是两套计数口径,以及静态图在没有视频 provider 时会走到哪条渲染路径上。
OpenMontage 的 TTS 到底是 5 个还是 4 个:README 自己两处说法不一
OpenMontage 的 README 在折叠块里写 TTS 有 5 个 provider,架构图里 tools/audio/ 那行却写 4 TTS providers。本文把两处原文摆出来,顺便讲清这类计数差异该怎么读,以及决定用哪个 TTS 的其实是 lib/scoring.py 里那套七维权重,不是清单有多长。
音乐三家、后期七件、增强四件:一直免费的那部分
OpenMontage 的供应商清单里,音乐只有 3 个云 API,后期 7 件被 README 标注为 always available、always free,增强与分析各 4 件点的是具体开源项目名。本文按 README 的表逐栏数清楚哪几栏需要密钥、哪几栏不需要,并指出架构图的 13/9/4 与三张表的 15/11/5 不是同一个计数口径。
WhisperX 词级时间戳与 CLIP 检索:四个分析工具串起了哪些能力
OpenMontage 的 Analysis 一栏只有四行,却串起了字幕、素材检索和渲染后自检三条链路。本文从 README 的四行分析工具表出发,落到 documentary-montage.yaml 里的 budget_default_usd、custom_tools、reference_input 等具体字段值,说清词级时间戳和 CLIP 检索各自接的是哪一头。
OpenMontage 两套合成运行时怎么选:默认分工与各自的表达边界
OpenMontage 在提案阶段就要在 Remotion 和 HyperFrames 之间二选一,并锁进 render_runtime,之后静默切换算治理违规。本文按 README 原文拆两者的默认分工、Node 18+ 与 Node ≥ 22 的版本落差以及安装期的不对称,给出一条纸面上的决策路径。
OpenMontage 的 Node 版本口径:前置要求写 18+,HyperFrames 那行标的是 ≥ 22
OpenMontage 的 Quick Start 把 Node.js 18+ 列为前置条件,而 README 后面的合成运行时表里,HyperFrames 那一行标的是 Local (Node.js ≥ 22)。本文把这两处原文摆到一起,说清差异落在哪、什么时候真的会碰到它、动手前怎么确认自己处在哪一档。
静默切换运行时算治理违规:`render_runtime` 是怎么被锁住的
OpenMontage 把合成运行时当成需要锁定的决策,而不是可以随手改的配置项。本文从 README 那句 governance violation 原文出发,拆开 render_runtime 与 edit_decisions 的分工、两处 Node 版本标注的差异、config.yaml 的输出默认值,以及这条规则真实的约束力边界。
两条命令查清你到底有什么:OpenMontage registry 的三个方法
OpenMontage 的 README 列了一长串 provider,但表上有的不等于你这台机器上能用的。本文按仓库文档拆开那两条 registry 查询命令、三个方法的调用形式、AGENT_GUIDE 里 preflight 的强制条款,以及几处 provider 计数口径的差异,说清为什么要用命令而不是读表。
生产治理:这个项目最硬的部分
七维评分权重、幻灯片风险的六个维度与四档判定、八种交付承诺里哪两种不许退回静图、min_motion_ratio 那行 0.7 的注释、五道质量闸、渲染后自检、预算的四个配置键与决策审计链路。这一组的数值全部来自源码,不是 README 的形容词。
★ `min_motion_ratio: 0.7` 那行注释:什么才算「真实动效」
OpenMontage 的 lib/delivery_promise.py 里,motion_led 这一行把动效比例下限定在 0.7,注释把「真实动效」反向定义为「不是 Remotion 幻灯片」。本文顺着这个数字,讲清它在哪、和另外三档差在哪、被谁在什么阶段拦一次,以及你该不该把片子标成 motion_led。
八种交付承诺:哪两种不许退回静图
OpenMontage 在选 provider 之前先把这条片子「承诺交付什么」写死。本文按 lib/delivery_promise.py 的实读内容拆开 PromiseType 的八个取值、PROMISE_RULES 的三列规则与 min_motion_ratio 的五档取值,说清哪两种承诺不允许退回静图。
估算、预留、对账:$10 上限与 $0.50 阈值背后的四个配置键
OpenMontage 的 README 把预算控制讲成四步,仓库根目录的 config.yaml 里它其实是五行 YAML。本文逐行拆 budget 段的每个键、指出默认模式是 warn 不是 cap、补上 README 没写的两项,并说明为什么七维评分里 cost efficiency 只占 10%。
决策审计链路与 20 个 artifact 契约
OpenMontage 的决策日志跨阶段持久化,被取代的 checkpoint 会归档,降级必须显式批准。本文落到 slideshow_risk 的 render_runtime、delivery_promise 的 approved_fallback 三态与 schemas 目录 20 个 artifact 契约上。
六个维度、0-5 分、四档判定:OpenMontage 怎么防「会动的 PPT」
OpenMontage 把「视频做出来像幻灯片」这个失败模式写成了一个打分模块。本文照抄 `lib/slideshow_risk.py` 的 docstring,逐条解释六个维度在问什么、2.0/3.0/4.0 四档判定怎么读、空场景为什么直接判 5.0 失败,以及这个分数在合成前的质量闸上卡在哪一步。
五道质量闸:从人类审批到渲染前拦截
OpenMontage 的 README 列了五道质量闸,但它们并不在同一个位置上咬合:素材探测在创意决策之前,人类审批落在 checkpoint 写入这一步,交付承诺和幻灯片风险在合成前拦截,自检在渲染之后。本文按它们在链条上的先后顺序逐道拆开,并落到源码里能查到的具体阈值上。
渲染完还要自检:ffprobe、四点抽帧、音量分析与承诺核验
OpenMontage 把渲染完成当成新一道闸的开始。本文拆 README 列的渲染后自检五项——ffprobe 校验、4 个位置抽帧、音量分析、交付承诺核验、字幕存在性检查,并落到 lib/delivery_promise.py 里 min_motion_ratio 0.7 与 quality_floor 默认 presentable 这些真实数值上,说清它查什么、不查什么。
OpenMontage 的 `scoring.py` 里还有第二套评分,README 一个字没提
OpenMontage 的 README 只讲了 provider 选择那套 7 维评分,但 lib/scoring.py 里还有第二套加权求和,维度名完全不同。本文对照两处源码行号,说清我们能确认什么、不能确认什么,以及读这类「文档即产品」的仓库时该怎么把 README 当入口而不是全集。
OpenMontage 七维评分权重 30/20/15/15/10/5/5:文档与代码逐项吻合
OpenMontage 的 README 说每次工具选择都跑一个 7 维评分引擎,权重 30/20/15/15/10/5/5,这一次它和 lib/scoring.py 第 38-44 行的实现逐项对得上。本文把两处源码摆出来,讲清这组权重表达了什么取向、同一文件里那套 README 没提的评分,以及「对得上」的边界。
OpenMontage:README 的数字与仓库实况,一张十行核查表
README 自称 15 个 JSON Schema、100+ 工具、700+ skill 文件,这些数字有的和实读目录对得上,有的对不上。本文把十条可核查的说法逐行摆到实读结果旁边,并指出真正对得上的是治理数值、对不上的是计数类描述。
想让 Agent 真正接管一条完整工作流,而不只是回答问题?
从数字员工到 Agent 工程落地,站内有成体系的教程与课程。