Nodes/ComfyUI_Fill-ChatterBox/FL Chatterbox TTS
ComfyUI Node

FL Chatterbox TTS

ElevenLabs-grade voice cloning, fully local and API-free

By filliptm·Created about a year ago·Updated a day ago· 231
FL Chatterbox TTS
  • audio_prompt
  • audio
  • message
textHello, this is a test.
exaggeration0.50
cfg_weight0.50
temperature0.80
seed0
use_cpufalse
keep_model_loadedfalse

You want a voice that sounds like a real person, cloned from a few seconds of reference audio, running on your own machine with no ElevenLabs bill and no API key. This is the node for that. FL Chatterbox TTS is the flagship in filliptm's FL ChatterBox pack, and it's the one you'll reach for when "good enough" isn't - the output genuinely holds up against the paid cloud TTS services.

Chatterbox is Resemble AI's open-source 0.5B text-to-speech model, and it made a real splash when it dropped in mid-2025 - the release thread read like people couldn't believe the quality was local. The community consensus at the time: slower than F5-TTS but clearly better-sounding, with voice cloning that works "incredibly well" on a few seconds of audio. That's exactly what this node packages for ComfyUI. No training, no LoRA, no fine-tuning - just a reference clip and your script.

ComfyUI is normally an image-and-video shop, and audio nodes are the frontier of the ecosystem. This one slots into narration workflows: voice-over for a generated video, an audiobook, a talking character in an animated scene. It outputs a standard AUDIO object, so it wires straight into the usual save/preview audio nodes.

How it works. Chatterbox is a three-piece stack: a text-to-token transformer (the t3 model) turns your text into speech tokens, then an S3Gen flow-matching vocoder turns those tokens into a 24 kHz waveform. Cloning works because the model conditions generation on a speaker embedding extracted from your reference clip by a separate voice encoder. The node runs all of this natively inside your Python environment - nothing leaves your machine. On first use it downloads ve.safetensors, t3_cfg.safetensors, s3gen.safetensors, tokenizer.json and conds.pt from the ResembleAI/chatterbox HuggingFace repo into ComfyUI/models/chatterbox/, so the very first run takes a while. After that, set keep_model_loaded = True and iteration is quick.

The inputs that matter. Three of them, really:

  • text - what it says, multiline.
  • audio_prompt (optional, AUDIO) - your reference voice. Leave it unconnected and you get the model's default voice; wire in 5–6 seconds of someone talking and you've cloned them.
  • exaggeration (0.25–2.0) - emotion intensity in the delivery. 0.5 is a sane default.

cfg_weight (0.2–1.0) nudges pace and stability, temperature (0.05–5.0) adds randomness, and seed makes generations reproducible. use_cpu and keep_model_loaded are the two toggles you'll actually touch.

Outputs. audio (AUDIO) - the speech, 24 kHz - and message (STRING), a status log that tells you which device it ran on, whether the model was cached, and any errors. If output is mysteriously silent, read the message first; it's usually got the answer.

Install. Easiest via ComfyUI Manager - search "FL ChatterBox". Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-ChatterBox
cd ComfyUI_Fill-ChatterBox
pip install -r requirements.txt

That pulls in numpy, resampy, librosa, s3tokenizer, transformers, diffusers, omegaconf, conformer, safetensors and soundfile. The optional resemble-perth watermarking package is commented out in requirements.txt because it breaks on Python 3.12+ - skip it; watermarking isn't worth a broken environment.

Gotchas. First run downloads weights, so be patient. Generations cap around 40 seconds of audio each - split longer scripts. Reference clips under 5 seconds give weak clones. It'll run on CPU and Mac MPS, but 8GB+ VRAM (16GB+ RAM) is the recommended home. And if the GPU errors out, the node falls back to CPU automatically and says so in the message string.

CategoryChatterBox

Inputs (8)

NameTypeDefaultDescription
textSTRINGHello, this is a test.
exaggerationFLOAT0.500.25–2
cfg_weightFLOAT0.500.2–1
temperatureFLOAT0.800.05–5
seedINT00–4294967295
audio_promptoptAUDIO
use_cpuoptBOOLEANfalse
keep_model_loadedoptBOOLEANfalse

Outputs (2)

NameTypeDescription
audioAUDIO
messageSTRING