Communitygithub.com

RAW KINETIQ

将歌曲文件转换为完整的动态排版歌词视频(MP4),每个词都精准卡点,整体视觉效果(颜色、字体、动画、背景)根据歌曲主题和情感量身设计。基于Whisper歌词时间戳和Demucs人声分离,视觉与节拍同步,支持用户自己的图片和抠图嵌入,渲染前自检,使用Remotion渲染。

RAW KINETIQ 是什么?

RAW KINETIQ 是一个专门用于从音频文件生成专业级动态排版歌词视频的 AI 技能。它通过一整套自动化流水线,将歌曲文件(如您自己的音乐或 Suno AI 生成的曲目)转化为可直接发布到 YouTube、TikTok、Reels 或 Shorts 的 MP4 视频。该技能的核心是深度定制化:它不依赖预设模板,而是根据歌曲的主题、情感、节奏和歌词内容,动态决定所有视觉元素——包括颜色、字体、动画、场景布局和相机运动。它集成了 Whisper 进行时间轴对齐和 Demucs 进行人声分离,确保每个歌词词句在音乐中精准卡点。用户还可以上传自己的图片或进行抠图,并让智能设计流程将它们自然地融入视频。该技能支持 Claude Code 等 AI 代理平台,提供了一个完整的端到端工作流。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bani4kaskashka/Claude-Skill-Raw-Kinetiq/tree/main/skills/raw-kinetiq

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

RAW KINETIQ 是做什么的?

输入歌曲,输出 MP4。流水线已经搭建好;你的工作是运行它,像编辑一样审查时间轴,并修复机器出错的地方。最终的视频应该让人感觉每个词都在正确的时间唱出,并且视觉效果伴随歌曲的能量而呼吸。

视频是为歌曲设计的,而不是把歌曲塞进统一的风格中。 歌曲的主题、情感、流派和节奏决定了所有元素:颜色、字体、屏幕上同时显示多少个词、它们如何出现和消失、它们的位置、镜头运动的强度、背景内容,以及用户自己的图片放在哪里。没有预设可供选择,只有一套可以混合的工具包(references/toolkit.md),当歌曲需要工具包中没有的画面时,你必须为那首歌专门构建。两首歌绝不能看起来相似,一个视频应该看起来像 YouTube 上独一无二的作品。要勇于创新,敢于冒险,然后检查你的作品(第5步),确保这些冒险能够落地。

视频中发生的变化是因为歌词内容本身。 只有背景和字体变化的视频是幻灯片。当歌词提到“手”,就有一只握着的手;当提到“嘴”,就有一张张开的嘴,镜头推进去;当歌词说“我知道每一个出口”,出口标志就飞速掠过。这些时刻需要通过代码绘制(SVG 图形,在 Remotion 中做动画;绝不使用图像生成器),并与其对应的词语时间对齐(第4b步)。

下面的路径:SKILL = 本技能的文件夹(${CLAUDE_SKILL_DIR}),PY = setup_env.sh 打印出的 Python 路径(Windows 上为 ~/.raw-kinetiq/venv/Scripts/python.exe,其他系统为 ~/.raw-kinetiq/venv/bin/python)。在 Windows 上使用 Git Bash 运行 .sh 脚本。

0. 你需要从用户那里获取什么

只需歌曲即可。获取歌曲(以及歌词,如果用户有的话),然后一次性提出视觉风格问题:只用一次 AskUserQuestion 调用,这样用户可以做出选择,然后在分析运行时离开。跳过用户消息中已经回答的任何问题。如果用户说“直接做吧”,或者他们不在,使用默认值并说明你使用了哪些。

问题(标题)选项默认值
格式16:9 (1920x1080)(推荐)/ 适用于 TikTok、Reels、Shorts 的竖屏 9:16 (1080x1920) / 正方形 (1080x1080)16:9
风格根据歌曲设计(推荐)/ 然后提供 2-3 个源自歌曲自身意象的具体方向,每个用简单语言描述(对于一首关于发烧的歌:“文字在热浪中颤抖,汗黄色衬底变黑”)。“其他”让用户用自己的话描述氛围根据歌曲设计
叠加层(多选)艺术家名字(左上角)/ 歌曲段落名称(左下角)/ 计时器+进度条 / BPM+节拍计数器。在问题中说明,不选择任何选项将产生一个干净的音乐视频无
素材“你有希望放入视频的图片吗(封面艺术、照片、Logo、你的照片)?”没有,根据歌曲设计(推荐)/ 有,我会在这里发送 / 有,它们在一个文件夹里无

答案映射到 new_project.sh 标志:--size 和 --overlays artist,section,timer,bpm(仅限选中的项)。除非用户另有要求,否则始终为 60 fps。视觉风格的设计完全由你在第2b步中完成,受用户回答的引导。

如果用户有素材, 立即回复:“请发送它们(或告诉我文件夹),以及每张图片是什么或你希望它放在哪里的说明,如果你有偏好的话。”描述是可选的:使用 Read 工具打开每张图片,自己查看其内容。在第2c步中将其引入。

其他输入,无需提问:

输入默认值
歌词粘贴 > 文件标签(Suno 写入的) > 由你清理的转录
标题/艺术家文件标签;如果标签标题是垃圾(例如 [Rec] Oct 24 ...),使用文件名
背景auto:场景按段落和你的设计跟随
结束卡标题+艺术家在最后几秒显示;如果他们不想要,使用 --no-endcard

1. 设置(每台机器一次,之后瞬间完成)

bash SKILL/scripts/setup_env.sh

创建共享的 Python 环境(faster-whisper, Demucs, librosa, Pillow;CPU 构建)并打印其 Python 路径。需要 Python 3.10+、Node 18+ 和 ffmpeg(含 ffprobe)在 PATH 上;如果缺少一个,告诉用户需要安装什么,而不是自行安装系统软件。首次运行会下载几个 GB(现在下载 CPU 版的 PyTorch,Whisper 和 Demucs 模型在首次使用时下载)。

2. 分析歌曲(缓存,后台运行)

项目文件夹:<歌曲所在文件夹>/<歌曲名> lyric video/,除非用户另有指定。如果用户粘贴了歌词,首先将其保存为 <项目目录>/work/lyrics.txt,保留 [Section] 标签。

PY SKILL/scripts/prepare.py "<歌曲文件>" "<项目目录>/work"

对于一首3分钟的歌曲,大约需要8-10分钟(CPU:先运行 Demucs,然后两次 Whisper large-v3)。每一步都会缓存其输出,因此重新运行只会执行缺失的部分。绝不要删除这些输出以“重新开始”;要重做某一步,只需删除该步骤对应的文件。它会打印:

  • 时长、BPM、小节长度(240 / BPM)、每秒能量(能量跳跃处即 Drop 处),
  • 人声存在范围(间隙 = 乐器段),
  • 两个 Whisper 转录结果(完整混音的,以及单独人声音轨的)。

2b. 设计这首歌的视频

