
只换和声不动旋律YuE2 agentic editing 的细粒度编辑到底怎么实现【免费下载链接】Yue2项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/Yue2AI 音乐生成走到今天最大的痛点已经不是能不能生成一首好听的歌而是能不能改一个我想要改的地方。Suno 给你一首不错的歌但你没法说副歌的和声再爵士一点主旋律一个音都不要动——它是一张抽卡结果你只能重抽。YuE2 是 2026 年最受关注的开源音乐生成模型港科大与 M-A-P 团队技术报告 arXiv:2609.33757它在 WildSongBench 上以 SongBench 全局均值 6.96best-of-8超过 Suno v5/v6更关键的是它把生成变成了可审阅、可局部干预的工程流程先写一份人类可读的 ABC 乐谱再据此渲染 48kHz 完整歌曲。本文结合 YuE2 技术报告与社区实测拆解其 agentic editing 的实现机制重点回答只换和声、不动旋律这种外科手术式编辑在符号与音频统一的模型里到底是怎么做到的从抽卡到工程agentic editing 的机制设计先厘清一个概念YuE2 的细粒度编辑并不是在音频波形上做 EQ 或剪切而是在乐谱层面做修改。YuE2 的生成过程被分解为符号作曲symbolic composition planning与音频渲染两层模型先用 AR 流写出一份包含旋律、和弦、调性、节拍、速度与曲式结构的 ABC 乐谱再把它扩展为 25Hz 的语义音乐 token 与连续声学隐变量最终由 VAE 解码为 48kHz 立体声。论文把这种设计称为progressive musical commitment——文本表达意图乐谱承诺旋律/和声/节奏/形式音频层再解决时值、音色、表达与制作细节。乐谱是唯一的人类可读介入点也正是 agent 的操作对象。官方给出的 agentic editing 定义是用户通过音乐对话塑造歌曲一个外部语言模型 Agent 把请求翻译成乐谱、风格描述与歌词的具体修订而同一个 YuE2 checkpoint 负责把每个修订版本渲染成完整歌曲。模型卡上的演示案例The Last Train完整展示了这条链路一首中文流行歌经过 9 个精选步骤、14 个渲染版本被改编成带现代和声的英语爵士期间还加入了一段围绕两遍完整《小星星》主题展开的萨克斯间奏。研究者负责把控音乐方向、通过试听选定最终版本Agent 负责把我想要更爵士的和声这类模糊反馈落成具体的和弦替换。注意这里的分工Agent 负责改谱子模型负责执行谱子人负责验收听感——三者各司其职这正是它区别于一句 prompt 重生成的根本。从工程视角看这套机制的核心是一句话编辑虽然会让整首歌重新渲染但请求的变更可以被限定在局部。技术报告原文明确指出Although YuE2 regenerates the entire song after a score edit, the requested change can be local.实现方式是把修改后的乐谱作为**固定前缀fixed prefix**输入编辑模式下修订后的乐谱 $\tilde{s}$ 被当作条件前缀模型基于它重新生成下游的语义 token 与声学隐变量。乐谱中未改动的部分——比如主旋律的音高与节奏——作为硬约束进入生成模型在训练时学会了遵循谱面内容的映射于是局部改动被忠实执行其余内容被大概率保留。和声重配任务ABC 乐谱导出、编辑、语法校验到渲染ABC一种能读懂也能改的文本记谱法YuE2 选用的符号载体是 ABC 记谱法——一种纯文本乐谱格式天然适合大模型序列化生成也天然适合人工或 Agent 编辑。论文对 ABC 谱的内容有明确拆解头部声明指定速度、拍号与调号小节线与段落标签组织时间与曲式和弦符号指定和声人声与器乐声部指定旋律。在 token 层面ABC 与普通文本共用词表模型生成顺序是[ABC_START] s [ABC_END] [MUSIC_START] c [MUSIC_END]——先写完整谱面再写语义 token。所以一次只换和声的标准工作流长这样导出乐谱生成歌曲时调用pipe.plan()或完整生成再用song.save_artifacts()把score.abc含旋律与和弦符号导出。本仓库就是 ComfyUI 可直接加载的模型重打包目录结构按官方要求放置详见 README.md 的说明 ComfyUI/ └── models/ ├── audio_encoders/ │ └── sheetsage2_bf16.safetensors └── checkpoints/ └── yue2_3b_bf16.safetensors人工编辑或交给 Agent 改谱针对和声重配官方给出的操作守则非常具体——ask the agent to preserve melody pitches and rhythm and check sustained notes against the new chords要求 Agent 保留旋律音高与节奏并检查长音与新和弦是否冲突。这实际上是在提示 Agent 遵循传统配和声的规则旋律音作为和弦外音需要处理、和弦替换不能破坏旋律的骨干音。论文的受控编辑实验进一步揭示了替换规则和声编辑按谱面顺序处理副歌开头最多四小节的完整和弦跨度将每个根音与低音移动 5/7/2/3 半音避开与当前相邻和弦的根音与性质重复和弦性质、时值、人声音符一律不动并在匹配乐句中重复同样的替换——平均覆盖谱面 43.86% 的时长。语法校验值得说明的是生成端采样 ABC 时官方明确不使用语法约束ABC is sampled without grammar constraints因此可读与合法之间的缝隙需要工具兜底。论文中 SheetSage2 的训练管线包含parser 检查导出记谱受控编辑实验也做了独立 ABC-to-MIDI 检查验证音高与时值。社区传播的和声重配工作流ABC 导出 → 编辑 → 语法校验 → 渲染正是补上了这一环用解析器/渲染器如 abcjs先行预览与校验再进入生成。这一步虽然不起眼却是乐谱作为工程接口能够成立的前提。渲染将修订后的edited.abc连同cotfull旋律和弦规划模式与同一 seed 送回模型。官方示例大致如下模型以 wheel 形式发布本仓库则提供 ComfyUI 可直接加载的权重from pathlib import Path from yue2 import YuE2Pipeline pipe YuE2Pipeline.from_pretrained(m-a-p/YuE2-3B, devicecuda) plan pipe.plan(stylestyle, lyricslyrics, cotfull, seeddemo[seed]) plan.save(original_plan) # 导出一份含旋律和弦的规划score.abc # 编辑 edited.abc只替换和弦符号旋律与歌词保持原样 song pipe( styleedited_style, lyricslyrics, abcPath(edited.abc).read_text(encodingutf-8), cotfull, seeddemo[seed], ) song.save(edited.flac) song.save_artifacts(outputs/edited)乐谱-音频一致性改谱真的会改歌吗改了谱子、歌没变是这类模型最容易被质疑的点。YuE2 用两个方向的实验回答。第一是生成谱面与成品的对齐度把模型生成的 192 首歌曲过一遍冻结的 SheetSage2 转录器对比谱面音符/和弦与实际录音旋律序列相似度达0.9464、和弦序列0.9246而换用同 prompt 下另一首歌的谱子Mismatched 对照组骤降到 0.216/0.247——说明录音确实执行了它自己那份谱而不是单纯贴合 prompt。第二是受控编辑的遵从与保持这是只换和声最硬核的证据见表编辑类型编辑遵从度未编辑旋律保持未编辑和声保持和声换和弦目标和弦一致率79.54%全曲人声旋律一致率93.43%90.16%旋律改音高目标音高准确率 84.17%93.10%94.05%节奏交换时值相对起音准确率 73.43%94.34%93.08%一行一行读这张表就明白了细粒度的真实含义和声编辑执行了接近八成的目标和弦替换同时全曲旋律保持了九成以上旋律编辑改了音高和声与节奏基本不受牵连三项局部编辑后SongBench 质量分仍落在 6.64–6.73与未编辑对照6.70/6.73几乎持平。也就是说局部改动不是嘴上说说而是编辑遵从、内容保持、质量不降三件事同时成立的量化结果。为什么换和声真的能改变成品来自消融实验的证据如果说上面的数字证明了改谱有效那么 SHS100K 零样本翻唱实验则证明了和声这条信息通道的分量。YuE2 不训练翻唱配对仅靠固定源谱 目标风格描述的同一接口就能翻唱 948 首未见面作品。研究者在同一 checkpoint 下做了三档消融完整谱旋律和弦、去掉和弦的旋律谱、完全没有谱。结果非常清晰条件CLEWS mAP作品身份识别Discogs-VINet mAP目标风格贴合MuLanMusicality完整谱旋律和弦0.6470.2880.3825.104去掉和弦0.5980.1790.4175.490完全没有谱0.0060.0040.4745.691去掉整个乐谱作品身份识别几乎归零0.006说明谱面是这首歌是谁的锚点而单独去掉和声这一维度身份识别的跌幅大于旋律之外的其他信息——CLEWS 从 0.647 跌到 0.598VINet mAP 更是近乎腰斩。与之对应和声约束放松后目标风格贴合度反而上升0.382 → 0.417 → 0.474Musicality 也一路走高。研究者的定性结论是和声是音乐风格的重要载体——保留源曲和声会忠于原作放松和声则向目标风格靠拢。这正是只换和声能产生立竿见影效果的根本原因和声是连接作品身份与风格表达的阀门而 YuE2 让这个阀门首次对用户开放。更进一步的证据来自符号规划本身的价值。同一 checkpoint 下对比先写旋律和弦乐谱再渲染与跳过乐谱直接渲染专家听感中49.3% 的总体质量偏好投给了有规划无规划仅 34.6%旋律维度 44.0% 对 29.5%和弦进行维度 39.0% 对 21.0%。论文还给出了一组配对谱例有规划时主歌以低-低-高-高的轮廓动机呈现副歌高八度回归并拉长句尾形成可识别的主题变奏无规划时动机原地重复四次、副歌呼应薄弱和声低音下行也被打断。乐谱的先承诺让动机发展、和声连贯这些作曲层面的品质变得可以被干预而不只是听天由命。这套能力离 DAW 级编辑还有多远必须泼一盆冷水YuE2 的细粒度编辑距离 DAW 级制作还有相当距离但它已经把一个此前不可能的问题变成了工程问题。我们逐项盘点。已经逼近编曲级的部分。符号层旋律、和弦、节奏、调性、速度实现了真正的局部编辑改动范围可以小到副歌开头四小节的和弦跨度未改动内容保持率稳定在 90% 以上编辑后整体质量几乎不降且固定 seed 可以复现——官方 demo 全程用同一 seed 以保持旋律动机的一致性。这已经达到了编曲工作流的核心诉求把一首歌从唯一解变成可迭代的多个版本。仍然缺失的制作级能力。其一编辑的执行粒度是整曲重渲染 局部约束而非 DAW 的逐轨时间线局部重写——改一次和声整首歌的音色、混音、人声表现都会随之重新采样即使旋律保持率 93%剩下的 7% 仍是模型说了算没有逐轨冻结的能力谱面只区分人声与器乐两条声部线谈不上只改钢琴轨。其二控制面仍是二维的文本风格 prompt与符号乐谱力度、articulation、混响、声像、动态这类制作参数没有暴露接口只能靠 style prompt 间接碰运气。其三ABC 采样不做语法约束谱面合法性依赖外部校验工具这在工作流中是额外的人工程序。其四工程门槛与实时性官方数据是 RTX 4090 上 3.6 分钟歌曲生成约 71 秒、峰值显存 11.18 GiB加上配套 SheetSage2 转录器本仓库中的 sheetsage2_bf16.safetensors与 VAE仍需 24GB 级 GPU社区为降低门槛已给出 INT8 量化版本如本仓库的 yue2_3b_int8_convrot.safetensors与 ComfyUI 工作流封装官方模板提供Music Cover与Text to Music两条管线社区实测也已跟进ComfyUI v0.36.0 起内置 Yue2 音乐节点。生态上的现实路径。DAW 级编辑的本质是时间线 自动化 多轨混合YuE2 现在提供的是乐谱 Agent 渲染的接口两者不是替代关系而是可以嵌套乐谱层负责作曲决策渲染层负责成品试听真正的音色、混音仍交给 DAW 后期。从本仓库的形态也能看出这套生态的演进方向——checkpoints/yue2_3b_bf16.safetensors 这类单文件权重正在被 ComfyUI 节点化、被社区封装成可视化编辑图细粒度编辑的能力边界未来大概率会由谁能把乐谱编辑做得更顺手、谁能把渲染做成局部可重算来决定而不是由模型参数规模决定。结语YuE2 的贡献不在于又有一个音乐模型达到 Suno v5 水平而在于它把生成从黑盒抽卡变成了白盒工程乐谱是生成状态Agent 是编辑者渲染是执行器人是验收者。论文用 79.54% 的和声遵从、93.43% 的旋律保持与 SHS100K 的和声消融实验量化证明了只换和声不动旋律不是一句宣传语而是一套有明确机制、有数据支撑的局部干预能力。至于离 DAW 还有多远最诚实的回答是编曲维度已经可以上手制作维度仍待补课但至少从今天起AI 音乐生成第一次有了改谱重渲而非整曲重抽的工作方式——这本身就是一个分水岭。【免费下载链接】Yue2项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/Yue2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考