paint-mv-skills Skill 技能
输入一首歌,输出一支手绘水彩风 MV:分镜、并行作画、逐帧渲染全自动
技能简介
paint-mv-skills 是一套给 AI Agent 用的 MV(音乐视频)制作技能:输入一首歌的音频和歌词,输出一支手绘水彩风格的动画 MV(MP4)。它的流程完全照 PDoomVideo(Claude 为《I'm Upping My P(doom)》画的 MV)的源码来做——每一帧都是歌曲时间的纯函数,由 p5.js + p5.brush 在 headless Chrome 里画成水彩与墨线;导演写分镜、并行子代理一章一章作画、联系表检查,最后用 ffmpeg 与歌曲合成。画风固定,内容跟着歌词走:水彩加墨线的绘本观感、纸纹、"沸腾"的线条、卡拉 OK 字幕、笔刷转场都沿用原作,而构思、角色、场景和道具每首歌都从歌词重新设计。
核心能力
- 四个技能分工明确:
paint-mv总控(建项目、测节拍与对齐歌词时间、落地角色、给每章派子代理、统稿、出片);paint-mv-storyboard从歌词写分镜(构思与反转、角色表、每章场景、每句歌词一个镜头、有动机的转场);paint-mv-animate画师规范(引擎 API、按原作风格设计角色、技法目录、原作九章示例);paint-mv-render负责联系表检查、短片、全片并行可续渲、局部重渲、编码与验收、排错。 - 歌词驱动创作:角色、场景、道具全部从歌词重新设计。演示片《凌晨录音室》里的角色——唱歌的"我"小夜、"街上只剩红绿灯"的灯灯、"每个没被听见的字都还有体温"的字灵、"耳机里的鼓点"鼓点仔、"白天的嘈杂"嘈杂怪——都直接来自歌词意象。
- 每一帧都是时间的纯函数:保证可复现、可续渲、可局部重渲,调整某一段不影响其他帧。
- 并行章节作画:每章一个子代理并行绘制,各自用联系表(contact sheet)自检,再统一处理章节交界、转场与性能。
- 自动对齐歌词:纯文本歌词先用 faster-whisper 自动对齐成时间轴;也可使用 LRC 文件。
- 完整可复现示例:
demo/project/内含分镜(STORYBOARD.md)、角色(characters.js)、共享场景(sets.js)、五个章节源码与封面绘制脚本,可一键复现整支 MV。
安装配置
- 环境要求:Node.js ≥ 18、ffmpeg、Google Chrome、git、patch;纯文本歌词自动对齐还需要 uv。
- 克隆并拉取原作源码:
git clone https://github.com/lintsinghua/paint-mv-skills.git
cd paint-mv-skills
node skills/paint-mv/scripts/fetch_upstream.mjs # 按固定提交拉取 PDoomVideo 源码并打补丁
- 放置技能目录:把
skills/下的四个目录放到你的 Agent 读取技能的位置——Cursor 放.cursor/skills/,Claude Code 放.claude/skills/或~/.claude/skills/(本仓库已用符号链接指向skills/,直接在仓库里打开即可使用)。 - 关于原作源码:PDoomVideo 未声明开源许可证,因此本仓库不包含它的任何文件,而是由
fetch_upstream.mjs从 GitHub 按固定提交拉取引擎与示例,再应用template.patch(把歌曲参数移到song.js、支持 macOS 的 WebGL 后端、中日韩字体与卡拉 OK 扫字速度)。
使用步骤
- 对 Agent 说:"用这首歌和歌词做一支 MV:
song.mp3、lyrics.lrc"。没有合适的歌时,可以像演示那样先用 YuE2 贴歌词生成一首。 new_project.mjs建项目:生成引擎模板、分析节拍(BPM、首拍)、把歌词转成时间轴;纯文本歌词先自动对齐。- 先出对拍短片确认时间与节奏是否准确。
- 按
paint-mv-storyboard从歌词写STORYBOARD.md(构思与反转、角色表、每章场景、每句歌词一个镜头)。 - 写本片角色
characters.js与共享场景sets.js,输出角色模型表确认形象。 - 每章派一个子代理并行作画,各自用联系表检查构图与连续性。
- 统稿处理章节交界、转场与性能,随后全片逐帧渲染并编码为 MP4:
node render.mjs --frames=0: --workers=4 # 逐帧渲染,可续渲
node render.mjs --encode --out=out/mv.mp4
- 需要手工对齐纯文本歌词时,可单独运行对齐脚本:
uv run --python 3.12 --with faster-whisper --with zhconv python skills/paint-mv/scripts/align_lyrics.py
song.mp3 lyrics.txt --out lyrics.srt --lang zh
适用场景
- 独立音乐人做 MV:预算有限但有原创歌曲的创作者,用歌词驱动生成专属动画 MV。
- AI 生成歌曲的配套视觉:为 YuE2、Suno 等工具产出的歌曲快速配上完整 MV。
- 社媒音乐短片:把副歌片段做成有统一画风的竖屏或横屏短片。
- 歌词可视化:把歌词意象转成角色与场景,做卡拉 OK 式扫字字幕视频。
- 绘本/水彩风格内容实验:需要固定手绘水彩+墨线美术风格的动画项目。
- 音乐教育与内容展示:为歌曲讲解、作品集提供高质量视觉呈现。
适用人群
- 独立音乐人、音乐内容创作者与 MV 导演。
- 使用 AI 生成歌曲、需要配套视觉的创作者。
- 会用 Claude Code / Cursor 并希望把动画制作流程自动化的设计师与开发者。
- 需要批量产出统一画风音乐短视频的内容团队。
工作原理
整套流程把 MV 制作拆成"导演—分镜—作画—渲染"四层技能。引擎上,每一帧都是歌曲时间的纯函数,由 p5.js 与 p5.brush 在 headless Chrome 中绘制成水彩与墨线画面,因此同一时间点永远渲染出同一帧,支持断点续渲与局部重渲。项目建立阶段会分析 BPM 与首拍、把歌词对齐到时间轴;创作阶段由导演技能从歌词生成分镜并落地角色与场景;执行阶段由并行子代理一章一章作画并用联系表自检;最后用 ffmpeg 把逐帧画面与歌曲合成,可加卡拉 OK 字幕与笔刷转场。
官方链接
- GitHub 仓库:https://github.com/lintsinghua/paint-mv-skills
- 原作流程参考 PDoomVideo:https://github.com/JohnHeibel/PDoomVideo
- 水彩笔刷引擎 p5.brush:https://github.com/acamposuribe/p5.brush
- 演示用歌曲生成工具 YuE2:https://noiz.ai/lp/yue2
团队信息
AI产品库
官方
由 AI 猎手自动发现
评论与建议
登录 后参与评论或提建议