Ace-Step + ComfyUI LoRA 微调实战:轻音乐配乐生成
以一个从未系统接触过模型部署 / AI 音乐生成的纯萌新视角,拆解每一步“为什么需要这么做”。
Prompt Design
流行乐体系的通用提示词编写指南:
这些文档我觉着写得已经非常清楚了。
Suno 确定的 prompt schema 可以认为对市面上的工具广泛适用,别的模型也是一样往上套。
如果实在确定不下来,让 DS / GPT 帮你写也是一个可选项。
针对本项目的提示词编写:
A 95-second instrumental underscore for spoken narration, using only sparse piano and a string ensemble. No drums, percussion, vocals, or other instruments. Melancholic and nostalgic, gentle and restrained, with a clear narrative arc and plenty of space for the narration.
The first approximately 55 seconds gradually develop the main theme without becoming overly dramatic. At around 0:55, release the emotional tension and settle into a calm, peaceful final section. End with a soft, natural fade-out.
[Instrumental]
[Main Theme - restrained]
[Final Section - peaceful]
[Outro - fade out]
生成效果见文末。
提示词中的“歌词”(Lyrics)并不单指歌词本身;模型给它的定义是“时序脚本”,即“控制音乐如何发展”。因此,针对纯音乐,也可以通过“Caption 细致描述 + MetaTags 具体确认”实现精细的结构控制,甚至在时长上做到卡点。
这也是在配乐场景选择 AI 生成的核心优势之一。
Why AI
在视频 / 口播 / 舞台配乐领域(对各段情绪和它们间的转折有精细要求),这实际上是要回答“为什么配乐应该定制创作”的问题。
我至少接触过三种工作模式:
-
先准备完整音乐,再把内容剪辑上去,甚至直接对着音乐去录制。这能使得音乐和内容取得严丝合缝的效果,代价是后者必须做出让步。
-
搜索配乐素材+筛选+套用。我听专业朗诵配乐工作者分享过:他们平时就利用空闲时间广泛聆听,感觉某段音乐不错就把它积累到自己的素材库里并记在心上,等到要用的时候便信手拈来、把四五段甚至八九段音频拼在一起。
我曾惊讶于这个模式的质朴,但想来确实也只能这么干。只不过对于普通创作者来说,建立庞大素材库是不现实的,而现场搜索又面临资源来源不足+筛选费时费力+剪辑上手困难的问题。
-
原地开始创作。AI 解决的就是如何创作的事情。音乐人的思考量被简化为了一层配器+段落的细化要求。
所以 AI 能以最少的时间+金钱成本取得相对好的效果(一般来说仅次于人类创作)。
| 方式 | 平均成本 | 制作周期 | 版权风险 |
|---|---|---|---|
| 传统定制 | ¥ 5000+ | 2 - 4 周 | 无 |
| 音乐库采购 | ¥ 800~2000 | “即时”(?) | 需授权 |
| AI 生成 | / | <1h | 无 |
生成任务
言归正传。搜索 Ace-step 会发现它基本和 ComfyUI 是绑在一起的,我很好奇这是为什么。要弄懂这个问题得把 ComfyUI 的历史扒出来。
Why Comfy
相比 AI 写歌,AI 生图对行业整体完成重塑的时间点早了差不多两年。现在搜索 ComfyUI 出来的结果十个有九个是讲 Comfy+StableDiffusion 的,甚至在 24 年初那会不少人能把 SD 和 Comfy 二者弄混。
创意领域的大模型走向开源是大趋势,本地部署也成为了很多玩家的首选(下文会讲)。最直接的用法当然是命令行一步一步地输入;但是针对基于 DiT(Diffusion-Transformer) 的模型,需要不同的参数去控制不同的细节,而一个完整任务中的数据(Latent)又需要通过大量呈网状结构的转化层,这就使自动化、图形化成为了必然。
这里讲得比较抽象,可以看大佬的直观描述。
音乐上也是一样的,suno 这种网页端应用的后端在执行生成任务时,并不是只有一个模型层,而是需要 Text Encode -> Load Model -> sample -> condition -> vae 才能输出给用户。我们拿到的 Ace-step 模型是裸音乐生成,自然需要同样地搭建配套 + 调参,ComfyUI 提供的就是这个环境。

实现细节
显然我没钱买 N 卡,之前语言模型训练也都是租 gpu 在云端跑的。好点的 cpu 也能跑动,但是我工作机整台加起来高达 1300 人民币,那还是不用想了。
ComfyUI 提供通过 http / websocket 提交+监控任务的接口。但是这样部署还是太麻烦,所以我上 RunningHub 查找现成的 workflow 直接套过来用了:搜索 Ace-step 任选其一即可,如上图。防打广嫌疑,具体链接就不放了。
Why Ace-step
为啥不直接 suno?

这就是开源的意义。我想要“完全的模型访问权”:可以直接从 transformer 的内部架构去①调整 temperature、控制输出随机性,以及②通过微调让模型更专注于我的具体生成场景。①在 workflow 里可以直接体现;②则要基于现有的 Ace-step 训练一个 LoRA 模型。
LoRA 微调
数据来源
这我找了将近一个小时。最终是挑了 B 站 \(4\) 首 + aigei \(4\) 首 + wyy 歌单 \(8\) 首:

这一步完全等效于前面讲的自行搜索 + 筛选素材;如果不精细追求情绪变化,从中随便挑一首出来其实就能直接用了。
数据集搭建的原则是风格越统一越好;针对纯音乐最好要求配器也严格一致,比如我挑的就都是纯钢琴 + 弦乐。
另外有条件最好是下 .wav,.mp3 训练出来生成音质明显偏糊。还有商用的话注意版权问题。
实现细节
直接采用封装好的工具:项目地址。依旧本地跑不动(实质模型训练任务),所以上 https://compshare.cn 找社区镜像在云端跑。

数据打标
质量比数量更重要——20 个精心标注的样本胜过 100 个嘈杂、标注不佳的样本。
实质是,“音频 + 标注” 的组合才能构成一组有效的数据,因为宏观上模型理解的永远是 tag -> 特征 的映射。
AI 辅助打标也是一个热门趋势,技术核心是自动化分类规则。这里的自动打标和 Caption -> Code 的过程用的是同一种模型,都是官方发布的 LM Model(acestep-5Hz-lm-0.6B / 1.7B / 4B):生成端采用正向的 Composer Mode,标记端采用反向的 Listener Mode。
Ai-toolkit 最近就更新了自动打标功能:

完成训练后把 lora 模型下回来(.safetensors / .ckpt / .pt / ...)传回上面的 ComfyUI 工作流:

成品
配乐朗诵 中 1:25 以后的段落。

浙公网安备 33010602011771号