ChatterBox VC (Manual)
Swap a voice in ComfyUI, no training run required
- model
- audio
- target_voice
- audio
ChatterBox VC (Manual) is voice conversion: you give it a clip of someone talking and a reference clip of the voice you want, and it re-synthesizes the speech in that target voice. Same text, same words, new timbre. This is the "dub your character with a different voice" node, and it's surprisingly good at it. If you've seen ChatterBox TTS floating around ComfyUI - it got real community traction through 2025 for voice cloning - this is the sibling that swaps voices instead of reading text.
How it works
The mechanism is compact. Both your audio (the clip to convert) and target_voice (the reference) get written to temp WAV files. The target voice is fed through the S3Gen model's reference encoder to build a voice embedding, while the input audio is tokenized into speech tokens. Then S3Gen re-synthesizes those tokens conditioned on the target voice. One model does the whole job - which is why the loader for this node only needs s3gen.safetensors (plus optional conds.pt for built-in voices), not the whole file set that TTS requires.
Inputs and outputs
Only three inputs, all required:
model- aCHATTERBOX_VCmodel from a loader (ChatterBox VC Loader Manual or Auto)audio- the speech you want convertedtarget_voice- reference audio; the tooltip says 6–10 seconds is ideal, and it's not kidding. Short references mean a weak voice embedding.
One output: audio, which wires into any ComfyUI audio consumer - a preview node, VHS video save, whatever your pipeline uses.
Getting it running
Install the pack via ComfyUI Manager (search "Latent Astronaut Suite") or:
cd ComfyUI/custom_nodes
git clone https://github.com/latentastronaut/comfyui-latent-astronaut-suite
Restart ComfyUI. On first boot, install.py installs the chatterbox-tts package with --no-deps (its strict version pins fight ComfyUI's environment) plus librosa. The Manual loader reads model files from ComfyUI/models/chatterbox/; the Auto loader downloads from HuggingFace and caches.
Where people get burned
First run is slow - the model loads and the download happens once, so don't judge it on iteration one. The pack disables ChatterBox's built-in watermarker because it segfaults on version mismatches; that's intentional, not a broken install. If audio comes back empty or crashes, check your reference length (trim to ~8 seconds) and make sure both clips are actual speech, not silence. And be aware this is a heavy model - give it GPU headroom or it'll swap to a slow CPU fallback on its own.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | CHATTERBOX_VC | ChatterBox VC model from loader | |
| audio | AUDIO | Audio to convert | |
| target_voice | AUDIO | Target voice reference audio (6-10 seconds ideal) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |