ComfyUI 前端受部分节点影响的更新提示
2025/05/13
ComfyUI ACE-Step 音乐生成工作流完整指南
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联合开发的开源音乐生成基础大模型,旨在为音乐创作者提供高效、灵活且高质量的音乐生成与编辑工具。
该模型采用Apache-2.0许可证发布,可免费商用。
ACE-Step 作为一个强大的音乐生成的基座模型,提供了丰富的扩展能力。可以通过 LoRA、ControlNet 等微调技术,开发者可以根据实际需求对模型进行定制化训练。 无论是音频编辑、歌声合成、伴奏制作、声音克隆还是风格转换等应用场景,ACE-Step 都能提供稳定可靠的技术支持。 这种灵活的架构设计大大简化了音乐 AI 应用的开发流程,让更多创作者能够快速将 AI 技术应用到音乐创作中。
目前 ACE-Step 已经发布相关的训练代码,包括 LoRA 模型训练等,对应 ControlNet 的训练代码也将在未来陆续发布,你可以访问他们的Github 来了解更多详情。
在ComfyUI 中 ACE-Step 的实现及关于多语言的实现的说明
在 ACE-Step 模型针对多语言的实现,主要是通过将不同语言统一转换成为对应的英文字符,然后进行音乐生成的,但是目前在 ComfyUI 原生的支持中并没有实现不同语言到英文字符转换的这一步,仅对日文片假名进行了匹配转换可以查看这个commit。 因为实现这一步需要引入额外的依赖,对核心依赖贸然增加可能会导致各种潜在的问题和自定义节点冲突,所以目前在 ComfyUI 中我们不能够直接使用不同语言来输入,而是需要转为对应的英文字符。
不过目前有自定义节点作者实现了对应的语言的转换,可以实现多语言的直接输入,所在在本文档中我们将会结合原生工作流和自定义节点来完成 ACE-Step 的工作流,你可能已经下载了这个文件。 下面是对两种ACE-Step 在 ComfyUI 实现方式的说明。
1. ComfyUI 原生支持
- 优点: 使用合并的 All in one 模型加载方便,使用简单
- 缺点: 不支持多语言直接输入,需要把对应的语言转换成对应的英文字符,然后进行音乐生成
目前在 ComfyUI 已经原生支持了 ACE-Step 但是缺点是并不支持直接的多语言输入,
2. 自定义节点 ComfyUI_ACE-Step 的实现
ComfyUI_ACE-Step ,主要实现了多语言直接输入,并且支持了多语言的歌词输入,并且支持了多语言的提示词输入。
- 优点: 支持多语言直接输入,使用简单
- 缺点: 没有使用合并的模型,需要下载多个模型
这个自定义节点目前在它的核心依赖中添加了比如日语、中文、韩语翻译的依赖,所以使用这个节点你可以直接使用多语言来进行音乐生成,另外作者也针对多语言混合输入有进行处理优化。
在本篇教程工作流我们会添加 ComfyUI_ACE-Step 的对应 ACE-Step Lyrics Language Switch
如果你需要使用多语言输入时,可以大大方便对应的语言输入。
不过在测试中发现,这个语言转换的节点似乎对日文的转换还存在一定问题,所以目前如果想要使用日语进行歌曲生成,那么请直接使用日文片假名进行输入
另外我提供的工作流中,对应的节点默认是 绕过(Bypass)
模式,所以如果你需要启动多语言输入还需要在节点上右键将对应节点的模式设置为 总是(Always)
模式。
由于近期 Comfy 对原生支持的 ACE-Step工作流进行了更新,目前 Portable 版本中的模板还未更新,所以目前(2025-05-18)本篇教程应该是整个网络里你可以找到的最早的有多语言支持和及优化后工作流的教程。毕竟,目前相关模板也是 ComfyUI Wiki 在负责维护
开始前的准备
- 请升级你的 ComfyUI 到最新版本,保证你有对应的原生支持
- (可选,如果你需要多语言直接输入的话)安装 ComfyUI_ACE-Step 插件(直接使用 ComfyUI Manager 来进行安装)
- 模型下载, 下载ace_step_v1_3.5b.safetensors 后保存到
ComfyUI/models/checkpoints
文件夹下
ComfyUI ACE-Step 文本到音频生成
1. 工作流文件下载
点击下面的按钮下载对应的工作流文件,拖入 ComfyUI 中即可加载对应的工作流信息,对应工作流已包含模型下载信息。
2. 按步骤完成工作流的运行
- 确保
Load Checkpoints
节点加载了ace_step_v1_3.5b.safetensors
模型 - (可选)在
EmptyAceStepLatentAudio
节点上你可以设置生成音乐的时长 - (可选)在
ACE-Step Lyrics Language Switch
的输入对应的歌词,如果你不知道如何输入可以参考ACE-Step 项目页,如果你需要日文输入请删除这个部分直接使用 ComfyUI 原生的节点输入日文片假名。 - (可选)在
TextEncodeAceStepAudio
的tags
输入对应的音乐风格等等 - (可选)在
LatentOperationTonemapReinhard
节点,你可以调整multiplier
来调整人声的音量大小(数字越大,人声音量越明显) - 点击
Run
按钮,或者使用快捷键Ctrl(cmd) + Enter(回车)
来执行音频的生成。 - 工作流完成后,你可在
Save Audio
节点中查看生成的音频,你可以点击播放试听,对应的音频也会被保存至ComfyUI/output/audio
(由Save Audio
节点决定子目录名称)。
ComfyUI ACE-Step 音频到音频
在使用 ACE Step 音频到音频工作流时,你可以像图生图工作流一样,输入一段音乐,使用下面的工作流来达到重新对音乐采样生成,同样,你也可以通过控制 Ksampler
的 denoise
来调整和原始音频的区别程度。
你可以实现:
- 对音乐风格的调整
- 修改部分的歌词等等
你可以在ACE-Step 项目页看到更多的示例
1. 工作流文件下载
点击下面的按钮下载对应的工作流文件,拖入 ComfyUI 中即可加载对应的工作流信息
我们可以使用文生音频工作流中的音频作为输入音频
2. 按步骤完成工作流的运行
- 确保
Load Checkpoints
节点加载了ace_step_v1_3.5b.safetensors
模型 - 在
LoadAudio
节点上上传用于编辑的音频 - (可选)在
ACE-Step Lyrics Language Switch
的输入修改后的歌词,可以参考ACE-Step 项目页 - (可选)在
TextEncodeAceStepAudio
的tags
输入对应的音乐风格 - (可选)修改
KSampler
节点的denoise
参数(数字越大和原始的音频差别越大) - 点击
Run
按钮,或者使用快捷键Ctrl(cmd) + Enter(回车)
来执行音频的生成。 - 工作流完成后,你可在
Save Audio
节点中查看生成的音频,你可以点击播放试听,对应的音频也会被保存至ComfyUI/output/audio
(由Save Audio
节点决定子目录名称)。
ComfyUI ACE-Step LoRA
目前 ACE-Step 官方发布了一个 Chinese RAP 风格的 LoRA 模型,你可以访问 ACE-Step/ACE-Step-v1-chinese-rap-LoRA 来下载对应的 LoRA 模型,记得重命名为 ace-step-v1-chinese-rap-lora.safetensors
在开始前你需要手动将对应的文件下载并保存到 ComfyUI/models/loras
文件夹下
1. 工作流文件下载
2. 按步骤完成工作流的运行
- 确保
Load Checkpoints
节点加载了ace_step_v1_3.5b.safetensors
模型 - 在
Load LoRA
节点上添加ace-step-v1-chinese-rap-lora.safetensors
模型 - 其它选项修改与文生视频等一致,请点击
Run
按钮,或者使用快捷键Ctrl(cmd) + Enter(回车)
来执行音频的生成。 - 工作流完成后,你可在
Save Audio
节点中查看生成的音频,你可以点击播放试听,对应的音频也会被保存至ComfyUI/output/audio
(由Save Audio
节点决定子目录名称)。
ACE-Step 音乐扩展
ACE-Step 提示词指南
ACE 的提示词目前使用的有两个,一个是 tags
一个是 lyrics
。
tags
: 主要用来描述音乐的风格、场景等, 和我们平常其它生成的 prompt 类似,主要描述音频整体的风格和要求,使用英文逗号分隔lyrics
: 主要用来描述歌词,支持歌词结构标签,如 [verse](主歌)、[chorus](副歌)和 [bridge](过渡段)来区分歌词的不同部分,也可以在纯音乐情况下输入乐器名称
对应的 tags
和 lyrics
在 ACE-Step 模型主页 中可以找到丰富的示例,你可以参考对应示例来尝试对应的提示词,
下面的提示词我在 ComfyUI 的官方文档也有做了整理,基本上都是来自ACE-Step 项目主页,建议你可以访问他们的官方文档来了解如何撰写提示词。
tags标签(prompt)
主流音乐风格
使用简短标签组合,来生成特定风格的音乐
- electronic(电子音乐)
- rock(摇滚)
- pop(流行)
- funk(放克)
- soul(灵魂乐)
- cyberpunk(赛博朋克)
- Acid jazz(酸爵士)
- electro(电子)
- em(电子音乐)
- soft electric drums(软电鼓)
- melodic(旋律)
更多音乐风格组合示例
- DUBSTEP, DARKNESS, FEAR, TERROR(重复标签可增强效果)
- dark, death rock, metal, hardcore, electric guitar, powerful, bass, drums, 110 bpm, G major
- Cuban music, salsa, son, Afro-Cuban, traditional Cuban
- alternative rock, pop, rock
- dark electro, industrial techno, gothic rave
- disco
- electronic rap
- country rock, folk rock, southern rock, bluegrass, pop
- melancholic, world, sad
场景类型
结合具体使用场景和氛围,生成符合对应氛围的音乐
- background music for parties(派对背景音乐)
- radio broadcasts(电台广播音乐)
- workout playlists(健身播放列表音乐)
乐器元素
- saxophone, jazz(萨克斯风、爵士)
- piano, violin(钢琴、小提琴)
- 808 bass, sub bassline(808低音、副低音线)
- orchestral, synthesizer, violin, viola, cello(管弦乐、合成器、小提琴、中提琴、大提琴)
- phonk, russian dark accordion, russian psaltery, russian harmonica(俄罗斯手风琴、俄罗斯古筝、俄罗斯口琴)
人声类型
- female voice(女声)
- male voice(男声)
- clean vocals(纯净人声)
- crystal-clear soprano voice(清澈的女高音)
- deep male voice(深沉男声)
专业用语
使用音乐中常用的一些专业用词,来精准控制音乐效果:
- 110 bpm, 140 bpm, 160 bpm(指定每分钟节拍数)
- fast tempo(快节奏)
- slow tempo(慢节奏)
- loops(循环片段)
- fills(填充音)
- acoustic guitar(木吉他)
- electric bass(电贝斯)
- G major, B flat major, D minor(G大调、降B大调、D小调)
高级控制参数
变体控制
控制生成音乐与原始风格的差异程度:
- variance=0.1(相似度很高,几乎相同)
- variance=0.3(适度变化,保留基本风格)
- variance=0.5(中等变化,有明显差异)
- variance=0.7(较大变化,风格转变明显)
音频重绘(Repaint)
可以修改音频的特定方面或区域,同时保留其余部分:
- change singing gender(改变演唱性别)
- change style(改变音乐风格)
- change lyrics(改变特定歌词)
特殊音乐类型提示词
- 纯人声/清唱:使用”a cappella”标签,歌词可以使用元音字母组合(如”aaaaaaaa, eeeeeeeee”)
- 说唱/节奏控制:使用”b-box, deep male voice, trap, hip-hop, super fast tempo”
- 实验性音乐:可以使用非常规输入如元音重复或特殊文本格式
- 纯器乐:在lyrics部分使用”[inst]“标记
实验性输入格式
可以尝试使用更结构化的HTML格式描述音乐,例如:
<SONG_PROMPT>
<header>
[STYLE: Electro-Acid House] [MOOD: Energetic, Raw, Hypnotic, Futuristic]
[INSTRUMENTATION: Acid Basslines, Punchy Kicks, Snappy Claps, Crisp Hi-Hats]
[TEMPO: 128 BPM] [PRODUCTION: Raw Energy, Dynamic Acid Sequences]
</header>
<SONG_MODULES>
<INTRO>
[Punchy kick and filtered acid bassline create a raw, pulsating groove.]
</INTRO>
<BUILD_UP_1>
[Acid bassline evolves with increasing resonance and modulation.]
</BUILD_UP_1>
<DROP_1>
[Full-power acid bassline dominates with high resonance and distortion.]
</DROP_1>
</SONG_MODULES>
</SONG_PROMPT>
歌词(lyrics)
歌词结构标签
- [intro] (前奏)
- [verse] (主歌)
- [pre-chorus] (导歌)
- [chorus] (副歌/合唱)
- [bridge] (过渡段/桥段)
- [outro] (尾声)
- [hook] (钩子/主题旋律)
- [refrain] (重复段落)
- [interlude] (间奏)
- [breakdown] (分解段)
- [ad-lib] (即兴段落)
纯器乐音乐
对于纯器乐音乐,可以在lyrics部分使用: [inst] 或者指定乐器演奏部分:
[verse]
[chorus]
[solo]
[verse]
[chorus]
[outro]
多语言支持
- ACE-Step V1 是支持多语言的,实际使用的时候 ACE-Step 会获取到对应的不同语言转换后的英文字母,然后进行音乐生成。
- 在 ComfyUI 中我们并没有完全实现全部多语言到英文字母的转换,目前仅实现了日语平假名和片假名字符
所以如果你需要使用多语言来进行相关的音乐生成,你需要首先将对应的语言转换成英文字母,然后在对应
lyrics
开头输入对应语言代码的缩写,比如中文[zh]
韩语[ko]
等,或者用我在本文提到的ACE-Step Lyrics Language Switch
节点来完成对应语言的转换。
比如:
[verse]
[zh]wo3zou3guo4shen1ye4de5jie1dao4
[zh]leng3feng1chui1luan4si1nian4de5piao4liang4wai4tao4
[zh]ni3de5wei1xiao4xiang4xing1guang1hen3xuan4yao4
[zh]zhao4liang4le5wo3gu1du2de5mei3fen1mei3miao3
[chorus]
[verse]
[ko]hamkke si-kkeuleo-un sesang-ui sodong-eul pihae
[ko]honja ogsang-eseo dalbich-ui eolyeompus-ileul balaboda
[ko]niga salang-eun lideum-i ganghan eum-ag gatdago malhaess-eo
[ko]han ta han tamada ma-eum-ui ondoga eolmana heojeonhanji ijge hae
[bridge]
[es]cantar mi anhelo por ti sin ocultar
[es]como poesía y pintura, lleno de anhelo indescifrable
[es]tu sombra es tan terca como el viento, inborrable
[es]persiguiéndote en vuelo, brilla como cruzar una mar de nubes
[chorus]
[fr]que tu sois le vent qui souffle sur ma main
[fr]un contact chaud comme la douce pluie printanière
[fr]que tu sois le vent qui s'entoure de mon corps
[fr]un amour profond qui ne s'éloignera jamais
目前 ACE-Step 支持了 19 种语言,但下面十种语言的支持会更好一些:
- English
- Chinese: [zh]
- Russian: [ru]
- Spanish: [es]
- Japanese: [ja]
- German: [de]
- French: [fr]
- Portuguese: [pt]
- Italian: [it]
- Korean: [ko]
歌词编辑示例
在音频到音频工作流中,可以精确修改特定歌词:
- “When I was young” -> “when you were kid”
- “When I was young” -> “When I was old”
- “I’d listen to the radio” -> “I’d listen to the spotify”
- “It made me smile” -> “It made me cry”
也可以进行语言转换,保留相同的旋律和风格:
- “When I was young” -> “Quand j’étais jeune”(法语)
- “When I was young” -> “In meiner Jugend”(德语)
- “When I was young” -> “子供の頃に”(日语)
- “When I was young” -> “내가 어렸을 때”(韩语)
- “When I was young” -> “我小的时候”(中文)
但是在 ComfyUI 原生节点输入可能会比较麻烦,建议使用 ACE-Step Lyrics Language Switch
节点来完成对应语言的转换。