YuE2:ComfyUI 完整歌曲与人声生成
使用开源 YuE2 模型在 ComfyUI 中生成带人声的完整歌曲:通过 ABC 规划实现文本转音乐,以及使用 SheetSage2 生成保留旋律的翻唱。
YuE2:ComfyUI 完整歌曲与人声生成
使用开源 YuE2 模型在 ComfyUI 中生成带人声的完整歌曲:通过 ABC 规划实现文本转音乐,以及使用 SheetSage2 生成保留旋律的翻唱。
YuE2 是来自 Multimodal Art Projection (m-a-p) 的开源音乐生成模型,可将风格提示和歌词转换为包含人声和器乐伴奏的完整歌曲。它是一个 3B 参数模型,能够生成完整的歌曲结构,包含前奏、主歌、副歌、桥段和尾奏等段落,并支持多种演唱语言,包括英语、中文和日语。
YuE2 与大多数文本到音乐系统的不同之处在于其可编辑的作曲步骤。在生成音频之前,YuE2 可以先用 ABC notation 编写符号化的音乐计划:一段旋律,可选带和弦,供你检查和编辑。最终歌曲则根据该计划渲染生成。这使结果比一次性音频生成更易于控制,同时也支撑了下面的翻唱工作流:将参考歌曲转录为相同的记谱,并用新的风格和歌词重新演唱。
YuE2 在 ComfyUI 中原生支持。开始之前,请更新到 ComfyUI 的最新版本。需要 ComfyUI v0.36.0 或更高版本。
[!TIP] > [tab] 本地用户 > > 请确保你的 ComfyUI 已经更新。 > > ComfyUI 下载 > ComfyUI 更新教程 > > 本指南里的工作流可以在工作流模板中找到。如果找不到,可能是 ComfyUI 没有更新。 > > 如果加载工作流时有节点缺失,可能原因有: > > 1. 你用的不是最新版(每夜版)。 > 2. 启动时有些节点导入失败。 > [tab] 云端用户 > > * Cloud 会在 ComfyUI 稳定版本发布后更新。 > > 所以,如果你发现本文档中有任何核心节点缺失,可能是因为新核心节点尚未在最新稳定版中发布。请等待下一个稳定版发布。
[!NOTE] YuE2 目前还没有在 Comfy Cloud 上提供。本页的两个工作流需要在本地安装的 ComfyUI 中运行,暂时没有可以打开的 Cloud 模板。
文本生成音乐
根据音乐风格描述和你自己的歌词生成一首完整的歌曲。启用 ABC 规划后,YuE2 会先创建一个可编辑的符号化音乐规划(旋律,以及可选的和弦),然后根据该规划生成最终音频。

