FL Chatterbox Multilingual TTS
Speak 23 languages with a cloned voice
- audio_prompt
- audio
- message
Here's the party trick none of the other nodes in the pack can pull off: give it a few seconds of anyone talking in one language, pick a language from the dropdown, and it speaks that language in that same voice. FL Chatterbox Multilingual TTS is the 23-language variant of Resemble AI's open-source Chatterbox TTS, and it does cross-lingual voice cloning - your English reference clip can come out sounding like the same person speaking Japanese or Arabic. No API, no key, fully local.
That's the headline reason to reach for it over the standard node. If you're building narration, dubbed content, or a character that's supposed to be bilingual, this is the one - it's genuinely impressive on that trick, and the underlying TTS quality is the same Chatterbox quality that got "ElevenLabs-level" comparisons when the model launched. The trade-off: it's not the fastest model in the pack, and you don't get the Turbo node's paralinguistic emotion tags here.
How it works. Same architecture as the rest of the family - a text-to-token transformer plus the S3Gen vocoder producing 24 kHz audio - but the multilingual variant (t3_mtl23ls_v2) was trained across languages and conditions on both your reference voice embedding and a language ID. That's what makes cross-lingual cloning possible: the model keeps the timbre and prosody of your reference speaker while following the phonetics of the target language. Weights download automatically on first run from the ResembleAI/chatterbox HuggingFace repo into ComfyUI/models/chatterbox/chatterbox_multilingual/.
The inputs that matter. Two stand out:
language- a dropdown of 23 languages (Arabic, Chinese, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hindi, Italian, Japanese, Korean, Malay, Norwegian, Polish, Portuguese, Russian, Spanish, Swahili, Swedish, Turkish). Pick it and go.audio_prompt(optional,AUDIO) - your reference voice. The code checks your clip's length and warns below 6 seconds, so give it a bit more than the standard node wants.
The sampling stack is the fuller of the two: exaggeration (0–2.0), cfg_weight (0–1.0), temperature (0.05–2.0), repetition_penalty (1–5, default 2.0 - multilingual models tend to repeat, hence the higher default), min_p (0–1.0), top_p (0.1–1.0), and seed for reproducibility. If a language sounds garbled or stuttery, bump repetition_penalty before touching anything else.
Outputs. audio (AUDIO) and message (STRING), same as its siblings - the message confirms the device, which language was selected, and surfaces any errors.
Install. Same as every node in this pack - ComfyUI Manager and search "FL ChatterBox", or:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-ChatterBox
cd ComfyUI_Fill-ChatterBox
pip install -r requirements.txt
The shared dependency list (librosa, transformers, diffusers, s3tokenizer, soundfile, and friends) installs everything this node needs; the optional resemble-perth watermarking package is best left out on Python 3.12+.
Gotchas. The 40-second-per-generation cap still applies - for anything longer, chunk your script and concatenate. Reference audio quality matters more than in English-only use: a clean, noise-free 6+ second clip gives you a far more believable cross-lingual clone. And while it runs on CPU and Mac MPS, the multilingual model is the heaviest of the pack's TTS variants, so give it a GPU with 8GB+ VRAM if you've got one.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello, this is a multilingual test. | — |
| language | COMBO | English (en) | 23 options: Arabic (ar), Danish (da), German (de), Greek (el), English (en), Spanish (es), +17 |
| exaggeration | FLOAT | 0.500–2 | — |
| cfg_weight | FLOAT | 0.500–1 | — |
| temperature | FLOAT | 0.800.05–2 | — |
| repetition_penalty | FLOAT | 2.01–5 | — |
| min_p | FLOAT | 0.050–1 | — |
| top_p | FLOAT | 1.000.1–1 | — |
| seed | INT | 00–4294967295 | — |
| audio_promptopt | AUDIO | — | |
| use_cpuopt | BOOLEAN | false | — |
| keep_model_loadedopt | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| message | STRING | — |