一段视频只有一条混好的音轨。想换掉对白,又得留住背景音乐和音效——直接静音,三样全没了。ComfyUI-DBS 想解决的就是这个:把一条音轨拆成音乐、音效、人声三份,再按需保存或重新拼回去。

打开网易新闻 查看精彩图片

这是一个本地跑的 ComfyUI 集成,CPU 或 NVIDIA CUDA GPU 都能用。两个可用模型加起来下载量约23 MB。仓库里自带一条工作流,能用音乐加音效重新写出一版视频,抽出来的人声单独存成文件。

需要说清楚归属:这是对 Dynamic Band Splitting(DBS)的非官方集成,研究和训练好的模型出自 Bingzhe Zhang、Kai Li、Xiaolin Hu 三人,集成方贡献的是 ComfyUI 接入、工作流和验证。

三条轨能拿来干什么

DBS 输出三路音频,通常叫 stems:音乐是配乐部分,SFX 是音效,Speech 是说话对白。

  • 去对白:工作流把音乐和音效相加,作为视频的新音轨。
  • 配音准备或转写:单独保存 Speech 输出。
  • 后期调整:用分开的三条轨,在后续剪辑里调各自的相对音量。

这些是估算出来的分离结果。对白可能残留在其他轨里,想要的声音也可能被削掉一部分。先拿一小段试,把每一路输出都听一遍,再处理长视频。

装起来要什么条件

需要 ComfyUI v0.38.0 或更新版本(带 V3 节点 API),以及 Python 3.10 或更新版本。CUDA GPU 是可选项。

在 ComfyUI 根目录下,用运行 ComfyUI 的那个 Python 环境执行两条命令:克隆仓库到custom_nodes/ComfyUI-DBS,再安装 requirements.txt 里的依赖。便携版安装要把 python 换成该安装自带的 Python 可执行文件——依赖装进别的 Python 环境,ComfyUI 是用不上的。

模型用仓库里的下载脚本拉取,会建出 DBS-TIGER-DnR 和 DBS-BSRNN-DnR 两个目录。依赖只有 einops 和 safetensors,ComfyUI 一般已经带了。装完重启 ComfyUI 加载新节点;节点运行时只读本地模型文件,不会在跑的过程中下载。

拆一条视频的对白

打开自带的 video_remove_dialogue.json 工作流,在 Load Video 里选自己的视频——里面的 clip.mp4 只是占位文件名。流程是:Get Video Components 抽出帧、帧率和音频,DBS Loader 加 DBS Separate 把音频拆成音乐、音效、人声,Merge Audio 设为 add 把音乐和音效合起来,Create Video 加 Save Video 写出带这条新音轨的视频,人声则单独存成 FLAC。

工作流默认用 channels = each channel 独立处理左右声道,output_sample_rate = input 让输出回到输入采样率。模型本身工作在 44.1 kHz,重采样由节点处理。

只有音频输入的话,GUI 工作流目录里还有两条:separate_soundtrack.json 把三路 stems 都存成 FLAC,remove_dialogue.json 存音乐加音效,外加单独的对白轨。可以从这些工作流起步,把音频输出接到自己已有的图里。

两个模型怎么选

DBS-TIGER-DnR 是默认选项,在作者的 DnR v2 评测里分离分数高于 DBS-BSRNN。DBS-BSRNN-DnR 在仓库的本地实测里更快,是 CPU 场景的实用起点。

验证跑出来的两组数据:

  • RTX 5090 上,10 分钟输入按声道均值处理,DBS-TIGER 用37.9 秒,DBS-BSRNN 用26.9 秒
  • Intel Core Ultra 9 285K、24 个 CPU 线程上,60 秒输入按声道均值处理,DBS-TIGER 用122.5 秒,DBS-BSRNN 用32.8 秒

这些数字来自 Windows 11、模型已加载、包内进程内运行的环境,不含模型加载和视频导出,只能当参考,不是对别的机器的速度承诺。立体声要逐声道处理,工作量更大:同样 10 分钟输入在 RTX 5090 上,立体声记录时间是 DBS-TIGER74.5 秒、DBS-BSRNN53.7 秒。

Loader 设为 auto 时,包会用 ComfyUI 的 GPU(只要是 CUDA),否则回落到 CPU。苹果和 AMD 的 GPU 加速在这个包里没有实现。

验证到了哪一步

模型集成能加载成功,不代表模型行为没被改掉。验证报告记录了几项:六个 CPU 对比用例,包内原始输出与官方包逐字节一致;四个 CUDA 对比用例,在双方都使用文档里的确定性 PyTorch 设置时逐字节一致,默认 CUDA 运行可能有细微差异,官方代码自己跑两次之间也会这样;真实 ComfyUI 队列检查覆盖了音频分离、音乐加音效输出和视频导出,另有一次干净安装检查。

这些检查确认的是测试条件下的集成保真度,不等于分离质量完美,也不等于每个导出文件和配置都逐字节相同。报告里也记录了导出取整和 CUDA 差异。

发布的模型训练于 DnR v2,它把英语语音、音乐和音效混成电影式的混合音轨。带人声演唱的歌曲、其他语言、异常响的音乐,都需要单独评估——演唱部分可能被分到音乐轨里。

第一次测试,挑一段对白、音乐、音效都清楚可闻的短片。听原片、听抽出的人声、听重新拼合的音乐加音效,这比看频谱图更能说明它对你的场景有没有用。