最近,我在自己的信息流里频繁刷到一种很有意思的创作方式:不打开传统剪辑软件,也不逐条生成短视频,而是让大模型编写代码,再把代码渲染成视频。

看了几支作品以后,我的第一反应是:这个我是不是也可以试试?

于是,我给自己找了一个不算轻松的题目:给梁博的《日落大道》做一支完整动画MV。不是把歌词放在背景上,也不是让几张插画轮流淡入淡出,而是要有统一的主角、完整的视觉旅程、连续的动作和能把场景连接起来的运镜。

最终,我得到了一支约4分35秒、1920×1080、30fps的动画。主要视觉采用Q版手绘剪纸贴纸风格:蓝色连帽衫的小男孩、夕阳、公路、夜城、纸飞机,以及从地球仪进入梦境、最后回到房间的首尾呼应。

这次让我印象最深的,并不是“AI能写动画代码”这件事本身,而是模型能否把审美、叙事、工程和修改意见组织成一个可交付的作品。

完整作品可以先看这里:《日落大道》动画MV,Claude Opus 5.5+Remotion。下面这篇文章主要讲它是怎么做出来的,以及这次实践改变了我对模型能力的哪些判断。

我为什么从Codex换到了Opus

在这次尝试之前,我先走过另一条路线:使用Codex,加上服务入口标注为“GPT 6.1 Sol”的模型,再配合Remotion制作视频。按照我自己的迭代记录,那个项目一直修改到第九个版本,才达到我愿意认可的程度。

那支作品在这里:前一次Codex+GPT 6.1 Sol+Remotion尝试。

它不是完全做不出来。更准确地说,是“能运行”与“符合我对成片的期待”之间,还隔着不少距离。有时问题出在构图,有时是动作只完成了一半,有时则是画面里每个元素都存在,却没有形成自然的空间关系。

这让我想换一个思路:不再优先追求低调用成本,直接试试我当时能用到、成本较高的旗舰模型Opus 5.5,看它能不能减少反复解释和返工。

结果超出了我的预期。就这次创作而言,Opus在美术设定的完整性、对歌词意象的展开、长任务中的风格维持,以及理解修改意见的能力上,都给了我更好的体验。我主观上认为,它在这类综合创作任务中的整体表现明显优于前一次尝试。

但这里必须划清边界:这是我的项目体验,不是严格的模型基准测试。两个项目的题材、提示词成熟度、素材和人工反馈并不完全相同;我使用的又是中转服务,入口展示的模型名称不能自动等同于可审计的底层模型身份。因此,本文沿用我使用时的名称,不据此讨论官方排名,也不把个人体验写成“任何任务都更强”的结论。

这不是传统意义上的“文生视频”

很多人听到“AI制作MV”,会想到让视频生成模型输出若干短片,再把它们剪到一起。这个项目不是那条路线。

Remotion是一套基于React的程序化视频工具。可以把它理解为:画面由组件描述,时间由帧控制,最终交给渲染器生成视频。人物、道路、灯光、文字、遮罩和镜头变化,都可以成为代码里的对象与参数。

在本项目中,大模型主要负责理解任务、构思画面、编写和修改React/TypeScript/SVG代码;Remotion及浏览器渲染环境负责把这些代码变成画面;后续使用FFmpeg拼接分片并封装原曲音轨。

所以,“全片由Claude Opus 5.5+Remotion生成”指的是视觉和动画工程主要通过这条工作流完成,不代表歌曲也是模型创作的,也不代表我只输入了一句话、完全没有参与导演和审片。

音乐使用的是我提供的原始音频,歌词来自配套LRC文件。我提供了角色参考、任务要求和大量修改意见。人的工作并没有消失,而是从逐帧操作,转向确定标准、审核方向和指出不合理之处。

真正有效的起点,不是直接要求“生成完整MV”

这次我没有让模型一上来就写四分钟的最终动画。我在任务书里把工作拆成了角色设计、分镜设计和完整视频制作三个阶段,并要求每个阶段先交实际图片,再由我确认。

这件事后来证明很重要。长视频最大的风险不是某一帧不好看,而是错误的美术方向一旦进入全片,返工范围会迅速扩大。

模型最初设计过一个戴飞行风镜、穿橙色夹克、围渐变长围巾的角色。这个方案有自己的创意,但不是我想要的主角。我随后给出蓝色连帽衫男孩的参考形象,要求贴合那种大头短肢、粗黑轮廓、蓬松黑发和简单五官的设计语言。

最终角色不是从参考图里抠出来贴进视频,而是用SVG路径重新绘制,并拆成可复用的头、躯干、手臂、腿和配饰。不同镜头通过姿势参数调整视角、关节角度、表情和持物关系,而不是每次重新生成一个长得略有不同的人。

图2:早期确认的角色设计板,展示转面、表情、动作、部件和配色。

这解决了一个很实际的问题:我不必在第十个镜头重新讨论“主角应该长什么样”,而可以把注意力放在他怎么走、看向哪里、手里拿什么、怎样与环境发生关系上。

从歌词意象,到一条能走完的视觉旅程

《日落大道》里有道路、日落、寻找、奔跑、陌生环境和黑暗。如果逐句配图,很容易变成一支“男孩一直在公路上前进”的旅游式短片。

我的要求是:可以离开现实,可以进入回忆、梦境和象征空间,但画面必须仍然服务于歌曲。

因此,项目早期形成了几个反复出现的视觉母题:书桌上的地球仪、穿过天空的纸飞机、日落中的公路,以及在“两端”或矛盾意象中出现的深蓝色分身。地球上的昼夜分界被用作视觉隐喻,让“日落大道”不再只是某个具体地名。

这里也有一个容易混淆的地方:子午线是经线,晨昏线是昼夜分界线,两者不是同一个概念。动画可以让它们在形状和运镜上产生联想,但不能在技术解释中把它们直接画等号。后续修订也专门处理了飞越经线、地球自转和夜半球展示的问题。

图3:初版分镜总览,记录的是当时的叙事提案与色彩脚本。

全片最终仍以45个镜头编号组织,但镜头编号不等于必须切镜。尤其在后期,我发现一些场景根本不需要额外转场,只需要让动作和镜头连续下去。

最典型的一段,是从楼顶看夜,到纸飞机飞来,男孩登上纸飞机,在高楼之间穿行,再越飞越高,拉远到深夜里的地球。它跨越三个分镜编号,却共用一条连续时间函数。工程里分别传入本地时间及时间偏移,让前后入口看到的是同一段运动的延续,而不是用闪白掩盖场景替换。

这比“每到一句歌词就切一张图”更接近我想要的动画。

用代码做视频,真正有价值的是“可修改”

如果把这套方法仅仅理解成“让AI写很多SVG”,其实低估了它的意义。

角色可以复用,场景也可以复用。日落大道有统一的道路透视、楼房、棕榈和路灯;夜城有确定性生成的高楼、窗灯、屋顶装饰和前后景层次;字幕有独立的布局配置;每个镜头的起止时间和衔接方式,则集中放在时间线里。

当我说“人物应该是半身侧面,而不是正面脑袋”时,修改的是视角、身体组件和裁切关系。当我说“车应该沿公路朝远处开,而不是横着滑过去”时,问题也不是换一张车图,而是换成背面造型、修正轨迹和透视缩放。

这里需要特别诚实:模型并没有一次性解决所有物理和空间问题。挡风玻璃倾斜方向、车辆朝向、晚宴方桌的透视、人物拿物和上下车动作,都曾经出过问题。我提供了截图和具体反馈,模型才逐步修正。

因此,我更愿意把这次体验描述成:它已经能承接一个复杂视觉工程,并根据具体意见持续调整,而不是“它已经完全理解真实世界,不会犯错”。

图4:分镜段落

为什么我会觉得模型差距不只是写代码能力

我当天写过一段比较情绪化的感想:“会编程,和真正具备完成复杂创作任务的能力,是两回事。”现在重新整理这个项目,我依然认同这个判断,但会把它说得更具体。

动画任务不是只要语法正确。它同时要求模型处理画面重心、角色一致性、歌词情绪、前后镜头关系、动作因果、时间长度,以及渲染环境里的工程限制。一个局部漂亮的画面,放进连续四分钟的作品里,未必成立。

我感受到的差距,主要在这些能力能否共同工作。一个模型即使能很快写出可运行的代码,如果它总是在错的构图上补细节、把不该出现的角色反复放进画面,或者忽略我真正想表达的情绪,实际创作仍然会很费力。

反过来,模型不必每个细节都一次正确。只要它能够理解“为什么不对”,找到需要修改的层级,并保持其余部分不被破坏,协作效率就会明显提高。

我也曾把相同提示词与素材用于一次DeepSeek的角色和分镜尝试。就当时得到的结果而言,Opus在人物设定、构图和视觉叙事上更符合我的审美。这是一个有限的观察,不能扩展为对某个厂商、全部国产模型或所有任务的统一结论。

看到“吊打”“遥遥领先”之类宣传时,我现在会更愿意问:是在什么任务里,交付什么结果,人工改了多少次,总共花了多少钱?对创作者来说,这些问题比一个抽象排名更有用。

我原本最想分享的感受是:相比前一次改到九个版本的经历,这次在初次完整生成后,经过两轮主要反馈,作品就已经明显达到、甚至超过了我的预期。

不过,回看完整记录,后面确实还有一次针对七处画面的定点精修。因此,严谨的表述应当是:角色与分镜先经过确认,初版成片之后进行了两轮主要修改,并继续完成了少量局部修正。不能把最终发布版说成“总共只改两次”,更不能说“一键生成”。

