Chatterbox TTS (Multilingual)
23 languages of local voice cloning in ComfyUI
- reference_audio
- audio
If you're here, you probably typed "text to speech" into ComfyUI and got a wall of nodes that either need an API key or only speak English. This one needs neither. It's Resemble AI's Chatterbox dropped into ComfyUI, and the selling point is right in the name: it runs the multilingual model, so it speaks 23 languages instead of just English. Of the several Chatterbox ports floating around the ecosystem, this is the one that bundles that multilingual build - the author's claim, and the thing that separates it from the English-only cousins.
The name is honest: it calls no API, needs no key, and everything runs locally on your own GPU (or MPS, or plain CPU if you're patient). You feed it text and an optional reference clip, it returns real speech.
Why you'd actually reach for it
The obvious use is narration - read out a script over a generated image or video. But the workflow where this really shines is voice cloning inside a video pipeline. The KB's LTX-2 notes keep coming back to one complaint: generated voices sound like they came out of a tin can. The community workaround is exactly this - clone a decent voice with Chatterbox TTS and layer it over the video instead of trusting the video model's audio. Same trick applies to Wan or any model with weak native audio.
It's also the easiest route to multilingual cloning: one clean reference recording, then synthesize that voice in Japanese, Korean, Arabic, Hebrew, whatever's on the list.
How it works
The pack vendors Resemble's own chatterbox code in src/, so the node is a thin wrapper around upstream's logic. On first run it pulls the multilingual model pack from ResembleAI/chatterbox on HuggingFace into ComfyUI/models/tts/chatterbox/resembleai_multilingual/ and caches the loaded model in memory - first generation is slow, everything after is fast.
The interesting part is the per-language preprocessing. Japanese text is converted from kanji to hiragana (via pykakasi), Chinese characters are converted to Cangjie codes for tokenization, and Korean syllables are decomposed into Jamo - the model can't read those scripts natively, so the node transliterates before tokenizing. That's why the multilingual model works where the standard one doesn't.
The inputs that matter
The dropdown and the sliders are all standard TTS fare, but three deserve attention:
- text - up to 300 characters. It truncates silently past that, so keep your script under the limit.
- language - pick from the 23-language list. It's the whole point of this node.
- reference_audio (optional) - plug in any ComfyUI
AUDIO(a loaded clip, another node's output) for voice cloning. Leave it empty and you get Resemble's default voice. - cfg_weight - the one to remember. The tooltip says it all: set it to 0 for language transfer, i.e. when your reference audio is in a different language than your target text, so the accent doesn't bleed through.
- exaggeration - expressiveness, default 0.5 is neutral. Crank it for emotion, but the tooltip warns extreme values get unstable.
- temperature and seed - the usual. Seed 0 means random; set a real seed to reproduce a take.
The single output is AUDIO named "audio" - wire it into a PreviewAudio node to listen, or a save/FFmpeg node to write the file. The returned dict carries waveform and sample rate, so it plugs into anything that accepts ComfyUI's AUDIO type.
Installing it
Easiest route: ComfyUI Manager, search for "ComfyUI-For-ChatterBox", install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/pentarab/ComfyUI-For-ChatterBox
cd ComfyUI-For-ChatterBox
pip install -r requirements.txt
Then restart ComfyUI and run the node once - the model auto-downloads on first use, no manual download step.
The trap: requirements.txt pins torch==2.6.0 and torchaudio==2.6.0, plus transformers==4.46.3. If you let that pip install over your existing ComfyUI environment, you can break other nodes that want a different torch. ComfyUI Manager handles this more gently, but if you're installing manually, install into the same Python environment ComfyUI uses and be ready to reconcile versions. Don't pip install -r into a fresh global environment and expect your ComfyUI to find it.
Troubleshooting
- First run is slow and looks stuck - the model pack is downloading. Watch the console for
[Chatterbox] Downloading...lines. Check HuggingFace is reachable if it fails. - Out of memory / slow - the model loads fully into VRAM and stays there. On a low-VRAM card it'll run on CPU; expect it to be slow but functional.
- Accent bleed with a reference clip - that's the
cfg_weight = 0case above. And match reference language to target language when you can; it always sounds better.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello, this is a test of the Chatterbox text to speech system. | Text to synthesize into speech (max 300 characters) |
| language | COMBO | en (English) | Language for text-to-speech synthesis |
| exaggeration | FLOAT | 0.500.25–2 | Speech expressiveness (0.5=neutral, higher=more expressive, extreme values may be unstable) |
| cfg_weight | FLOAT | 0.500–1 | CFG/Pace weight. Set to 0 for language transfer to reduce accent from reference audio. |
| temperature | FLOAT | 0.800.05–5 | Randomness in generation (higher=more varied) |
| seed | INT | 00–4294967295 | Random seed (0 for random generation) |
| reference_audioopt | AUDIO | Optional reference audio for voice cloning. If not provided, uses default voice. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |