“sparks of AGI in your eyes”
osmarks 指向微软研究院 2023 年的论文《Sparks of Artificial General Intelligence》,论文认为 GPT-4 已经露出通用智能的苗头。剩下的部分就是情歌里的老套路(“眼里有星星”)。
一首 2024 年的 AI 末日流行歌,2026 年被重新唱成“Claude Pop”,再由 Claude Opus 5.5 写代码、用 p5.js 一帧帧画成水彩动画。这里有 10 步教程教你做自己的版本,还有精选二创和歌词里那些梗的解释。
来源:X 数据来自 Grok 检索 · YouTube 来自 yt-dlp · GitHub;采集日期见页脚。
播放 Claude Pop – I’m Upping My P(Doom) · John Heibel2:37
点击后才会从 youtube-nocookie.com 加载播放器。
那支视频里没有一帧是 AI 画出来的图,每一帧都是 Claude 写的代码画出来的:浏览器里的 p5.js 画布根据歌曲时间 t 画出画面,无头 Chrome 逐帧截图,ffmpeg 再把图片和音乐合成 MP4。一个晚上搭环境、写提示词,然后挂机渲染。
这篇教程用 John Heibel 开源的 ClaudeAnimationBase(MIT 许可):和原片同一套 p5.brush 引擎,整理成了方便 fork 的工具包,自带有 31 种表情的 Clawd,还有一份 Claude 会先读的规则文档 ANIMATION_GUIDE.md。原版 PDoomVideo 仓库没有许可证,所以我们只链接、不搬运。你会装软件、会往终端里粘命令就够了,代码都交给 Claude 写。
npm install 慢可以临时加 --registry=https://registry.npmmirror.com。studio.html 会从 Google Fonts 加载字体。加载不到时画面里的字会退回系统字体,页面也可能卡住,这时让 Claude 把字体下载到项目里改成本地引用。git clone https://github.com/JohnHeibel/ClaudeAnimationBase my-video cd my-video npm install
Mac 上 brew install node git ffmpeg 加 brew install --cask google-chrome 一次装齐。请用 Claude Code,不要用网页版:只有 Claude Code 能运行渲染器、看自己渲染出的画面,这一步决定成片好不好看。
node render.mjs --sheet=0,1,2,3,4,5 --out=out/sheet.jpg
打开 out/sheet.jpg,看到橙色吉祥物 Clawd 就说明环境没问题。
--chrome="你的 Chrome 路径",或设置 CHROME_PATH。--soft-gl,用软件渲染 WebGL。--gpu-angle=gl-egl(或 vulkan)。工具包在 Mac 上会自动加 --use-angle=metal,在 Linux 上自动加 --no-sandbox,不用自己改。
歌词可以找 Claude 一起写,再用 Suno 生成。Suno 免费版做的歌只能个人、非商业使用,之后升级付费也不会变成可商用。Pro/Premier 期间做的歌转让给你,在套餐的下载额度内正式下载后才能商用。不要用 Udio:它的条款一律禁止下载生成结果,只能分享链接。以上条款核对于 2026-09-28,打算赚钱前再去 Suno 条款页确认一遍。
Suno 导出的 .m4a 里藏着一条带时间戳的歌词字幕轨。先提取出来,再转成不带字幕轨的 MP3:
ffmpeg -i song.m4a -map 0:s:0 subs.srt ffmpeg -i song.m4a -map 0:a -c:a libmp3lame -q:a 2 assets/song.mp3
想用 P(doom) 原曲?它没有开放授权:只做非商业用途,把所有人写进致谢,并做好在 YouTube 上被版权声明的准备。
编辑 src/config.js:
const PROJECT = { duration: 45, bpm: 120, offset: 0.21, audio: 'assets/song.mp3' };
duration 是时长(秒),offset 是第一个重拍出现的时间(秒)。bpm 用任意 BPM 检测工具测,或让 Claude 用 librosa 分析。当心半速或倍速:同一首歌,PDoomVideo 用的是 88,mexicat 测出来是 132,选听起来最顺的。
你需要一份 [开始秒数, 结束秒数, "歌词"] 列表,由易到难:
subs.srt 转成 src/lyrics.js。faster-whisper 并打开逐字时间戳,自己再听一遍抽查。规则文档写着 “Lyrics are not text”:默认把歌词演出来。想要卡拉 OK 字幕要用提示词 3。
在项目文件夹里运行 claude,发提示词 1。拿到 STORYBOARD.md 后认真读,这时候改故事最便宜。觉得无聊的地方直接说,满意了再批准。
要做竖屏(Shorts、Reels、抖音)?先发提示词 6,再发提示词 1,让分镜一开始就按竖屏构图。
发提示词 2。Claude 会写 src/scenes/my_video.js,换掉 studio.html 里的示例,每做完一个镜头就渲染一张拼版图自查。
歌超过一分钟,就让它按章节拆开、用子代理并行做,Heibel 做原片时就是这样。要卡拉 OK 字幕,这一步加发提示词 3。
用 Chrome 打开 studio.html 拖动预览,网址加 ?t=12.5 直接跳到 12.5 秒。也可以渲染一小段:
node render.mjs --clip --range=20:30 --out=out/preview.mp4
意见用大白话说(参考提示词 4),比如“0:14 的 Clawd 太小了”。来回改 3 到 10 轮很正常,质量主要是在这一步磨出来的。
node render.mjs --frames --workers=4 node render.mjs --encode --audio=assets/song.mp3 --out=out/video.mp4
--encode 必须带上 --audio。它不读 config.js 里的 audio,不带的话出来的是无声视频。
--frames 可以断点续跑,中途停了重新运行同一条命令就行。没有显卡加 --soft-gl,最好先用提示词 5 让每帧画得省一点。电脑弱、报页面加载超时,就调小 worker 数或改用 --clip。渲染完带着声音完整看一遍:第一拍、结尾、字幕。
默认输出 1920×1080、24 fps、H.264 + AAC,可以直接传 YouTube、B 站和 X。工具包没有分辨率参数,1920×1080 写死在 src/core.js、studio.html 和 render.mjs 里。竖屏请回到第 6 步用提示词 6 重新构图,不要把横屏成片直接裁成竖屏。
在简介里写清致谢(模板见下方):歌的作者和生成工具、工具包、Claude。平台要求标注 AI 生成内容的照做。很多翻拍作者也会把项目推到 GitHub 上。
提示词保留英文,Claude 读英文指令更准。把 <尖括号> 里的内容换成你自己的。
Read ANIMATION_GUIDE.md and look at docs/emotions.jpg and docs/views.jpg.
I want a music video for assets/song.mp3 (tempo and length are in src/config.js).
Here are the lyrics with timings:
<paste [start, end, "line"] list>
Don't write any code yet. Write STORYBOARD.md in the guide's format: a logline, the world/palette and how it changes, a recurring motif, Clawd's emotional arc, and a shot list where each shot is anchored to a lyric line, has a clear event, a transition in and out, and the "reads" with timings. Cuts and hits land on beats.
Make it funny and visual, and act the lyrics out rather than captioning them.
Then stop and show me.让 Claude 读完规则文档后只写分镜,每个镜头对应一句歌词,写完就停下等你审。
The storyboard is approved. Build it: create src/scenes/my_video.js, replace the demo script tag in studio.html, and build one shot at a time in order. For every shot, render a contact sheet and strips of the key motions, open the images and fix anything that breaks the guide's rules (text, tiny Clawd, snapping faces, dead moments, hard cuts). Keep every frame a pure function of t. When all shots are done, render out/preview.mp4 with the audio and tell me what you're least happy with.按分镜逐个镜头制作,每做完一个就渲染缩略图自查,最后出一版带声音的样片。
Add karaoke subtitles: a painted band along the bottom (about y 975-1070) that shows the current lyric line from src/lyrics.js and highlights each word as it's sung (interpolate across the line if we only have line timings). Use the lettering helpers so it matches the hand-painted look, and keep faces and key action above y 960 in every shot. Check it with sheets at 5 lyric times.在画面底部加一条手绘风格的字幕带,唱到哪个词就高亮哪个词。坐标按横屏写,竖屏要让 Claude 换算。
Notes from watching out/preview.mp4:
- 0:08-0:12: I can't tell what Clawd is reacting to; hold the reveal longer.
- 0:20: Clawd is too small; make it a medium shot.
- The second chorus feels like the first; escalate it (bigger, more chaos).
Fix these, re-check each with a strip, and render the changed ranges only.这是示例,换成你看样片时记下的时间点和问题;只重新渲染改过的片段,省时间。
Rendering is too slow on this machine (see the ms/frame in the log). Profile the slowest shots with --sheet and cut per-frame cost to under 2 s: replace most watercolour `fill` shapes with flat `wash` shapes plus a little hatch, reduce shape counts, and keep the look as close as you can. Show me before/after sheets.把最耗时的水彩填充换成平涂加少量排线,尽量保持画风,并给你看改前改后的对比。
Read ANIMATION_GUIDE.md, then make a 15-second video of Clawd trying to catch a butterfly.ClaudeAnimationBase README 里的示例,适合在做自己的歌之前先试一把。
I want this video in 9:16 vertical, 1080x1920, for YouTube Shorts, Reels and Douyin.
This kit has no resolution setting: 1920x1080 is hard-coded in three places:
`const W = 1920, H = 1080` in src/core.js, the <canvas> in studio.html, and `--window-size=1920,1080` in render.mjs. Change all three to 1080x1920. Then search src/ for coordinates that assume a landscape frame (e.g. 960 as the centre x, 1080 as the bottom) and make them use W and H instead. Update the canvas size in ANIMATION_GUIDE.md so later work follows it. Compose for a tall frame: Clawd bigger and near the centre, key action in the middle, nothing important in roughly the top and bottom 15% where app buttons and captions cover it.
Render a sheet at 4 times from the demo and show me before we storyboard.工具包没有分辨率参数,1920×1080 写死在三处:src/core.js 的 const W = 1920, H = 1080、studio.html 的 <canvas>、render.mjs 的 --window-size,场景代码里还有按横屏写死的坐标。这条提示词让 Claude 把它们都改掉并按竖屏重新构图,最好在写分镜之前做。
LICENSE 和版权声明。Song: "I'm Upping My P(doom)". Lyrics by osmarks, MusicPerson & the EleutherAI Discord (original Udio version, 2024); Claude-Pop version by @slimer48484 (Suno).
Animation made with Claude Opus 5.5 in Claude Code using ClaudeAnimationBase by John Heibel (MIT) — github.com/JohnHeibel/ClaudeAnimationBase用自己的歌时,把第一行换成你的歌名、作者和生成工具。
目前收录 44 个翻拍、翻唱、回应曲和工具(不算原版和转载),还在增加。这里挑了 9 个,每个都注明作者并链接到原处,我们不转存任何内容。
17 个场景,逐字对齐歌词。这个仓库的星标数已经超过原版。
观看量最高的翻拍:对着电脑说了一段很长的提示词,Claude 通宵干完。
来自 Grok 搜索,未核实新写的歌词串起真实发生过的 AI 安全事件,视频简介里列了出处。灵感来自 Josh Thor 和 John Heibel。
用 Suno 重唱的 2024 年原曲。这里几乎每支视频用的都是这版音频。
乐观续集:一样的劲头,只是数字往下走。
本教程用的工具包:有 31 种表情的 Clawd,加一份动画规则文档。
描述一个点子,Claude 在你电脑上画分镜、渲染出你自己的 p(doom) 视频。
这首歌从头到尾塞满了 AI 安全圈的梗。“P(doom)”指的是一个人主观估计的“AI 导致灾难”的概率,每段副歌都给出一个把它调高的新理由。下面挑 6 句,解释以词作者本人的注解为准:
“sparks of AGI in your eyes”
osmarks 指向微软研究院 2023 年的论文《Sparks of Artificial General Intelligence》,论文认为 GPT-4 已经露出通用智能的苗头。剩下的部分就是情歌里的老套路(“眼里有星星”)。
“Trapped in the Chinese room”
塞尔 1980 年的思想实验“中文屋”:照着规则摆弄符号,不等于真的理解。后面那句“一袋蘑菇”,按 osmarks 的说法,意思就是“一团混乱”。
“One E thirty flops a second”
每秒 1e30 次浮点运算,远超现实中任何一台计算机。osmarks 说这句不是在影射哪条监管法规,只是说大家往 AI 上砸的算力太多;而且只有“twenty”或“thirty”念起来合拍。
“Without a single cdr”
Lisp 里的 cdr(取“列表的其余部分”)。Lisp 是老派符号 AI 和专家系统的语言,这句的意思是新的 AI 一行这种代码都没用就来了。osmarks 拿它和 “are” 押韵,是因为不知道它一般读作 “could-er”(“我不写 Lisp”)。
“Killswitch guys on PTO”
出自 2023 年那则恶搞招聘广告“断电工程师”(killswitch engineer):拿工资负责拔 AI 电源的人,全都在休带薪假。osmarks 的定稿歌词里是复数 “guys”。
“What did Ilya see?”
按 osmarks 的说法:2023 年 11 月 OpenAI 董事会政变之后,Ilya Sutskever 离开了 OpenAI;那场政变可能是因为发现了思维链强化学习训练(后来的 o1)。之后他去创办了一家超级智能公司。他到底看到了什么,我们永远不会知道。
歌里扔过来的那些词,用大白话解释。
歌词作者:osmarks、MusicPerson 等(部分句子来自 EleutherAI Discord 群友,尾声和最终副歌有 Claude 参与)。我们只引用短句。解释依据 osmarks 本人的逐句注解,完整权威版本请看《P(Doom) Song Objectively Correct Interpretation》。
osmarks 官方认可的音乐视频是 Dmytro 2024 年的《P(doom)》,不是 2026 年的任何一支二创。