FireRedTTS3 Load Model
Loading FireRedTTS3 with no server and no API key
- firered_model
Every FireRedTTS3 workflow in this pack starts here, and the name is not a lie: this isn't a wrapper around some API, there's no key to paste, and nothing phones home. It loads FireRedTTS3 - Xiaohongshu's open TTS, a Qwen3 backbone plus a DiT flow head, the RedAE codec and the CAM++ speaker encoder - natively inside ComfyUI and hands you a single firered_model object that every other node in the pack wants.
One choice on this node matters more than the rest: which variant you load. There are two weights, and they're different products:
fireredtts3_base- zero-shot voice cloning across 24 languages and 21 Chinese dialects, driven by explicit language tags. This is the multilingual cloning engine.fireredtts3_instruct- the default, and the bigger toolbox. It also clones, but its cloning reliably handles Chinese and English (Cantonese with a same-language reference; beyond that it degrades). What it adds is voice design and semantic/acoustic speech editing, which the base model can't do at all.
So the rule of thumb: only cloning in a non-English language → base. Anything involving designing or editing speech → instruct. If you load instruct and hit a "requires the Instruct model" error on the edit nodes, you grabbed base by accident.
Then the repo field decides which weights you pull: FireRedTTS3-bf16 (default, ~4.7 GiB per variant), FireRedTTS3-int8 (the experimental 3.3 GB ConvRot quant of the transformer linears), or FireRedTTS3-fp32 (the official full-precision 8.48 GB). bf16 is the sane default - it stores the backbone and encoder in bf16 and keeps the flow head and decoder fp32, matching the official compute path with bit-identical output in the author's A/B tests. Reach for int8 if you're fighting for VRAM; treat it as the experimental option it's labeled as.
Everything else you can mostly leave alone: dtype auto, device auto, attention auto. The one you might touch is attention - auto uses flash attention only if flash_attn is actually installed and compatible, and falls back to sdpa otherwise. The README's troubleshooting flat-out tells you to use auto unless you installed those backends, because a broken flash/sage install is the most common way this node errors.
The load itself is heavy. First run auto-downloads the selected variant plus the shared redae, campp, and tokenizer files into ComfyUI/models/fireredtts3/ - budget several gigabytes and expect roughly 8–14 GB VRAM depending on variant, dtype, and attention backend. If downloads fail or you'd rather move files around manually, turn off download_if_missing; the error will name the exact folder to drop them into. Out of memory? Switch to the bf16 mirror and enable ComfyUI DynamicVRAM - the loader registers the core, codec, and speaker encoder as separate castable models so they page through memory management alongside your checkpoints.
Output is the firered_model (FIREREDTTS3_MODEL) socket that feeds Voice Clone, Voice Design, Semantic Edit, and Acoustic Edit. Nothing else you build here works without it.
Installing the pack - same story for every node in it. Use ComfyUI Manager (search "FireRedTTS3-ComfyUI"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/FireRedTTS3-ComfyUI.git
cd FireRedTTS3-ComfyUI
python install.py
Then restart. install.py deliberately never touches torch, torchaudio, transformers, or numpy - it only adds small packages like huggingface_hub, safetensors, accelerate, and optionally wetext and fasttext-predict. The one real compatibility catch: the pack is built for Transformers 5.3+ (it constructs the Qwen3 modules directly rather than through a remote-code path), so if your ComfyUI environment ships an old transformers, update it first. And yes, that means your ComfyUI install needs the newer runtime - audio-in-ComfyUI stays a maintained workaround, but this is one of the smoother ones.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| repo | COMBO | FireRedTTS3-bf16 | Weight source. bf16 keeps the flow head/decoder in fp32 and matches official mixed-precision compute (recommended). int8 ConvRot quantizes the transformer linears (smallest, experimental). fp32 is the official full-precision repo. Missing files download when download_if_missing is on; otherwise the error tells you where to place them. |
| variant | COMBO | fireredtts3_instruct | base: zero-shot cloning in 24 languages + 21 Chinese dialects using language tags. instruct: voice design (Chinese/English only) + speech editing; its cloning inherits the language from the reference audio (no language tags). |
| dtype | COMBO | auto | bf16 stores the backbone LLM and RedAE encoder in bf16 (same compute as the official autocast path) and keeps the flow head/decoder fp32. fp32 is full precision. auto picks bf16 on supported GPUs. |
| device | COMBO | auto | Device for inference. auto follows ComfyUI's current torch device; cpu is a slow fallback. |
| attention | COMBO | auto | Attention backend for the Qwen3 transformers. auto uses flash_attention when flash_attn is installed and compatible (CUDA + bf16 compute), else sdpa. The fp32 RedAE decoder always uses sdpa. |
| download_if_missing | BOOLEAN | true | Download the selected weights, RedAE codec, tokenizer, CAM++ and FastText language-ID files into ComfyUI/models/fireredtts3 when missing. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| firered_model | FIREREDTTS3_MODEL | — |