Nodes/ComfyUI-DN-VoxCPM/VoxCPM Text-to-Speech
ComfyUI Node

VoxCPM Text-to-Speech

VoxCPM Text-to-Speech — where you start with this pack

By DekaNear·Created 9 months ago·Updated 9 months ago· 1
VoxCPM Text-to-Speech
  • model
  • audio
textVoxCPM is an innovative end-to-end TTS model designed to generate highly realistic speech.
cfg_value2.0
inference_timesteps10
normalizefalse
retry_badcasetrue
max_len4096

Type text, get speech. That's the whole job, and VoxCPM Text-to-Speech is the node you'll probably try first because it's the one with no setup beyond a text box. It generates natural-sounding narration from plain text with no reference clip, no transcription, no voice to manage - the model just has a default voice and reads to you.

Under the hood you're running OpenBMB's VoxCPM, a diffusion-based, tokenizer-free TTS. "Diffusion-based" is the important part: like image generation, it takes inference steps, and that's where both the quality dial and the wait live. The model is fast for its class and noticeably accurate - the community's recurring praise is that it reads long text without skipping or mangling words the way some peers do. It also has a habit of being overlooked next to Chatterbox and Kokoro, which means you're getting a serious model that fewer people are fighting over.

The inputs that matter

  • model - from the pack's VoxCPM Model Loader. Everything else is just tuning this.
  • text - multiline, whatever you want said.
  • cfg_value (1–3, default 2) - classifier-free guidance. 2 is the sweet spot; push toward 3 if you want a firmer, more definite read, accept more robotic phrasing as the cost.
  • inference_timesteps (4–30, default 10) - the diffusion step count. This is your speed/quality trade: 10 is a good default, 20+ for best fidelity, 4–6 if you're iterating and want results now.
  • normalize - peak-normalize the output. Off by default; harmless to enable.
  • retry_badcase (default on) - if a generation comes back bad, the model retries rather than handing you garbage.
  • max_len (100–8192, default 4096) - caps how much text a single pass processes. Keep long scripts under it or split them.

Output is a single audio (AUDIO), ready for VoxCPM Save Audio. First run is the slow one: the Model Loader pulls the VoxCPM 1.5 weights from HuggingFace, a multi-GB diffusion model, and the download takes minutes.

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 use ComfyUI Manager and search "DN VoxCPM". The requirements.txt pulls voxcpm, torch, numpy, soundfile, funasr - audio packs are where ComfyUI dependency conflicts cluster, so if something breaks at install, suspect torch/transformers collisions first.

Where people get burned

  • Empty text throws. The node refuses to run on a blank string, so a wildcard or variable that resolves to nothing will error rather than silently pass.
  • Long utterances can go metallic. VoxCPM 1.5 has a known tendency to sound slightly metallic at the end of longer sentences. Keep lines reasonable or accept it as a model quirk.
  • The "voice" is a fixed default. Want a specific person's voice? That's the sibling node, VoxCPM Audio Reference. This one is for when any decent voice will do.
CategoryDN-VoxCPM

Inputs (7)

NameTypeDefaultDescription
modelVOXCPM_MODEL
textSTRINGVoxCPM is an innovative end-to-end TTS model designed to generate highly realistic speech.
cfg_valueFLOAT2.01–3
inference_timestepsINT104–30
normalizeBOOLEANfalse
retry_badcaseBOOLEANtrue
max_lenoptINT4096100–8192

Outputs (1)

NameTypeDescription
audioAUDIO