TTS WebUI FireRedTTS2
Xiaohongshu's autoregressive TTS, cloned
- audio
- wav_path
- metadata_json
FireRedTTS is Xiaohongshu's (RedNote's) entry into the modern TTS race, and version 2 is the one that added zero-shot voice cloning. It's an autoregressive model - it generates speech tokens left to right, conditioned on a reference - which is the same broad family as Vall-E-X but from a 2024/2025-era training run, so it sounds meaningfully better than the old guard. This node is the pack's thin client for running it through the TTS WebUI server. It's a solid mid-pack option: better than F5-TTS on naturalness, not quite the Chatterbox benchmark.
How it works
Same client-server shape as the whole pack: the node POSTs an OpenAI-style body to http://127.0.0.1:7778/v1/audio/speech with model: "fireredtts2", and the server does the synthesis. For cloning you supply a reference clip plus its transcript; the model conditions generation on that voice. The model_name field (default monologue) selects the model's operating mode - FireRedTTS ships modes for single-speaker narration versus dialogue-style generation, so monologue is the right default for straightforward TTS.
The inputs that matter
- prompt_wav - path to a reference audio clip for voice cloning. Leave it empty and the model uses its default voice.
- prompt_text - the transcript of that reference clip. As with every clone model, mismatch here means a degraded clone.
- temperature (default 0.9) and topk (default 30) - the autoregressive sampling knobs. Temperature for overall randomness, topk to cap the candidate pool per step. Lower topk for more stable output, higher temperature for more expressive takes.
- model_name - the server-side mode/repo (
monologueby default). - device -
cudaby default. The server's choice of device for this model; leave it unless you're running CPU-only.
Outputs
audio (AUDIO) into a preview/save node, wav_path (STRING) when also_save_wav is on, and metadata_json (STRING) with the request details.
Installing it
ComfyUI Manager → search "TTS WebUI API nodes for ComfyUI", or:
cd ComfyUI/custom_nodes
git clone https://github.com/rsxdalv/ComfyUI-TTS-Webui
then restart. The pack only needs requests, numpy, torch. FireRedTTS2's weights download into the TTS WebUI server on first load - a real download, so that first request can be slow.
When it breaks
- Reference file not found: paths resolve on the server, not your ComfyUI machine. If the server runs elsewhere or in Docker, local paths won't work - put the clip where the server can read it.
- Bad clone: usually a
prompt_textthat doesn't match the reference. Fix the transcript, not the temperature. - First call times out: model download/load server-side. Raise
timeout_sec(max 600). - Connection refused: server not running on
127.0.0.1:7778, orapi_basepoints at the wrong host (the node appends/v1/audio/speechitself).
The honest verdict: FireRedTTS2 is the "why isn't this more famous?" node of the pack. It clones well, it sounds natural, and it doesn't demand the hardware of the LLM-based models. If Chatterbox is overkill or won't fit, this is a very reasonable first stop for cloning.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello | — |
| api_base | STRING | http://127.0.0.1:7778 | — |
| api_keyopt | STRING | — | |
| temperatureopt | FLOAT | 0.900–2 | — |
| topkopt | INT | 301–100 | — |
| prompt_wavopt | STRING | — | |
| prompt_textopt | STRING | — | |
| model_nameopt | STRING | monologue | — |
| deviceopt | STRING | cuda | — |
| timeout_secopt | INT | 1201–600 | — |
| channels_firstopt | BOOLEAN | true | — |
| also_save_wavopt | BOOLEAN | false | — |
| save_prefixopt | STRING | tts | — |
| return_metadataopt | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| wav_path | STRING | — |
| metadata_json | STRING | — |