从歌曲开始,而不是从工具包开始。 先不要打开工具包:一份现成动作的菜单会把每首歌都引向同样的少数几种外观。首先要弄清楚这首歌是什么,并在 <项目目录>/work/design.md 中写下来:

  1. 用几句话概括这首歌: 故事、谁在说、对谁说、地点、时间、歌词反复出现的物体和意象、以及它的感觉(紧张、温柔、麻木、挑衅、俏皮、偏执)。感觉比流派更能决定运动。
  2. 它存在的世界。 阅读歌词的词汇,而不仅仅是故事:歌词中的词语聚集形成一个世界,这个世界比标题的日常意义更能说明歌曲存在于何处。充满“判决”、“作证”、“刑期”的歌曲存在于法庭;“锚”、“漂流”、“港湾”在海上;“平衡”、“负债”、“利息”在金钱世界。然后列出标题和副歌的每一个含义,包括俚语和这些词在游戏、电影、体育和亚文化中的含义(“Ghost”是幽灵、人间蒸发的人、游戏术语),并选择词汇支持的或融合两个含义。写出候选含义以及你选择其中一个的原因。
  3. 核心意象, 来自那个世界和歌词本身的词语,绝不要来自流派。一首关于被监视的歌:窗户一盏盏亮起。一首关于时间不多了的歌:导火线在画面中燃烧殆尽。
  4. 标志性动作:歌词词语本身在歌曲的语境下做了什么。 两到三个,每个用一句话描述:一个词如何出现,如何消失,副歌做了什么。它们来自核心意象:在一首关于发烧的歌中,词语在热浪中颤抖着出现,然后冷却静止;在一首关于未寄出信的歌中,词语是用渗血的墨水写成的,然后纸张将它们折起。测试: 如果同一个动作能用在另一首随机的歌上,那它还不是标志性的。让它足够引人注目:在第一个副歌之后,观众应该能够描述出词语做了什么。一丝微光或一眨眼的模糊几乎看不出;在歌曲高潮部分,让动作占据空间和时间,在主歌部分保持低调。你需要为这首歌编写这些效果(video/src/custom,工具包中的“歌曲自己的部分”)。
  5. 镜头列表: 每个段落对应其场景、相机运动、歌词布局、调色板以及使用的动作。核心意象像一部短片一样在其中演变(见下文),每个段落的构图都应不同:将同一个视图重绘或添加几盏灯,不是一个新的镜头。
  6. 你不会做什么: 明确指出针对此流派和情绪可能想到的、但你正在避免的常见动作,这样你就不会退回到它们。
  7. 这些时刻将共享的绘图风格(第4b步), 源自歌曲的世界:霓虹线条画、平贴剪纸、水墨画、蓝图线条、粗体剪影、漫画分格、木刻。整首歌使用一种风格,这样所有时刻看起来像一部电影。

需要查看的事实数据:BPM(注意半速感:140 BPM 的陷阱节拍通常感觉像 70),人声密度(whisper_full.json 中的每秒字数:快速说唱需要短促爆发;缓慢持续演唱可以持有短语)和每秒能量(能量跳跃处,视频发生变化:副歌与主歌不同的处理方式,桥段打破模式,最后的副歌比第一个更大)。

现在阅读 references/toolkit.md 并构建设计:

  • 时刻 在时间轴创建后绘制(第4b步),但现在就规划它们:故事板塑造了镜头列表,而围绕一个时刻构建的段落可以在其背后保持简单。
  • 首先处理歌曲自己的部分。 将标识性动作编写为 effects,将核心意象编写为 layers(当某个时刻需要时,将线条样式编写为 modes),所有这些都放在 video/src/custom/index.tsx 中。在歌曲高潮部分(至少副歌)使用标识性动作,并将其置于视频中心,而不是一次性使用。
  • 工具包是配角。 它的内置入场、出场、线条样式和图层承载了过渡性的歌词行并填充场景。其中许多是为早期歌曲制作的(如为 phonk 曲目设计的 slam、slash、cut 和 glitch,被切成两半的颂歌,隧道效果),默认使用它们正是导致两个视频看起来相似的原因。只有在它确实适合这首歌的意象时,才使用内置效果,并在 design.md 中说明原因。
  • 调色板: 颜色来自歌曲的世界或用户的图片,并支持按段落变化。写出所有颜色;不要从主题开始。
  • 字体: 适合这首歌语气的任何 Google Font 作为 display 字体和一个对比鲜明的 alt 字体。
  • 相机、能量和反应: 每个段落一个动作,镜头运动的强度,以及视觉效果是跟随节拍脉动还是跟随人声运动。
  • 素材: 用户每张图片放在哪里,以及文本如何为其腾出空间(2c)。

