ComfyUI-VoxCPM¶
ComfyUI-VoxCPM is a full-featured ComfyUI custom node for VoxCPM, with TTS, voice cloning, and in-node LoRA training support.
It wraps VoxCPM into ComfyUI’s visual node-based workflow, allowing users to integrate speech synthesis into their generation pipelines.
Note
For a lighter alternative with auto-transcription, see ComfyUI-VoxCPMTTS.
VoxCPM 1.0 (0.5B) |
✅ Supported ( |
VoxCPM 1.5 |
✅ Supported ( |
VoxCPM 2 |
❌ Not supported |
Features¶
Supports both VoxCPM 1.5 (44.1 kHz, ~800M params) and VoxCPM-0.5B (16 kHz, ~640M params)
Auto-download models to
ComfyUI/models/tts/VoxCPM/LoRA inference and training directly in ComfyUI:
VoxCPM Train Config— configure training hyperparametersVoxCPM Dataset Maker— prepare fine-tuning dataVoxCPM LoRA Trainer— run LoRA fine-tuning within ComfyUI
All generation parameters exposed as node inputs
Built-in denoiser (ZipEnhancer) disabled by default to keep dependencies light
Multi-device support: CUDA, CPU, MPS (Apple Silicon), DirectML, HIP (AMD ROCm, if available)
Prerequisites¶
ComfyUI installed and running
PyTorch with appropriate backend (CUDA, MPS, etc.)
Model weights: openbmb/VoxCPM1.5 or openbmb/VoxCPM-0.5B (auto-downloaded)
Installation¶
Via ComfyUI Manager: search for
ComfyUI-VoxCPMand install.
Manual installation:
cd ComfyUI/custom_nodes/
git clone https://github.com/wildminder/ComfyUI-VoxCPM.git
pip install -r ComfyUI-VoxCPM/requirements.txt
# Restart ComfyUI
Models are auto-downloaded on first use.
Basic usage¶
Text-to-Speech¶
Add a VoxCPM TTS node from the
audio/ttscategoryConnect
textinput with the target text to synthesizeAdjust
cfg_value,inference_timesteps, anddeviceas neededConnect output to a
Save AudioorPreview Audionode
Voice cloning¶
Add a Load Audio node and load your reference audio
Connect it to the
prompt_audioinput of the VoxCPM TTS nodeProvide the verbatim transcript in
prompt_text(not a description — must match the reference audio exactly)Enter the target text to synthesize in
text
Tip
For high-quality voice clones, use clear reference audio (5–15 seconds) and ensure prompt_text is an accurate transcript.
LoRA fine-tuning¶
Add
VoxCPM Train Config→VoxCPM Dataset Maker→VoxCPM LoRA TrainernodesConfigure your training data and hyperparameters
Run the workflow to train a LoRA adapter
Load the trained LoRA from
models/loras(use the refresh button andlora_namedropdown)
See readme-lora-training.md in the repository for detailed training instructions.
Parameters¶
Parameter |
Description |
|---|---|
|
Select VoxCPM 1.5 or 0.5B |
|
Classifier-free guidance scale (default: 2.0; higher = closer to prompt, may reduce quality) |
|
LocDiT diffusion steps (default: 10; higher = better quality, slower) |
|
|
|
Enable external text normalization (disable for phoneme input) |
|
Random seed for reproducibility (default: -1 for random) |
|
Select a LoRA adapter from |
|
Token length range for generation |
|
Offload model from GPU after inference to save VRAM |
|
Maximum retries for bad generation outputs |
|
Threshold for bad-case detection |
Troubleshooting¶
Out of memory¶
Set
force_offloadtoTrueto release GPU memory after each generationSwitch to
cpudevice (slower but uses system RAM)Use VoxCPM-0.5B instead of 1.5 for lower memory usage