开场:一支水彩 MV,没用任何视频模型
2026 年 9 月 22 日,Anthropic 发布了 Claude Opus 5.5。之后一周,社交媒体上冒出一大批它”画”出来的动画。传得最广的是一支 156.6 秒的 MV,叫《I’m Upping My P(doom)》。画面是老式绘本的质感:水彩纸纹理、微微抖动的毛笔墨线、踩着节拍的动作和很多表情戏。全程没有调用生图或生视频模型。
还有创作者用 Opus 5.5 前后做了 100 多支短片,挑出 39 支开源,每支代表一种风格:水墨、皮影、油画厚涂、80 年代赛璐璐、像素 RPG、60 年代间谍片头、纸片立体书。这些片子同样没有用视频生成模型,也没有用素材库画面。
问题就来了。Opus 5.5 是一个语言模型,它输出的只有文字。这些画面是从哪里来的?
一、它输出的是代码,不是像素
有人以为 Claude 也有了视频模型,其实没有。Opus 5.5 能读文字、图片和文件,输出只有文字;Anthropic 的发布文章里也没有提到任何视频能力。那些视频,全是它写的程序画出来的。
视频本质上是一串连续播放的静态图片。每秒 30 帧的话,10 秒就是 300 张图。所以做一段视频,要回答的问题其实只有一个:第 N 帧应该长什么样。Opus 5.5 做的,就是写一个能回答这个问题的程序。给这个程序任意一个时间点 t,比如第 2.5 秒,它就能画出这一刻的完整画面。
画面写好以后,还需要一台”摄像机”。这台摄像机是无头浏览器,也就是没有界面、在后台运行的 Chrome。它拍摄时从不按播放键,而是先把时间拨到第 0 秒截一张图,再拨到第 1/30 秒截第二张,就这样一帧一帧往下拍。最后用 FFmpeg 把几千张截图按顺序接起来,混入声音,输出 MP4。P(doom) 那支 MV 用的是每秒 24 帧,156.6 秒一共约 3760 帧。
用什么”画笔”,决定了画风。排版、信息图和界面适合用 HTML、CSS 和 SVG;像素画、线条和粒子适合 Canvas 2D;3D 场景和光影特效用 WebGL 或 three.js;那种水彩、毛笔的手绘质感,来自 p5.js 加上 p5.brush,一个给 p5.js 加水彩和毛笔笔触的库。P(doom) 用的就是后者。
这套方法有一条硬规矩:画面只能由时间决定。具体说就是三条禁令:不能读取当前时间,不能用没有固定种子的随机数,渲染时不能联网。守住这三条,同一份代码每次都渲染出完全相同的视频,任何一帧都能单独重渲,几千帧也可以分给多个浏览器进程同时渲染。P(doom) 的渲染脚本就支持多个 worker 并行,还能断点续渲。
开源项目 shipvideo 换了个思路:不靠模型自觉守规矩,而是往页面里注入一个虚拟时钟,把动画帧回调、定时器、Date 和 CSS 动画全部接管,由渲染器统一拨动。两种做法目的一样,都是让时间由渲染器说了算。
二、为什么偏偏是现在
用代码画画一点也不新。Processing、p5.js 和生成艺术已经存在十几年,Remotion 这种用代码做视频的框架也有好几年了。变的是模型能不能把这件事做到可看的程度。
Anthropic 没有说过 Opus 5.5 有”绘画能力”。官方发布文章讲的重点是写代码、操作电脑和知识工作,还提到有测试者让它无人值守连续干了 18 个多小时。官方的 Opus 5.5 使用指南里也写了两点:它在长时间、多步骤的工作上比 Opus 5 更能坚持,早期测试者让它连续跑了几个小时;它读图表、示意图和截图比 Opus 5 更准。
把这几项放在一起,大致能解释”突然会画”。用代码做一支片子,模型要过三关。
第一关是写得出。一支片子要写几千行绘图代码,角色、镜头、转场、调色板都要在代码里保持一致。
第二关是看得懂。代码写完,它要把某几帧渲染成图片,自己看画面对不对:角色是不是太小,转场有没有跳帧。
第三关是坚持得住。写代码、渲染、看图、返工,一轮一轮地来,一支片子要连续跑三十到六十分钟。
写得出、看得懂、坚持得住,以前的模型每一样都能做一点,但三样连起来做,往往做着做着就跑偏了。
有一个细节最能说明”看得懂”这一环。P(doom) 的作者发现,做 MV 时没有人要求,Claude 就会把特定的帧渲染成一张帧表(contact sheet),检查画面随时间推移是否说得通。他后来把这一步写进了自己的起步包,说它能纠正很多错误。
三、画得好不好,看规则书
同样是 Opus 5.5、同一首歌,P(doom) 的第一版和最终版差别很大。第一版作者只把歌词和音频交给 Claude,让它做一个可爱的动画,推理档位是 Medium。结果是扁平色块、粗描边,画面里堆满”AGI?””LOSS”这类文字标签,接近 2000 年代的 Flash 风格。第二版他提了几条要求:使用 p5 笔刷,每个场景都要有看头,每个场景都转场过渡到下一个。这一轮跑了约 45 分钟,才有了现在的水彩绘本。网上常说这支 MV 是”一句话一次成型”,实际上做了两轮。
可见画得好不好,很大程度上取决于交给它的方法和约束,也就是一份规则书。PDoomVideo、ClaudeAnimationBase 和 lemo-opuscar 这几个开源项目都把规则写成了文档,写法各不相同,但有几条是共通的。
第一条是先分镜,后代码。P(doom) 第二轮里,Opus 先写了一份 STORYBOARD.md,把整片构思成一场失控的舞台剧:幕布开场、幕布谢幕,P(doom) 温度计作为舞台道具,每次副歌被打气筒打高,从 8 到 34、61、86,最后到 99.9。分镜还规定了画面少用字,只用少量 FOOM、CHOMP 这样的拟声大字,因为底部已经有卡拉 OK 字幕。先分镜的理由很实际:在故事和分镜这一步改方向只要几分钟,全片渲完再改要几个小时。
第二条是把媒介规则写死。用什么笔刷、什么调色板、画面里能不能出现文字,都提前规定。ClaudeAnimationBase 的指南定了三个目标:手工感,像有人一帧帧手画的,笔触、抖动的墨线、平面 2D、不写字;活着,画面里一直有东西在动,表情是演出来的,角色要够大;一个整体,是一部短片而不是一堆片段,先规划再画,每个场景都连到下一个。写得更极端的,是网上流传的一段像素动画提示词。它规定了 160×90 的固定逻辑分辨率,所有绘制对齐到整数坐标,用约 32 色的固定调色板,角色每一格像素的位置都写明了,连画面抖动都要从固定的数组里读,不用随机数。不过它做出的是一个在浏览器里实时循环播放的 HTML,不是导出的视频文件。
第三条是节奏按观众来算。ClaudeAnimationBase 的指南特别提醒,节奏是模型最常出错的地方。代码是模型自己写的,它知道剧情,但观众只看一遍。所以动作可以快,意义要停留在画面上足够久。有音乐时,lemo-opuscar 要求音乐网格先于动画:先写好速度、小节和每个卡点落在哪一拍,画面再卡上去。
第四条是给一个对标。比如”像 60 年代 007 的片头”,只学它的构图、节奏、镜头和配乐结构,不抄角色和画面。lemo-opuscar 的经验是,对标对质量的提升比任何一条规则都大。官方使用指南里有一条相近的建议:做设计时,与其说”避免普通的样子”,不如把不想要的具体样式一条条列出来,因为模型没有方向时会退回几种默认风格。
第五条是强制自检,并且真的去看。也就是前面说的那一步:渲染帧表,把不同时刻的画面拼在一张图里,看整体是否说得通。lemo-opuscar 在此之外还检查声音:每句配音用语音识别转写回来核对,响度统一到 −14 LUFS,检查黑帧。
最后是长片的分工方式。P(doom) 第二轮被 Opus 拆成 9 个章节,每章一个代码文件。它还给并行的子 agent 写了一份简报 ANIMATION_GUIDE.md,每个子 agent 只改自己负责的那一章,在共享文件里发现 bug 只报告、不动手改。
推理档位要开多高,这几个项目的经验不完全一样。ClaudeAnimationBase 的说法是,档位越高,模型把场景做得越”铺张”、越注重细节;lemo-opuscar 则说默认用 High 档效果就非常好,3D 场景比 2D 费 token 得多。
四、你可以怎么上手
想自己试,可以从轻到重选三条路。
最轻的是一段提示词、一个 HTML 文件,也就是前面那段像素提示词的做法:原生 JavaScript 加 Canvas 2D,单个自包含页面,不用任何外部资源,把画面的物理规则写到足够细。做出来的是浏览器里实时播放的动画,要导出视频还得自己接上逐帧渲染。
第二条是 ClaudeAnimationBase,适合做手绘角色动画。它自带 Clawd 角色、31 种表情、绘画辅助函数、时间线和渲染脚本,需要 Node.js、Chrome 和 ffmpeg。克隆下来,在 Claude Code 里说一句”Read ANIMATION_GUIDE.md, then make a 15-second video of Clawd trying to catch a butterfly”就能开工。角色也可以换成你自己的,Clawd 本身没什么特别之处。要注意 p5.brush 的水彩填充很吃显卡,没有独立显卡时,渲染速度要按”每帧几秒”算,可以让模型换掉水彩填充。
第三条是 lemo-opuscar,适合做带声音的完整短片。它把方法写成三份文档:导演方法 DIRECTOR.md、技术方法 TECHNIQUE.md,以及 39 种风格各自的 STYLE.md,配乐用免费采样库,配音用本地 TTS。你只要说”用水彩风格做一支 45 秒的片子,讲我家经营的咖啡园”,它会在两处停下来找你确认,一次看故事和分镜,一次看风格帧。一支片子大约要跑 30 到 60 分钟,需要 Node 20+、Chrome、ffmpeg 和 Python 3.11+。项目里还有一个很实用的填空模板,要你交代风格、时长、主题、故事、节奏、对标、素材和画幅,并且先看分镜和画面再做全片。第一支建议做 30 到 45 秒,短比长稳。
说到这里,可能有人会想到 HyperFrames 和 Remotion。它们是现成的”摄像机”,解决的是怎么把网页确定地、逐帧地变成视频,画什么还是要靠你和模型。HyperFrames 由 HeyGen 开源,视频就写成普通 HTML,动画默认用 GSAP;Remotion 用 React 组件写视频,出现得更早。做关键词排版、图表和讲解动画,用它们更省事;做手绘角色这类自己掌管画布的风格,上面几个项目都没有套框架。HeyGen 自己也提到过,他们早期试过 Remotion,发现框架限制加得越多,智能体的产出越保守、越雷同,换回纯 HTML 后创意才回来。这是 HeyGen 一家的经验,可以参考。
五、它做不好什么
代码视频适合动效、图表和讲解,写实画面仍是明显短板。动物和人脸近看只是粗糙的几何形状,这类镜头还得靠视频模型或实拍;太空这类场景常常亮得发白,要在提示词里专门要求真实的颜色。
成本也不低。按 API 计费,Opus 5.5 是每百万输入 Token 4 美元、每百万输出 Token 20 美元,一支片子要连续写几千行代码、反复渲染返工,消耗可想而知。再加上渲染时间,手绘水彩这类风格在没有独立显卡的电脑上会很慢。
审美依然要人把关。这些动效本身未必出色,难得的是它能做出来;决定展示什么、把风格做到位仍然是难点,给它一套素材库和风格指引会好很多。
和 Seedance、可灵这类视频模型相比,两条路线正好互补。代码视频的文字每个都准,改一处只动一行代码,和旁白对齐能精确到帧,同样的输入每次渲染结果完全一样;视频模型擅长写实的人脸、动物和画面质感。两者也可以混用,让 Claude 当编排器,通过 MCP 调用视频模型,再把生成的片段剪进自己的时间轴。
结尾
回头看那支水彩 MV,”画笔”其实是浏览器的,p5.brush 负责笔触,Chrome 负责落到像素上,FFmpeg 负责拼成视频。Opus 5.5 做的是导演和程序员的活:写分镜、写绘图代码、渲染出帧表自己检查、再回去改。
而决定它画得好不好的,很大一部分在你交给它的那份规则书里:先分镜,媒介规则写死,节奏按观众算,给一个对标,强制自检。这也是 PDoomVideo、ClaudeAnimationBase 和 lemo-opuscar 这几个开源项目最值得看的地方。
参考资料:
- Claude Opus 5.5(Anthropic 官方):https://www.anthropic.com/claude-opus-5-5
- Claude API 定价:https://platform.claude.com/docs/en/about-claude/pricing
- PDoomVideo(I’m Upping My P(doom) 源码):https://github.com/JohnHeibel/PDoomVideo
- ClaudeAnimationBase:https://github.com/JohnHeibel/ClaudeAnimationBase
- lemo-opuscar:https://github.com/lemomo-ai/lemo-opuscar
- HyperFrames:https://github.com/heygen-com/hyperframes
- Remotion:https://www.remotion.dev/docs/the-fundamentals