视频是一系列镜头的集合,绝不是在文字上加图片的一张静态画面。 一个核心想法是正确的,但一个不变的画面不是。像拍一部短片一样逐段规划歌曲:观众在开头看到什么,主歌如何构图,副歌打开了什么,桥段打破了什么,如何解决。核心意象应该演变:改变比例、角度或相机运动、一天中的时间、调色板、画面中的内容。一个自定义图层可以获取当前段落及其进度,从而在不同段落展示不同内容。每个副歌必须明显看起来与它的主歌不同,并且最后一个副歌比第一个更大。如果相邻两个段落共享场景、相机、布局和调色板,则必须更改其中一个。

改变构图,而不仅仅是颜色。 当一个自定义图层承载整首歌时,给它真正的镜头:不同的相机位置(俯视、从内部、地面水平、特写细节)、不同的比例、画面中不同的主体。重新着色同一个视图或向其中添加灯光,仍然会被视为一个镜头,并且检查会标记出填充歌曲时间过长的构图(one-shot)。

将词语与图像一起放置。 歌词的位置是设计的一部分:在场景显示的表面上、在窗户里、在主体旁边、随着音乐的移动而移动到新位置。整段歌词中的词语爆发都在完全相同的位置,那就是字幕。一个效果中的 burst 钩子可以将爆发移动到任何地方(通过其 transform)。

慢不等于静止。 一首柔和、缓慢或低语的歌曲动作缓慢但永不停止:相机漂移或推进,光线随着人声而增强("react": "voice",柔和歌曲的默认值),每个段落场景都会变化。保持感觉(温柔保持温柔),同时让每个段落都成为一幅新画面。给慢速歌词留出成为大画面的空间:一次显示更少的词,设置成大字,有目的地放置,而不是整首歌都像一个小字幕在同一行。

大胆尝试:突破流派(用粗犷字体的灵魂乐,用衬线字体的 Drill 曲目)并敢于冒险;自检(第5步)会捕捉到效果不佳的地方。它还会标记没有 design.md 的视频(no-design)、仅使用内置动作的副歌(no-signature)、从早期歌曲借用的内置效果(borrowed)、以及仅由内置图层构成的背景(stock-world)。

用两到三句简单的话告诉用户你的设计(“一首关于被监视的歌,所以词语放在一栋建筑前,夜晚窗户一盏盏亮起;每个词在唱出时像窗户一样亮起,副歌将街道调暗到只剩一个明亮的房间”)。

然后设置视频项目(它会复用现有项目):

bash SKILL/scripts/new_project.sh "<歌曲路径>" "<项目目录>" --size 1920x1080 --fps 60 [--overlays artist,timer] [--no-endcard]

并将设计写入 video/src/data/config.json(颜色、字体、动画、场景、素材)。重新运行 new_project.sh 会保留你放在那里的所有内容。对于使用本技能旧版本创建的项目,添加 --update:它会替换当前模板代码,并保留歌曲的数据、自定义部分和素材。

2c. 用户的图片

PY SKILL/scripts/assets.py "<项目目录>" <图片文件或文件夹> [--cutout name1,name2 [--person]]

将它们复制到项目中(直立、大小合理),打印每张图片的形状、亮度和主要颜色,并写入 video/public/assets/sheet.png。查看该图。抠出那些应该在没有背景的情况下出现在画框中的主体(--cutout;如果是人物,添加 --person,否则模型可能只保留手或脸)。检查图上的每个抠图;如果边缘不对,尝试另一个模型,或者改为将图片用作背景或海报。

使用用户对每张图片的描述;当他们没有说任何信息时,根据你看到的来做出决定。将它们放在歌曲需要的地方(工具包,“素材”):肖像抠图放在主歌旁边,封面艺术作为副歌背景,Logo 水印在开头。在 video/src/data/config.json 中设置它们的位置、大小和动画。其中一些可能图片会作为自定义图层的一部分动态出现(第4b步)。

3. 对齐时间轴(4-6分/分钟)

