VoxCPM Audio Reference
Clone a voice from a five-second clip with VoxCPM Audio Reference
- model
- prompt_audio
- audio
This is the node the pack is built around. Give VoxCPM Audio Reference a short clip of someone speaking, the transcription of that clip, and a line of new text, and you get speech in that voice - same timbre, same delivery, without the eleven-minute ElevenLabs-style pipeline or an API key. The name says "reference" rather than "clone" but make no mistake, this is zero-shot voice cloning, and it's the reason to install this pack at all.
VoxCPM itself is OpenBMB's diffusion-based, tokenizer-free TTS, and it's one of those models the community keeps rediscovering. Against the usual suspects in the knowledge base - Chatterbox for quality, Kokoro for speed - VoxCPM gets described as fast, accurate, and less prone to skipping words on longer text. It also tends to be "the often forgotten model," which means you're getting a genuinely good clone engine that most tutorials skip. This pack is just a thin, friendly wrapper around it.
How it works
The node writes your prompt_audio to a temp WAV, hands the path plus your prompt_text to the model, and returns a ComfyUI AUDIO dict at the model's native sample rate. The temp file is cleaned up after every run, so there's no litter.
The inputs that matter:
- model - from the pack's VoxCPM Model Loader node (same pack, first tab of the menu).
- text - what you want said in the cloned voice.
- prompt_audio - your reference clip as AUDIO, usually from VoxCPM Load Audio.
- prompt_text - the transcription of that clip. Required; the node throws if it's empty. This is where the ASR node earns its keep.
- cfg_value (1–3, default 2) and inference_timesteps (4–30, default 10) - the standard diffusion dials. More timesteps means cleaner speech and a longer wait; 2.0/10 is a good starting point.
- denoise_prompt - cleans up a noisy reference. Defaults to off; flip it on if your clip has background hiss.
Output is a single audio (AUDIO) that wires straight into VoxCPM Save Audio, or anywhere else that eats AUDIO.
The recipe
[VoxCPM Load Audio] (my_voice.wav) → [VoxCPM ASR Recognition]
│ │
└──────────────┬────────────────────┘
[VoxCPM Model Loader] → [VoxCPM Audio Reference]
↓
[VoxCPM Save Audio]
Keep the reference 3–10 seconds, clean and single-speaker. A bad reference is the number one cause of bad clones - the model can only imitate what it can hear.
Installing it
cd ComfyUI/custom_nodes/
git clone https://github.com/DekaNear/ComfyUI-DN-VoxCPM.git
cd ComfyUI-DN-VoxCPM
pip install -r requirements.txt
Restart ComfyUI, or install via Manager by searching "DN VoxCPM". First run downloads the VoxCPM 1.5 model from HuggingFace through the Model Loader - it's a real diffusion model, so budget a few minutes and a few GB of disk before the first clone.
Where people get burned
- The prompt_text has to match the clip. If you feed it a transcription of different words, the clone drifts. Run ASR, don't trust memory.
- Cross-language clones carry an accent. People report cloning from English and getting an accent when generating other languages. Expected behavior, not a bug.
- Long text can go metallic. VoxCPM 1.5 has a known tendency to sound slightly metallic toward the end of long utterances. Shorter lines, or accept it.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | VOXCPM_MODEL | — | |
| text | STRING | This is a test of voice cloning with VoxCPM. | — |
| prompt_audio | AUDIO | — | |
| prompt_text | STRING | — | |
| cfg_value | FLOAT | 2.01–3 | — |
| inference_timesteps | INT | 104–30 | — |
| normalize | BOOLEAN | false | — |
| denoise_prompt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |