ComfyUI 音频分离插件完全教程
1. 插件简介
插件地址: https://github.com/christian-byrne/audio-separation-nodes-comfyui
这个插件就像一个超级厉害的音频魔法师!它能帮你做很多神奇的音频处理工作:
这个插件能干什么?
- 音频分离:把一首歌拆分成人声、贝斯、鼓声、其他乐器四个部分,就像把一个蛋糕切成四块
- 音频剪辑:像剪视频一样剪音频,想要哪一段就剪哪一段
- 音频合并:把两个音频混合在一起,就像调鸡尾酒一样
- 节拍匹配:让两首歌的节拍速度变得一样,方便混音
- 变速播放:让音频播放变快或变慢,但音调不变
- 视频配音:给视频换背景音乐或配音
- 节拍检测:自动识别音乐的节拍速度
能给我们带来什么效果?
- 制作卡拉OK伴奏(去掉人声留下音乐)
- 提取歌曲中的人声部分
- 给视频换背景音乐
- 制作音乐混音作品
- 分析音乐的节拍和结构
2. 如何安装
方法一:ComfyUI Manager 安装(推荐)
- 打开 ComfyUI Manager
- 搜索 "audio-separation"
- 点击安装即可
方法二:手动安装
- 进入 ComfyUI 的
custom_nodes文件夹 - 运行命令:
git clone https://github.com/christian-byrne/audio-separation-nodes-comfyui.git - 进入插件文件夹:
cd audio-separation-nodes-comfyui - 安装依赖:
pip install -r requirements.txt - 重启 ComfyUI
需要的依赖包
- librosa==0.10.2(音频处理库)
- torchaudio>=2.3.0(音频处理库)
- numpy(数学计算库)
- moviepy(视频处理库)
3. 节点详细解析
3.1 AudioSeparation 节点 - 音频分离魔法师
这个节点就像一个超级厉害的音频分析师,能把一首完整的歌曲拆分成四个独立的部分:贝斯、鼓声、其他乐器和人声。就像把一个混合果汁分离成不同的水果成分。
输出结果:
- Bass(贝斯):低音部分,就像音乐的地基
- Drums(鼓声):节拍部分,就像音乐的心跳
- Other(其他):除了贝斯、鼓声、人声以外的所有乐器
- Vocals(人声):歌手唱歌的声音
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | AUDIO类型 | - | 要分离的音频文件 | 输入的音频数据 | 连接一个音频文件,比如一首完整的歌 |
| chunk_fade_shape | chunk_fade_shape | linear/half_sine/logarithmic/exponential | linear | 音频切片的淡入淡出方式 | 音频分段处理时的淡化形状 | linear是均匀淡化,half_sine是平滑曲线 |
| chunk_length | chunk_length | 浮点数 | 10.0 | 每个音频片段的长度(秒) | 音频分段处理的片段长度 | 10.0表示每次处理10秒的音频 |
| chunk_overlap | chunk_overlap | 浮点数 | 0.1 | 音频片段之间的重叠时间(秒) | 相邻音频片段的重叠长度 | 0.1表示片段间重叠0.1秒,避免断裂 |
3.2 AudioTempoMatch 节点 - 节拍同步器
这个节点就像一个音乐指挥家,能让两首不同节拍的歌曲变成相同的节拍速度。比如一首歌是120拍,另一首是100拍,它会让两首歌都变成110拍。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio_1 | audio_1 | AUDIO类型 | - | 第一个音频文件 | 第一个输入音频 | 连接第一首要同步节拍的歌 |
| audio_2 | audio_2 | AUDIO类型 | - | 第二个音频文件 | 第二个输入音频 | 连接第二首要同步节拍的歌 |
3.3 AudioCrop 节点 - 音频剪刀
这个节点就像一把精确的剪刀,能从一段长音频中剪出你想要的部分。就像从一部电影中剪出精彩片段。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | AUDIO类型 | - | 要剪辑的音频文件 | 输入的音频数据 | 连接一个完整的音频文件 |
| start_time | start_time | 字符串 | "0:00" | 开始时间 | 剪辑的起始时间点 | "1:30"表示从1分30秒开始剪 |
| end_time | end_time | 字符串 | "1:00" | 结束时间 | 剪辑的结束时间点 | "3:45"表示剪到3分45秒结束 |
3.4 AudioCombine 节点 - 音频调音师
这个节点就像一个调音师,能把两个音频文件混合在一起。就像把两种颜料混合成新颜色。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio_1 | audio_1 | AUDIO类型 | - | 第一个音频文件 | 第一个输入音频 | 连接第一个要混合的音频 |
| audio_2 | audio_2 | AUDIO类型 | - | 第二个音频文件 | 第二个输入音频 | 连接第二个要混合的音频 |
| method | method | add/mean/subtract/multiply/divide | add | 混合方式 | 音频波形的数学运算方式 | add是叠加,mean是平均,subtract是相减 |
3.5 AudioVideoCombine 节点 - 视频配音师
这个节点就像一个视频编辑师,能给视频换上新的音频。就像给电影配音或换背景音乐。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | AUDIO类型 | - | 新的音频文件 | 要添加到视频的音频 | 连接一个音频文件作为新配音 |
| video_path | video_path | 字符串 | "/path/to/video.mp4" | 视频文件路径 | 目标视频文件的完整路径 | 输入视频文件的完整路径,如"/Users/name/video.mp4" |
| video_start_time | video_start_time | 字符串 | "0:00" | 视频开始时间 | 视频剪辑的起始时间 | "0:30"表示从30秒开始 |
| video_end_time | video_end_time | 字符串 | "1:00" | 视频结束时间 | 视频剪辑的结束时间 | "2:15"表示到2分15秒结束 |
| auto_open | auto_open | true/false | false | 自动打开完成的视频 | 处理完成后是否自动播放 | true会自动用播放器打开新视频 |
3.6 AudioSpeedShift 节点 - 音频变速器
这个节点就像一个时间控制器,能让音频播放变快或变慢,但音调保持不变。就像调节播放器的倍速功能,但更专业。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | AUDIO类型 | - | 要变速的音频文件 | 输入的音频数据 | 连接一个音频文件 |
| rate | rate | 0.1-10.0 | 1.0 | 变速倍率 | 时间拉伸的倍率 | 2.0是2倍速,0.5是半速播放 |
3.7 AudioGetTempo 节点 - 节拍探测器
这个节点就像一个音乐分析师,能自动检测音乐的节拍速度(BPM)。就像音乐软件显示的"120 BPM"那样。
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | AUDIO类型 | - | 要分析的音频文件 | 输入的音频数据 | 连接一个音频文件进行节拍分析 |
输出结果:
- tempo_string:节拍速度的文字形式(如"120")
- tempo_float:节拍速度的小数形式(如120.5)
- tempo_integer:节拍速度的整数形式(如120)
4. 使用技巧和建议
音频分离技巧
- 选择合适的音频:清晰录制的音乐效果最好,现场录音可能效果不佳
- 调整片段长度:如果内存不够,可以减少chunk_length到5.0秒
- 重叠设置:如果音频变化很快,可以增加chunk_overlap到0.2秒
音频剪辑技巧
- 时间格式:支持"分:秒"格式,如"2:30"表示2分30秒
- 纯秒数:也可以直接输入秒数,如"150"表示150秒
- 精确剪辑:可以精确到秒,适合制作铃声或片段
音频合并技巧
- 音量平衡:使用"mean"方法可以避免音量过大
- 创意混音:尝试"multiply"或"subtract"创造特殊效果
- 长度匹配:系统会自动裁剪到较短音频的长度
节拍匹配技巧
- 适合混音:制作DJ混音时特别有用
- 保持音质:轻微的节拍调整音质损失最小
- 配合使用:可以和AudioCombine节点配合制作混音
5. 常见问题解答
Q: 为什么音频分离效果不好?
A: 可能原因:1)音频质量不高 2)乐器混合太复杂 3)可以尝试调整chunk_length参数
Q: 视频配音时找不到文件怎么办?
A: 确保视频文件路径是完整的绝对路径,如"/Users/用户名/Desktop/video.mp4"
Q: 音频变速后声音变奇怪了?
A: 不要设置过极端的倍率,建议在0.5-2.0之间,超出范围可能产生异常
Q: 节拍检测不准确怎么办?
A: 某些音乐类型(如古典音乐、环境音)可能检测困难,电子音乐和流行音乐效果最好
Q: 处理大文件时内存不够?
A: 减少chunk_length参数,或者先用AudioCrop节点分段处理
Q: 合并音频时长度不一致?
A: 系统会自动以较短的音频为准,如需保持完整长度,请先用其他工具调整到相同长度
6. 实用应用场景
制作卡拉OK
- 使用AudioSeparation分离音频
- 取出除Vocals外的其他三个输出
- 用AudioCombine合并成伴奏
提取纯人声
- 使用AudioSeparation分离音频
- 直接使用Vocals输出
- 可用于学习唱歌或分析演唱技巧
视频换背景音乐
- 用AudioSeparation提取原视频的人声
- 准备新的背景音乐
- 用AudioCombine混合人声和新音乐
- 用AudioVideoCombine合成最终视频
制作混音作品
- 用AudioGetTempo检测两首歌的节拍
- 用AudioTempoMatch统一节拍
- 用AudioCombine混合音频
- 用AudioCrop剪辑精彩部分
教程完成!共分析了7个节点,涵盖了音频分离、剪辑、合并、变速、节拍检测等全部功能。
节点统计:
- AudioSeparation:音频分离
- AudioTempoMatch:节拍匹配
- AudioCrop:音频剪辑
- AudioCombine:音频合并
- AudioVideoCombine:视频配音
- AudioSpeedShift:音频变速
- AudioGetTempo:节拍检测