PY SKILL/scripts/timeline.py "<项目目录>"

创建 <项目目录>/work/timeline.md 并自动打开它。它会为每个段落显示每个 Whisper 对齐的词语及其时间戳。你的工作是逐段修复对齐错误: 合并断裂的单词,分割合并的单词,当 Whisper 因背景音乐而偏移时听到正确的时间。使用 Read 工具(如果在编辑器中,也可以直接编辑文件),并且可以在修复几行后检查整个文件的语法。对于某些平台(Desktop),在浏览器中预览可能会更清晰。这是最重要的一步:时间不对的歌词比没有歌词更糟糕。

何时重跑 Whisper: 当几乎每行都偏移相同量时,运行清除清理后的转录并重新运行分析(第2步),或者手动将所有时间戳调整偏移量。当仅人声轨道(whisper_vocals.json)也有时,如果感觉错误仍然存在,尝试运行带 --transcriber large-v3 的 prepare.py(它会用一个更小的模型替换 full-7),因为不是所有机器都有 VRAM 来运行 large-v3。

对于 Suno 嵌入的歌词:检查时间戳是否在 suno_timestamps.json 中;如果 Suno 的时间戳更准确导航设置就不需要调整选项的话。timeline.py 已经通过与 track_lyrics.md 比较来合并它们。

4. 渲染并预览歌词

cd "<项目目录>/video"
npx remotion studio

这会启动 Remotion Studio(一个交互式网页预览)。在浏览器中打开它。

4b. 将歌词时刻绘制为代码(SVG)

在第2b步中规划的时刻,现在进行绘制:它们应该在 video/src/custom/ 下。用 SVG 形状表示歌词中提及的物体(手、嘴、出口标志、车窗),并对每个时刻进行动画,使其精确覆盖歌词的爆发点。使用 Remotion 的 <Animated> 或 <use> 来复用形状。将每个时刻绑定到其对应的歌词行:

// 示例:当歌词提到“手”时
<Animated
  use:scale={{
    0: 0, // 开始于 0
    0.5: 1.2, // 在歌词出现时放大
    0.7: 1, // 稳定
    1: 0.8, // 消失
  }}
>
  <HandSVG />
</Animated>

将时刻的时间与第3步中修正的 Whisper 时间戳对齐。

5. 自检(渲染前)

PY SKILL/scripts/check.py "<项目目录>"

这会进行高速分析,无需渲染整个视频。它检查:

  • frame-same: 是否有太多连续的帧看起来相似(例如,静态背景)。
  • one-shot: 单个构图是否占用了歌曲过多时间。
  • no-design: 缺少 design.md。
  • no-signature: 副歌没有自定义效果。
  • borrowed: 过于依赖早期歌曲的内置效果。
  • stock-world: 背景仅由内置图层构成。

修复任何问题。如果某个问题基于用户的风格选择属于有意为之,可以在 design.md 中记录。

6. 渲染

cd "<项目目录>/video"
THEAD=4 && THUMBS=4 && npx remotion render --frames-per-lambda=40 --concurrency=${THUMBS} --log=verbose --overwrite out/raw-kinetiq.mp4

大约需要10-15分钟。将其重命名为 <项目目录>/out/<song_name>_lyric_video.mp4。

7. 质量检查

在重命名最终输出之前,播放视频。检查:

  • 音频同步。
  • 歌词时间戳是否正确。
  • 所有的效果是否按预期工作。
  • 用户图片是否被正确放置和显示。

如果有问题,回到第3步或第4步。

8. 输出

视频在 <项目目录>/out/ 文件夹中准备好。告诉用户在哪里找到它。

参考

  • references/toolkit.md — 内置效果、图层和资产的完整参考。
  • references/examples.md — 不同歌曲的先例视频。
  • SKILL/scripts/ — 所有脚本文件夹。
  • video/src/custom/ — 此歌曲的自定义 SVG 时刻。

相关技能