
代码也能做视觉内容:从规则、节奏到手绘风格
一支 156 秒的水彩手绘 MV,全程没有一个生图或生视频模型:AI 写 JavaScript 逐帧画出来再合成。这篇拆开它的做法、两轮生成的差别、以及普通人怎么照着做。
有一支 156.6 秒的水彩手绘动画 MV,画面是老式绘本的质感:水彩纸纹理、微微抖动的毛笔墨线、踩着节拍的动作和很多表情戏。
它全程没有调用任何生图或生视频模型。
做法是:让 Claude Opus 5.5 直接写 JavaScript 代码,用网页画布引擎逐帧画出每一帧,在后台浏览器里逐帧截图,再用 ffmpeg 合成 MP4 并配上歌。
这个思路和主流路线完全不同,值得认真看一遍——因为它解决了一个生视频模型的老大难问题:可控性和可复现性。
为什么「写代码画画」值得关注
用生图或生视频模型做 MV,你面对的是抽卡:生成十次,挑一次能用的,前后镜头还可能风格不一致。想改一个细节,基本只能重抽。
写代码画则相反:
- 每一帧都是可定位的:第几秒出现什么,写在代码里
- 改一处不影响其他:改第三章节的配色,不会连带改掉第一章
- 风格天然一致:用的是同一套笔刷和绘制规则
- 可复现:同一次代码,跑出来的结果永远一样
这就是「工程」和「抽卡」的区别。 前者能迭代,后者只能重来。
两轮生成的差别
作者的做法很有参考价值——他不是一次成功的。
第一轮(中档推理):出来的是 Flash 风格动画。能用,但质感不对——线条太干净、太矢量,没有手绘的味道。
第二轮(调到 xhigh 档,并加了具体要求):明确要求用 p5 笔刷、场景更有趣、每个场景都有转场。约 45 分钟后得到水彩版。
这里有两个可以学的点:
1. 第一轮不要追求完美。先用默认档跑一遍,看它理解成什么样,再针对性提要求。
2. 要求要具体。「更有质感」是无效指令;「用 p5 笔刷、水彩纸纹理、线条微抖动」才是有效指令。
它怎么自己当导演
最值得看的是它的组织方式:
1. 先写分镜,把整首歌拆成 9 个章节
2. 每个章节一个独立的代码文件
3. 写一份简报,交给并行的子 Agent,各自只改自己负责的章节
这个「分而治之」的思路是关键。让一个 Agent 从头写到尾,上下文会膨胀、风格会漂移;拆成章节并行,每个子任务都小而明确,最后拼起来。
对你做长内容的启示:不管你生成的是视频、文档还是代码,先拆结构、再并行填充,比一次性生成质量高得多,也稳定得多。
起步包里的那份规则书
作者开源的模板里附了一份规则书,这几条是核心:
- 只用笔刷,不用矢量填充
- 画面基本不放文字
- 每个镜头都有事发生
- 处处有转场
- 按观众看懂所需的时间安排节奏
- 渲染截图让模型自己看图挑错
最后一条最巧妙:让它渲染出截图,自己看,自己挑错。等于给了它一个自我检查的闭环,而不是盲写。
这份规则书可以直接迁移:不论你让 AI 做什么视觉内容,这些约束——统一技法、控制文字、每镜头有信息、有转场、按理解时间安排节奏、自我检查——都是通用的。
普通人怎么照着做
作者把整套管线开源成了起步模板(ClaudeAnimationBase),作者的示例只有一句话提示词就能跑。
配置好基础工具后,即使不写代码,也能借助编程 Agent 做出自己的手绘风动画。渲染开销也不夸张:在 M3 Max 上渲染 11 秒的示例用了 47 秒。
想做整首 MV,可以用两步提示词:
1. 第一步:先出分镜(把歌拆成章节,每章描述画面和情绪)
2. 第二步:按分镜写代码
不要一步到位。先确认分镜对不对,再进代码阶段,返工成本差很多。
进阶版本长什么样
另一位创作者在这个基础上加码:用 fal 生图、Seedance 生视频做底片,再用 JS 重画覆盖。Claude 跑了 12 小时。
注意它的前提:依赖事先搭好的一整套工具链。这不是开箱即用的能力,是工程积累的结果。
所以看到这类成果时,要分清「模型能力」和「工程积累」各占多少。前者可复制,后者需要时间。
什么时候该用这个路线
适合用代码绘制的:
- 需要风格高度统一的系列内容
- 需要反复修改、迭代的项目
- 信息图、示意图、教学动画、数据可视化
- 有明确节奏要求(卡点、配乐)的内容
不适合、用生图生视频更快的:
- 写实场景、真人、复杂光影
- 一次性的概念草图
- 对细节精度要求不高、只要「大概那个感觉」的
判断标准:你要的是「能反复改的工程」,还是「一张好看的图」?前者用代码,后者用生成模型。
三个实践建议
1. 先跑通最短的示例。别上来就做整首歌,先做 10 秒,把管线跑通。
2. 把规则书前置。在你提需求之前,先把风格约束写清楚,写进项目文件。
3. 保存每一次的代码版本。它的价值在于可复现,版本管理是这个价值的前提。
最后一句
这条路线最有启发的地方,不是「AI 会画画」,而是它把创作过程变成了可编辑、可复现的工程。
生图生视频模型给你的是结果,改一次就得重来;写代码给你的是结构,改一处不动其余。
在做任何需要迭代的视觉内容时,都值得问一句:我拿到的到底是结果,还是可以接着改的工程?
适合谁:设计师、创意开发者