[card] 下载工作流 下载 JSON,或在模板库中搜索 "YuE2: Text to Music"
1. 运行步骤
- 在 Style 中写下你想要的音乐描述
- 在 Lyrics 中使用
[Verse]、[Chorus]等段落标签输入歌词 - 选择规划 Mode:
full会生成旋律与和弦,melody仅生成旋律 - 设置歌曲的 Max Duration
- 将工作流加入队列以生成歌曲
2. 模型下载
[card] YuE2 checkpoint yue2\_3b\_int8\_convrot.safetensors
将文件放入以下目录:
📂 ComfyUI/
├── 📂 models/
│ └── 📂 checkpoints/
│ └── yue2_3b_int8_convrot.safetensors
3. 编写风格
描述主要的音乐特征。常用的元素包括:
- Genre:流行、爵士、摇滚、电子、民谣
- Vocals:温暖的女声、富有表现力的男声、柔和的人声
- Language:英语、中文、日语等
- Tempo:90 BPM、慢速、轻快
- Instruments:钢琴、电吉他、贝斯、鼓、合成器
示例:
英语,温暖女声,现代流行,96 BPM,钢琴,圆润的电贝斯,克制的鼓组,清晰的咬字
请把音乐指令写在 Style 中,而不是写在歌词里。
4. 编写歌词
使用段落标签来描述歌曲结构:
[Verse]
Morning light across the window
City waking down below
[Chorus]
Run with me into the sunlight
Leave the shadows far behind
你可以使用 [Verse]、[Chorus]、[Bridge]、[Outro] 等段落来组织歌曲结构。在 lyrics 字段中只填写打算演唱的歌词。
5. ABC 规划
Mode 选项控制符号化规划步骤:
- full:在生成歌曲之前创建包含旋律与和弦的规划。推荐用于常规的文本生成音乐任务。
- melody:创建仅包含旋律的规划,让伴奏更自由地生成。
将 abc 输入留空会禁用规划,直接根据 Style 和 Lyrics 生成音乐。
6. 最大时长
Max Duration 以秒为单位设置已生成歌曲的最大长度,最大为 900。生成预算为每 1 秒目标时长 25 个语义 token,模型一旦写出歌曲的结束 token 就会停止采样,因此结构提前完成的歌曲可能在远早于上限处结束。Text to Music 模板将其设为 120 秒,Music Cover 模板沿用节点的 360 秒默认值。
目标时长还会受到模型上下文的限制。当风格、歌词和 ABC 乐谱占用的上下文超过本次运行能提供的余量时,ComfyUI 会把预算缩减到剩余可用量,并在控制台输出 YuE2 music budget reduced to ... tokens (... seconds) to fit the prompt.。因此长提示词会缩短歌曲,而不是让运行失败。若上下文完全没有剩余空间,运行会以 YuE2 prompt leaves no room for music; shorten the style, lyrics, or ABC. 终止。
当控制台出现 YuE2 semantic reached its token budget before the end token. 警告时,说明模型在写出歌曲结束 token 之前就用尽了预算,此时渲染出的音频可能突然中断,而不是完整结束整首歌,因为这些语义 token 正是音频阶段要渲染的歌曲内容。可以提高 Max Duration 为歌曲留出更多空间。如果同一次运行还输出了预算缩减日志,说明提示词已经占满可用上下文,此时应改为缩短风格、歌词或 ABC 乐谱。乐谱阶段会给出同样的警告 YuE2 abc reached its token budget before the end token.,此时被截断的是乐谱本身,需要调高的是 YuE2 Generate ABC 节点的 max_abc_tokens。
7. 引导强度
YuE2 Generate Music 节点提供高级选项 cfg_scale(0 到 100,默认 1.0),用于设置风格和歌词的自回归引导:
1.0会关闭引导,与 ABC 工作流保持一致。内置模板保留此默认值1.01可复现该选项加入之前的引导强度,适用于关闭规划(abc留空)的生成
音乐翻唱
为已有歌曲创建全新版本。该工作流使用 SheetSage2 将参考音频中的旋律转写为可编辑的 ABC 乐谱,然后使用 YuE2 以新的风格和歌词重新生成歌曲。

[card] 下载工作流 下载 JSON,或在模板库中搜索 "YuE2: Music Cover"
输入素材
将此文件上传到对应的 LoadAudio 节点:
[card] yue2\_reference\_song.flacLoadAudio节点 ·yue2_reference_song.flac
1. 运行步骤
- 在 Audio 中加载参考歌曲
- 在 Style 中描述新的音乐方向
- 在 Lyrics 中输入你想演唱的歌词
- 将工作流加入队列,生成新的翻唱版本
参考音频提供旋律,而 YuE2 会根据你的 Style 和 Lyrics 创建全新的演唱与编曲。
2. 模型下载
[card] YuE2 模型 yue2\_3b\_int8\_convrot.safetensors
[card] SheetSage2 音频编码器 sheetsage2\_bf16.safetensors
将文件放入以下目录:
📂 ComfyUI/
├── 📂 models/
│ ├── 📂 checkpoints/
│ │ └── yue2_3b_int8_convrot.safetensors
│ └── 📂 audio_encoders/
│ └── sheetsage2_bf16.safetensors
3. 翻唱的工作原理
该工作流不会将参考音频直接输入 YuE2,而是:
Reference Audio
↓
SheetSage2 (transcription)
↓
Melody ABC score
↓
YuE2 (generation with new Style and Lyrics)
由于与原歌曲的关联在于旋律,当新歌词在句式结构和音节数量上与原曲保持大致接近时,翻唱效果最佳。
4. 编写 Style 和 Lyrics
清晰地描述目标音乐风格。有用的元素包括曲风、人声类型、语言、速度、乐器和情绪:
English, soulful jazz-pop, expressive male vocal, relaxed 88 BPM, Rhodes piano, upright bass, brushed drums, warm saxophone, intimate late-night atmosphere
使用与文本生成音乐工作流相同的 [Verse] / [Chorus] / [Bridge] / [Outro] 段落标签。为了获得更好的旋律匹配效果,请让新歌词的长度与原歌词行接近。