Nodes/TTS Audio Suite/⚙️ ChatterBox TTS Engine
ComfyUI Node

⚙️ ChatterBox TTS Engine

The expressive voice-clone default

By diodiogod·Created 12 months ago·Updated 18 days ago· 1,098
⚙️ ChatterBox TTS Engine
    • TTS_engine
    languageEnglish
    deviceauto
    exaggeration0.50
    temperature0.80
    cfg_weight0.50
    crash_protection_templatehmm ,, {seg} hmm ,,

    ChatterBox is the engine this whole suite grew out of, and it's still the one most people reach for first. It's ResembleAI's open 0.5B voice-cloning model - the release that landed with 400+ upvotes on r/StableDiffusion and kicked off a small ecosystem of forks. It clones a voice from a short reference clip and, unusually, gives you an actual expressiveness dial. This node is where you configure it. It doesn't generate anything by itself; it outputs a TTS_ENGINE that you feed into 🎤 TTS Text or 📺 TTS SRT.

    Reach for ChatterBox when you want a good English (or one of ~11 community-finetuned languages) voice clone with some emotional range and you don't want to babysit a 9GB model. It's fast, it's expressive, and it's the sensible default before you go chasing the fancier engines.

    How it works

    Under the hood ChatterBox is a small autoregressive TTS with a separate conditioning path for the reference voice, which is why cloning works from just a few seconds of audio. The reference itself doesn't live on this node - you supply that on the TTS Text side via narrator_voice or a 🎭 Character Voices node. What lives here are the generation settings that shape how it speaks.

    The language dropdown picks the model. English is the original ResembleAI weights; the rest (German in three flavors, Italian, French, Russian, Armenian, Georgian, Japanese, Korean, Norwegian) are community finetunes that auto-download on first use, roughly 1GB each.

    The inputs and outputs that matter

    There are only a handful of widgets and most of them you'll leave alone. The three that actually change the output:

    • exaggeration (0.25–2, default 0.5) - ChatterBox's signature control and the reason to pick it over blander engines. It's an emotional-intensity slider. 0.5 is neutral-natural; push it up for drama, but past ~1.0 it starts to distort and rush. This is the knob to play with first.
    • cfg_weight (0–1, default 0.5) - how hard it adheres to the reference/conditioning. Higher tracks the voice more tightly but can sound stiff; ResembleAI's own advice is to lower cfg_weight when you raise exaggeration, since high exaggeration already speeds delivery up.
    • temperature (0.05–5, default 0.8) - randomness. Leave it near 0.8. High values get you variety and also weird artifacts.

    crash_protection_template (default hmm ,, {seg} hmm ,,) is a genuinely useful oddity: ChatterBox can hard-crash on very short segments, so the suite pads each segment with filler around your text ({seg}) to keep it stable. Leave it unless you know why you're changing it. device stays on auto.

    The single output is TTS_engine - that's the whole point of the node. Wire it into the TTS_engine input of TTS Text or TTS SRT and do the actual talking there.

    Installing it

    It ships with TTS Audio Suite. Fastest route: ComfyUI Manager → search TTS Audio Suite → install → restart. Manager runs the pack's install.py, which handles the dependency knots (NumPy, librosa, the perpetually annoying s3tokenizer) and Python 3.13 quirks. Prefer the terminal? cd ComfyUI/custom_nodes && git clone https://github.com/diodiogod/TTS-Audio-Suite.git, then python install.py from inside the folder with your ComfyUI environment active - running install.py matters, a bare pip install -r requirements.txt skips the conflict handling. On Linux install portaudio19-dev libsamplerate0-dev first. The ChatterBox English model (~4.3GB with its stack) downloads itself on first generation into ComfyUI/models/TTS/chatterbox/.

    Common issues

    • Abbreviations and acronyms come out mangled. This is a known ChatterBox quirk - "AI" gets read as "eye," initialisms get slurred. Spell them phonetically in the text ("A.I." often won't save you; "ay eye" might) or edit them afterward.
    • Artifacts and stray noise between phrases. ChatterBox is famous for the occasional glitch or repeated syllable; it's why the community built denoising forks. Keep temperature moderate, don't over-exaggerate, and if it persists, the pack's 🤐 Voice Fixer or a noise-removal pass cleans a lot of it up.
    • Crashes on tiny segments. That's what crash_protection_template is for - if you stripped it out, put it back.
    • Reference voice ignored? Remember the clone comes from the TTS Text node, not here. This node only carries settings; if there's no narrator_voice or Character Voices feed, you'll get a generic voice.
    CategoryTTS Audio Suite/⚙️ Engines

    Inputs (6)

    NameTypeDefaultDescription
    languageCOMBOEnglishChatterBox language model to use for text-to-speech generation. Local models are preferred over remote downloads.
    deviceCOMBOautoDevice to run ChatterBox model on: • auto: Automatically select best available (MPS on Apple Silicon, CUDA on NVIDIA, XPU on Intel, CPU fallback) • cuda: NVIDIA GPU (requires CUDA-capable GPU) • xpu: Intel GPU (requires Intel PyTorch XPU) • cpu: CPU-only processing (slower) • mps: Apple Metal Performance Shaders (Apple Silicon Macs only)
    exaggerationFLOAT0.500.25–2Speech exaggeration level for ChatterBox. Higher values create more dramatic and expressive speech.
    temperatureFLOAT0.800.05–5Controls randomness in ChatterBox generation. Higher values = more creative/varied speech, lower values = more consistent speech.
    cfg_weightFLOAT0.500–1Classifier-Free Guidance weight for ChatterBox. Controls how strongly the model follows the text prompt.
    crash_protection_templateSTRINGhmm ,, {seg} hmm ,,Custom padding template for short text segments to prevent ChatterBox crashes. ChatterBox has a bug where text shorter than ~21 characters causes CUDA tensor errors. Use {seg} as placeholder for the original text. Examples: '...ummmmm {seg}' (default hesitation), '{seg}... yes... {seg}' (repetition), 'Well, {seg}' (natural prefix), or empty string to disable padding.

    Outputs (1)

    NameTypeDescription
    TTS_engineTTS_ENGINE