我的反馈也不是只有“再漂亮一点”。我会指出具体错误:分身只在表达两端或矛盾时出现;太阳要在天空里;小车必须沿透视道路向远处行驶;男孩应向房间左侧的窗边走;纸飞机飞出去之后,他不该回头,而应该朝远方挥手。

这类反馈把审美判断变成了可执行的约束。它也是成片质量的一部分来源。

120多元买到的究竟是什么

按我的使用记录,这次制作的中转调用支出是120多元人民币。这个数字是我的个人账单口径,不是官方API定价,也不是每个人复现都能得到的固定报价。

模型路由、输入输出量、上下文长度、是否命中缓存、返工次数和中转服务收费方式,都会改变最终支出。它也不包含一个明确计价的“我的审片时间”,不能理解成完整制作成本只有120多元。因此,我不会说Opus 5.5是绝对意义上“成本最高、目前最强”的模型。对我而言,它是这次愿意付更高调用成本去尝试的工具,而它交出的结果,让我觉得这笔支出值得。

便宜模型并不是没有价值。在短脚本、数据整理、简单字幕和模板化任务里,更低成本的方案可能更合理。但在一个同时要求理解、审美、长程一致性和多轮修改的项目里,单次调用价格不一定等于完成作品的总成本。我真正比较的是,完成一个我认可的作品,合计要消耗多少钱、多少时间和多少次人工纠偏。

渲染阶段,不是按下按钮就结束

代码可以预览,不代表最终视频一定正确。

这个项目用帧来控制动画,不依赖浏览器实时计时器。30fps下,约275.43秒的合成需要8263帧。项目声明使用Remotion 4.0.536、React 19.1.0和TypeScript 5.6.3,主要动画、场景和字幕都保留为可编辑源文件。

受运行环境限制,渲染采用分片方式。默认每片120帧,也就是4秒;复杂镜头会进一步缩小分片。每片先输出静音视频,再拼接画面,最后一次性混入原始音频,避免分段音轨直接拼接造成的额外问题。

验证也分层进行:关键姿势和转场抽帧检查,使用媒体工具核对分辨率、帧率、总帧数和时长,再进行亮度与冻结帧筛查,并抽样对齐解码音频。此前的音频互相关检查结果为0毫秒偏移,但这是抽样工程验证,不等同于整片逐字人声同步审听。

这些检查能发现一部分黑闪、静止和文件结构问题,却不能自动判断“这段动作是否优美”“这个透视是否合理”。后者依然需要人看。我的几轮修改,恰好说明两种检查缺一不可。

如果再做一次,我会怎样开始

我不会先要求模型“随便做一个高级感视频”,而会先明确歌曲或文稿的原始依据、画风、角色参考、字幕规则和阶段验收条件。尤其是长视频,一开始就需要把前奏、间奏和尾奏算进去,不能只给有歌词的部分配画面。

然后先拿到角色板,再看完整分镜。分镜可以粗,但要让镜头之间的运动和连接关系讲得清楚。只有在视觉方向成立后,才值得花时间完善场景、人物动作和材质。

进入制作阶段后,我会要求角色组件、镜头时间线、字幕配置和渲染脚本分开组织。这样修改一个镜头时,不需要推倒整部作品。反馈也尽量落到“方向、姿态、遮挡、透视、时间和运动”这些能核对的维度,而不只停留在抽象形容词上。

最后保留工程,而不只是MP4。对于“用代码做视频”这条路线,能修改、能复用、能重新渲染,本身就是价值。

这次经历确实让我被模型之间的差距震撼了一次,但它没有让我得出“贵的一定适合所有人”的结论。

它让我更确定的是:在复杂创作里,模型的价值不能只看能否写代码,也不能只看某次演示有多惊艳。更重要的是,它能不能把理解、审美、空间关系、工程执行和持续修改串成一条完整的生产链。

我仍然希望DeepSeek、GLM、Kimi等国内模型继续进步。这里不是希望谁赢谁输,而是希望创作者能以更低的成本,获得更可靠、更有表现力的工具。

对我而言,这支动画MV给出了一个很具体的答案:用代码做视频已经不只是技术演示,它开始能够承载完整的个人表达。当然,前提是我们愿意认真定义作品、认真看它,并认真把不对的地方改掉。

作品与技术资料

本次作品:《日落大道》MV,Claude Opus 5.5+Remotion。前次尝试:Codex+GPT 6.1 Sol+Remotion作品。

Remotion官方文档:创建项目、useCurrentFrame:按帧获取时间、renderMedia:程序化渲染。

音乐及歌词版权归相应权利人所有。发布或商业使用MV前,需要自行核查歌曲、录音、角色参考与字体等素材的授权条件。