ComfyUI_YuE 插件保姆级教程
1. 插件简介
插件地址: https://github.com/smthemex/ComfyUI_YuE
ComfyUI_YuE 是一个超级厉害的音乐生成插件!它就像一个会作曲的魔法师,能够把你写的歌词变成完整的歌曲。这个插件基于 YuE 开源音乐生成模型,可以根据你提供的歌词和音乐风格描述,自动生成包含人声和伴奏的完整音乐作品。
能给我们带来什么效果:
- 把歌词变成真正的歌曲(就像给歌词配上旋律和伴奏)
- 支持多种音乐风格(流行、摇滚、电子等200多种风格)
- 生成高质量的音频文件
- 可以控制歌曲长度和音乐特色
- 支持不同的声音特色(男声、女声、各种音色)
2. 如何安装
2.1 下载插件
在 ComfyUI 的 custom_nodes 目录下运行:
git clone https://github.com/smthemex/ComfyUI_YuE.git
2.2 安装依赖包
pip install -r requirements.txt
特别提醒:
- 如果你想用更省显存的方法,可以选择安装:
pip install mmgp(内存管理工具)pip install exllamav2(量化加速工具)
2.3 下载模型文件
你需要下载几个模型文件,就像下载游戏资源包一样:
基础模型(必须下载):
- 从 这里 下载
ckpt_00360000.pth - 从 这里 下载
decoder_131000.pth和decoder_151000.pth - 放到
ComfyUI/models/yue/文件夹里
语言模型(自动下载或手动下载):
- 英文版:
m-a-p/YuE-s1-7B-anneal-en-cot - 中文版:
m-a-p/YuE-s1-7B-anneal-zh-cot - 第二阶段模型:
m-a-p/YuE-s2-1B-general
3. 节点详解
3.1 YUE_Stage_A_Loader 节点
这个节点就像一个"音乐大脑加载器",负责加载第一阶段的音乐生成模型。
3.1.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 第一阶段模型库 | stage_A_repo | 文本输入 | m-a-p/YuE-s1-7B-anneal-en-cot | 就像选择哪个音乐老师来教你作曲 | 指定第一阶段语言模型的HuggingFace仓库地址 | 英文歌用en-cot,中文歌用zh-cot |
| 音频编码器模型 | xcodec_ckpt | 下拉选择 | 包含"36"的文件 | 选择音频压缩工具,就像选择音频格式转换器 | 音频编解码器检查点文件 | 选择ckpt_00360000.pth |
| 量化模式 | quantization_model | 下拉选择 | fp16 | 选择模型运行的精度模式,影响显存占用和速度 | 模型量化方式,平衡性能和质量 | 显存大用fp16,显存小用int8或int4 |
| 使用内存管理 | use_mmgp | 布尔值 | True | 开启智能内存管理,就像给电脑装个内存清理大师 | 启用MMGP内存管理优化 | 显存不够时开启,会慢一些但省显存 |
| 第一阶段缓存大小 | stage1_cache_size | 整数 | 16384 | 设置缓存大小,就像设置浏览器缓存 | 第一阶段模型的缓存大小 | 显存大可以设大一些,显存小就保持默认 |
| EXL量化缓存模式 | exllamav2_cache_mode | 下拉选择 | FP16 | 选择量化缓存的精度 | ExllamaV2量化引擎的缓存模式 | 配合quantization_model使用 |
| 内存管理配置 | mmgp_profile | 数字选择 | 2 | 选择内存管理的激进程度,数字越大越省显存但越慢 | MMGP内存管理的配置档案 | 0-5可选,2是平衡选择 |
3.2 YUE_Stage_A_Sampler 节点
这个节点是"歌词变音乐的魔法师",负责把你的歌词和风格描述转换成音乐代码。
3.2.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型 | model | 模型对象 | 来自Stage_A_Loader | 接收加载好的音乐大脑 | 第一阶段加载的模型对象 | 连接上一个节点的输出 |
| 音乐风格提示 | genres_prompt | 文本输入 | inspiring female uplifting pop... | 描述你想要的音乐风格,就像告诉歌手怎么唱 | 音乐风格和情感的文本描述 | "欢快的流行音乐 女声 电子音乐" |
| 歌词内容 | lyrics_prompt | 多行文本 | [verse]开头的歌词 | 输入你的歌词,就像给歌手歌词本 | 结构化的歌词文本,包含段落标记 | 用[verse][chorus]等标记段落 |
| 随机种子 | seed | 整数 | 0 | 控制随机性,相同种子产生相同结果 | 随机数生成器的种子值 | 想要重复结果就用相同数字 |
| 运行段落数 | run_n_segment | 整数 | 2 | 决定生成几个音乐段落,就像决定唱几段 | 生成的音乐段落数量 | 2-3段适合测试,更多段落歌曲更长 |
| 重复惩罚 | repetition_penalty | 浮点数 | 1.1 | 避免音乐太重复,就像避免歌手唱同一句话 | 防止生成重复内容的惩罚系数 | 1.0-2.0之间,越大越不重复 |
| 提示开始时间 | prompt_start_time | 浮点数 | 0.0 | 音频提示的开始时间点 | 音频提示的起始时间(秒) | 通常从0开始 |
| 提示结束时间 | prompt_end_time | 浮点数 | 30.0 | 音频提示的结束时间,也是生成音乐的长度 | 音频提示的结束时间(秒) | 30秒适合测试,可以设更长 |
| 最大新词元数 | max_new_tokens | 整数 | 3000 | 控制生成内容的长度上限 | 生成序列的最大token数量 | 越大生成越长,但也越慢 |
| 使用双轨提示 | use_dual_tracks_prompt | 布尔值 | True | 是否使用人声和伴奏分离的提示音频 | 启用分离的人声和伴奏轨道作为提示 | 开启可以更好地控制音乐结构 |
| 使用音频提示 | use_audio_prompt | 布尔值 | False | 是否使用完整音频作为参考 | 启用完整音频文件作为生成提示 | 想要模仿某首歌的风格时开启 |
| 卸载模型 | offload_model | 布尔值 | True | 生成完后是否释放显存 | 生成完成后是否卸载模型以释放内存 | 显存紧张时开启 |
| 第一阶段无引导 | stage1_no_guidance | 布尔值 | True | 是否关闭生成引导 | 禁用第一阶段的引导生成 | 通常保持开启以获得更好效果 |
3.3 YUE_Stage_B_Loader 节点
这个节点是"音质提升器加载器",负责加载第二阶段的音质增强模型。
3.3.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 信息 | info | 信息对象 | 来自Stage_A_Sampler | 接收第一阶段的配置信息 | 第一阶段传递的配置和状态信息 | 连接上一个节点的info输出 |
| 第二阶段模型库 | stage_B_repo | 文本输入 | m-a-p/YuE-s2-1B-general | 选择音质提升的模型,就像选择音频后期处理软件 | 第二阶段模型的HuggingFace仓库地址 | 通常使用默认的general模型 |
| 第二阶段缓存大小 | stage2_cache_size | 整数 | 8192 | 设置第二阶段的缓存大小 | 第二阶段模型的缓存大小 | 显存够用可以设大一些 |
| 第二阶段批处理大小 | stage2_batch_size | 整数 | 2 | 一次处理几个音频块,就像一次洗几件衣服 | 第二阶段处理的批次大小 | 显存大可以设大一些加快速度 |
| EXL量化缓存模式 | exllamav2_cache_mode | 下拉选择 | FP16 | 量化缓存模式 | ExllamaV2的缓存精度模式 | 与第一阶段保持一致 |
| 使用内存管理 | use_mmgp | 布尔值 | True | 是否启用内存管理优化 | 启用MMGP内存管理 | 显存不够时开启 |
3.4 YUE_Stage_B_Sampler 节点
这个节点是"最终音乐制作师",负责把音乐代码转换成最终的高质量音频文件。
3.4.1 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例例 |
|---|---|---|---|---|---|---|
| 第一阶段设置 | stage1_set | 阶段设置对象 | 来自Stage_A_Sampler | 接收第一阶段生成的音乐数据 | 第一阶段生成的音乐编码数据 | 连接Stage_A_Sampler的输出 |
| 模型 | model | 模型对象 | 来自Stage_B_Loader | 接收第二阶段的处理模型 | 第二阶段加载的模型对象 | 连接Stage_B_Loader的输出 |
| 人声解码器模型 | vocal_decoder_ckpt | 下拉选择 | 包含"131"的文件 | 选择人声音质提升工具 | 人声轨道的解码器模型文件 | 选择decoder_131000.pth |
| 伴奏解码器模型 | inst_decoder_ckpt | 下拉选择 | 包含"151"的文件 | 选择伴奏音质提升工具 | 伴奏轨道的解码器模型文件 | 选择decoder_151000.pth |
| 重新缩放 | rescale | 布尔值 | True | 是否调整音频音量到合适大小 | 是否对输出音频进行音量标准化 | 通常开启以获得标准音量 |
4. 使用技巧和建议
4.1 显存配置建议
- 显存 ≥ 24GB:使用 fp16 模式,关闭 use_mmgp,获得最佳质量和速度
- 显存 ≤ 16GB:开启 use_mmgp,或使用 int8/int4 量化模式
- 显存 ≤ 8GB:建议使用 exllamav2 量化模式
4.2 歌词编写技巧
- 使用结构化标记:
[verse]、[chorus]、[bridge]、[outro] - 每个段落保持合适长度,不要太长
- 歌词要有韵律感,便于配曲
4.3 风格提示词技巧
- 参考
top_200_tags.json文件中的标签 - 可以组合多个风格:如 "pop electronic female vocal uplifting"
- 包含情感描述:如 "happy", "romantic", "energetic"
4.4 音频长度控制
prompt_end_time参数控制生成长度- 建议先用 30 秒测试,满意后再生成更长版本
- 更长的音频需要更多显存和时间
5. 常见问题解答
5.1 显存不足怎么办?
- 开启
use_mmgp选项 - 使用 int8 或 int4 量化模式
- 减少
cache_size和batch_size - 使用 exllamav2 量化版本模型
5.2 生成速度太慢怎么办?
- 关闭
use_mmgp(如果显存够用) - 使用 exllamav2 量化模式
- 增加
batch_size(如果显存允许) - 减少
max_new_tokens
5.3 音质不满意怎么办?
- 使用 fp16 模式而不是量化模式
- 调整
repetition_penalty参数 - 优化歌词和风格提示词
- 确保使用了正确的解码器模型
5.4 歌词和音乐不匹配怎么办?
- 检查歌词的结构标记是否正确
- 调整风格提示词,使其与歌词内容匹配
- 尝试不同的
seed值 - 确保
run_n_segment设置合适
5.5 模型下载失败怎么办?
- 检查网络连接
- 使用镜像站点下载
- 手动下载模型文件到指定目录
- 确保有足够的磁盘空间
6. 工作流程示例
6.1 基础工作流程
- YUE_Stage_A_Loader → 加载第一阶段模型
- YUE_Stage_A_Sampler → 输入歌词和风格,生成音乐编码
- YUE_Stage_B_Loader → 加载第二阶段模型
- YUE_Stage_B_Sampler → 转换为最终音频文件
6.2 连接方式
- Stage_A_Loader 的
model输出 → Stage_A_Sampler 的model输入 - Stage_A_Sampler 的
stage1_set输出 → Stage_B_Sampler 的stage1_set输入 - Stage_A_Sampler 的
info输出 → Stage_B_Loader 的info输入 - Stage_B_Loader 的
model输出 → Stage_B_Sampler 的model输入
7. 高级技巧
7.1 音频提示功能
- 将参考音频文件替换
prompt_egs文件夹中的文件 - 使用
use_dual_tracks_prompt可以分别控制人声和伴奏 - 使用
use_audio_prompt可以模仿整体风格
7.2 批量生成
- 使用不同的
seed值生成多个版本 - 调整
repetition_penalty获得不同的变化程度 - 尝试不同的风格组合
7.3 后期处理
- 生成的音频会自动保存到 ComfyUI 输出目录
- 可以使用专业音频软件进一步编辑
- 支持导出为多种音频格式
8. 总结
ComfyUI_YuE 插件是一个功能强大的音乐生成工具,通过四个核心节点的配合,可以将文字歌词转换为完整的音乐作品。虽然对硬件要求较高,但通过合理的配置和优化,即使在有限的硬件条件下也能获得不错的效果。
记住最重要的几点:
- 根据你的显存选择合适的量化模式
- 好的歌词和风格描述是成功的关键
- 耐心调试参数,每个项目可能需要不同的设置
- 先用短时间测试,满意后再生成完整版本
希望这个教程能帮助你快速上手 ComfyUI_YuE 插件,创作出属于你的音乐作品!