ComfyUI-VoxCPM2
ComfyUI 语音合成节点:VoxCPM2 加持,30语言、48kHz、Voice Design
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
ComfyUI 语音合成节点:VoxCPM2 加持,30语言、48kHz、Voice Design
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一名短视频创作者,需要为一个关于 AI 前沿技术的视频配音——产品讲解要沉稳专业,情感故事要温柔细腻,游戏推广要充满活力。传统方式需要反复录制、剪辑,而有了 VoxCPM2,你只需在文本框里写几句话,描述你想要的音色,就能生成符合需求的 48kHz 高保真音频。更进一步,如果你想把某个人声"克隆"给 AI 用,只需提供一段 10 秒的参考音频,AI 就能复刻出那个人的声音质感,用它说出任何内容。
这就是 ComfyUI-VoxCPM2 正在做的事情——把 VoxCPM2 这一工业级多语言 TTS 模型,以 ComfyUI 自定义节点的形式,带入可视化工作流的世界。
ComfyUI-VoxCPM2 并非凭空诞生。它的上游是北京智谱华章(智谱 AI)旗下的 OpenBMB 团队开源的 VoxCPM 系列模型。初代 VoxCPM 基于 CPM-Mini 架构,采用了突破性的 tokenizer-free(无分词器) 设计,直接在连续语音空间建模,绕过了传统 TTS 系统中将文本转为离散音素的预处理步骤,大幅降低了语言预处理带来的信息损失。
VoxCPM2 在此基础上全面升级:模型参数量提升至 20 亿(2B),训练数据扩展到 超过 200 万小时 的多语言语音,覆盖 30 种语言。核心技术架构也发生了变化——VoxCPM2 基于 MiniCPM-4 作为 Diffusion Transformer 主干网络,搭配 AudioVAE V2 作为声码器,不仅能直接输出 48kHz 广播级音质,AudioVAE V2 还内置了超分辨率能力,输入 16kHz 参考音频就能输出 48kHz 成品。
本项目的作者是 GitHub 用户 @Saganaki22。他此前还维护了 ComfyUI-OmniVoice-TTS 等多个 ComfyUI 音频节点,专注于将前沿 TTS 模型低成本、易用地引入 ComfyUI 生态。本项目 fork 自更早期的 ComfyUI-VoxCPM(作者 @wildminder),在推理和训练两条路线上都做了显著的功能扩展。
大多数 TTS 系统遵循"文本→音素→声学特征→波形"的级联管道,每个环节都会引入误差累积。VoxCPM2 的 tokenizer-free 方案则将文本直接映射到连续语音表征空间,通过 Diffusion Model 的去噪过程逐步生成语音波形,再由 AudioVAE V2 解码为高保真音频。这种端到端方案在韵律自然度、多音字处理、语速控制等方面天然优于传统管道。
这是 VoxCPM2 最具差异化的功能:
Voice Design(语音设计):用自然语言描述你想要的音色,如"一个温柔甜美的年轻女声,语速中等"。系统自动将描述作为条件注入 Diffusion 过程,无需任何参考音频即可生成目标音色的语音。
Controllable Voice Cloning(可控语音克隆):上传一段 10 秒以上的人声参考,AI 分析其音色特征并复刻。你还可以额外提供一段"风格引导音频",让克隆声音的韵律风格(语速、语调)与引导音频保持一致。
Ultimate Cloning(极致克隆):同时提供参考音频和对应的文字转录稿,用于最高保真度的声音复现,适用于需要精确还原发音人特征的严肃场景(如为失声患者保留原声)。
这是本项目有别于上游官方实现的独特能力。在 ComfyUI 的训练节点中,用户可以直接上传少量目标音色的语音样本,触发 LoRA 微调流程,训练出一个几十 MB 的小型适配器权重文件。此文件可加载到推理节点中,用于批量生成具有特定音色的内容,而无需重复上传参考音频。对于需要长期运营特定 IP 角色的创作者,这个功能大幅降低了使用门槛。
项目集成了多个可选但实用的辅助模块:基于 SenseVoiceSmall 的 ASR 自动转写(自动将参考音频转为文字,省去手动听写的麻烦)、基于 ZipEnhancer 的音频降噪(提升低质量参考音频的可用性)、Loudness Normalization 自动响度归一化(确保输出音量一致)。
ComfyUI-VoxCPM2 以标准 ComfyUI 自定义节点形式分发,遵循 Comfy Registry 的节点规范(通过 pyproject.toml 中的 [tool.comfy] 元数据注册)。安装后自动在节点面板的 audio/tts 分类下出现两个推理节点和一个训练节点:
VoxCPM2 TTS(主推理节点):接收文字输入、语音描述、LoRA 选择、CFG 强度、Diffusion 步数等参数,输出音频文件。提供了 dtype(bf16/fp16/auto)和 device(cuda/cpu)切换,以及 force_offload 选项用于显存溢出时的自动卸载策略。
VoxCPM2 Voice Cloning(克隆节点):接收参考音频(可接 ASR 节点自动获取文字),输出音色配置对象,连接到主 TTS 节点的 voice_config 输入端口。
VoxCPM2 LoRA Training(训练节点):接收音频文件夹路径、训练步数、学习率等超参数,输出 LoRA checkpoint 文件到 models/loras/ 目录。
本项目是 ComfyUI 的自定义节点,而非独立应用程序。部署前必须先有运行中的 ComfyUI 实例。依赖项通过 requirements.txt 管理,核心依赖包括 voxcpm(VoxCPM2 模型实现)、torch>=2.5.0、torchaudio>=2.5.0、transformers>=4.36.2,以及可选的 modelscope(降噪)和 funasr(ASR)。
硬件方面,2B 参数模型在 bf16 精度下需要约 8GB+ VRAM(RTX 3090/4090 或同等显卡),使用 fp16 或开启量化可压缩至 6GB 左右。CPU 模式下理论上可以运行,但速度极慢,不具实用价值。模型权重在首次使用时由 voxcpm 自动从 Hugging Face Hub 下载到 ComfyUI/models/tts/VoxCPM/,无需手动处理。
值得注意的是,安装过程存在一个 Windows + Python 3.13 的兼容坑:editdistance 依赖在 PDM 后端下可能触发编码警告(C4819),解决方案已在 README 中详细说明。
从代码结构看,项目遵循清晰的模块划分:核心节点逻辑在 voxcpm2_nodes.py(约 24KB 主推理节点)和 voxcpm2_train_nodes.py(约 7KB 训练节点),模型加载与显存管理封装在 modules/loader.py,训练相关工具在 modules/trainer.py,音频处理工具在 modules/dataset_utils.py。
作者在 __init__.py 中主动压制了 PyTorch 的 deprecation 和 inductor 警告,降低了运行时日志噪音。pyproject.toml 使用了标准的 Python 项目规范,且注册了 Comfy Registry 元数据,便于 ComfyUI Manager 识别安装。代码注释相对充分,README 文档详尽(含中文版),对于一个单人或小团队维护的开源节点库而言,质量属于中上水平。
不过需要指出的是,项目未提供 Dockerfile 或 docker-compose.yml,不属于可容器化部署的项目。若要在无 GPU 环境下测试,只能依赖 CPU 运行,而实际体验会非常差。训练节点的显存需求尤其高,当前版本缺少分布式多卡训练支持,LoRA 训练只能在单卡上完成,大数据集场景下效率受限。
ComfyUI-VoxCPM2 的目标用户有三类:一是需要在视频、播客、有声书中批量生成配音的内容创作者——只需写好脚本,配合 Voice Design 或 LoRA 克隆即可持续产出;二是 AI 语音应用开发者——项目代码清晰,节点化设计方便集成到更大的工作流中;三是 TTS 研究者——LoRA 训练节点直接暴露了微调接口,可以作为低成本的实验基线。
从技术趋势看,VoxCPM2 代表的 tokenizer-free + Diffusion Autoregressive 路线,是继 VALL-E、XTTS 之后又一个值得关注的方向。随着模型轻量化技术的进步,未来在消费级显卡上流畅运行工业级多语言 TTS 并非奢望,而 ComfyUI-VoxCPM2 正在让这一天来得更快。

图1:ComfyUI-VoxCPM2 典型工作流界面(包含 TTS 主节点 + Voice Cloning 节点 + 音频输出)
图2:项目作者 @Saganaki22 的 GitHub 头像(同时维护 ComfyUI-OmniVoice-TTS 等多个音频节点)