写代码,让模型输出 HTML/CSS、SVG、Canvas、Three.js 程序,再由 Remotion 渲染成视频——这条路线绕开了逐像素扩散的算力消耗,换来的是可编辑、可复用、精确到时间轴的控制。代价是:模型必须写出真能跑起来的程序。

10 月 20 日挂上 arXiv 的 Code2Video-Compass 基准,把这条路拉进了考场。复旦大学团队用 2,104 个任务横评 15 个多模态大模型,得出的结论比排座次更有意思:跑得通,和跑得好,是两件事。

论文见 arXiv:2610.28416,项目页在 code2video-compass.github.io。

基准怎么搭的

任务分两条来路:385 个独立任务,加上从 573 个源视频派生的 1,719 个对齐任务,覆盖 T2V、I2V、V2V 三种输入。分类照动效设计的实践拆成 10 个大类、24 个子类,每个任务再标注三个复杂度维度——构建复杂度(标准图元组合 → 自定义几何 → 程序化模拟)、动态动画复杂度(分镜编排 → 跨元素协同 → 并发复杂运动)、状态依赖复杂度(相邻阶段 → 间隔阶段 → 跨多次变化的长程依赖),每维三档。

评测是双层的:12 项客观指标加 5 项主观指标。客观侧看交付率、平均输出 token、视频质量、文本对齐和参考保真;主观侧由 Gemini 3.8 Flash 当裁判。裁判本身也做了校验——6 个模型 300 份输出各评 3 次,指令遵循与整体视频质量上,裁判均值与三名人类评分者的 Pearson 相关系数分别是 0.796 和 0.783,ICC(A,3) 达 0.983 和 0.970。

真正计分用的是 1,054 个任务的固定子集(360 T2V、347 I2V、347 V2V)。每个模型单次 API 调用出代码,不给执行反馈,也不给重试机会——这正是真实生产里最苛刻的设定。

排名背后真正的看点

论文自己的评测里,Claude Opus 5.5 三个设定的平均排名分别是 1.60、1.08、1.15,Claude Sonnet 5.5 紧随其后,闭源阵营包揽了全部三档的前三。开源侧,DeepSeek-V4.1-Flash 在 T2V 领先(平均排名 7.35),MiMo-V2.6-Pro 拿下 I2V(7.50)和 V2V(5.92)。

但更值得看的是交付率的跨度:T2V 上从 0.52 到 0.94,I2V 从 0.59 到 0.96,V2V 从 0.69 到 0.97。MiniMax M3 在 T2V 上的交付率只有 0.519,Claude Opus 5.5 是 0.944。

于是有了这篇论文最锋利的一处:只看成功渲染的视频,GPT-6 Astra 的整体视频质量均值是 4.19,GPT-6.1 Sol 是 4.15,都高于 Claude Opus 5.5 的 4.04;但把执行失败算进去的全量均值里,Claude Opus 5.5 以 3.87 居首,GPT-6 Astra 和 GPT-6.1 Sol 分别是 3.62 和 3.61。写出一段漂亮却跑不通的代码,在生产里等于零。

失败长什么样

论文分析了 2,756 个错误案例,失败画像明显分化。GPT-6 Astra 有 83.4% 的失败来自编译错误加上缺失 API 或依赖包;Qwen3.8-Max 光是缺失 API 和依赖包就占 59.7%。反过来,Claude Opus 5.5 有 75.0% 的失败是运行时异常,GLM-5.3-Flash、DeepSeek-V4.1-Flash、MiMo-V2.6-Pro 也都过半是运行时异常。

编译不过和跑起来崩了,是两种完全不同的能力缺口:前者考语法与依赖管理,后者考运行时语义。

复杂度曲线的走向也不一样。从 L1 到 L2,构建复杂度和动态动画复杂度下,SF(结构保真)分别掉了 14.38% 和 12.82% 的分数区间,说明中等难度就已经吃力;而状态依赖复杂度在 L2 到 L3 的下降更陡,15 项指标全线走低——长程状态一致性才是真正的硬骨头。

烧钱不等于烧得好

成本侧的对比更直接。GLM-5.3-Flash 每次请求用掉 90.0k 输出 token,GPT-6 Astra 只用 13.9k,质量分却是 2.94 对 3.62。GPT-6.1 Sol 和 GPT-6 Astra 质量几乎相同(3.61 与 3.62),GPT-6 Astra 的估算 API 成本却约为前者的 6.1 倍。Claude Opus 5.5 拿下最高质量 3.87,成本反而低于 GPT-6 Astra。

这些都是论文自己的评测,社区目前还没有第三方复现,数据该怎么读还留着讨论空间。

所以呢

程序化视频生成的价值不在于替代扩散模型,而在于把视频变成可版本管理、可局部重渲的工程产物。但这个前提是模型生成的代码必须能跑。

这份基准真正立起来的标尺,是把"交付率"和"质量"分成两栏来记。这跟代码 agent 评测里常用的 pass@1 不是一回事——pass@1 给你一次机会,交付率告诉你这机会有多少次是无效的。当模型开始承担生产系统的编排角色,可靠性不再是附加项,而是乘数。