ComfyUI Node

TTS WebUI FireRedTTS2

Xiaohongshu's autoregressive TTS, cloned

By rsxdalv·Created 10 months ago·Updated 10 months ago· 5
TTS WebUI FireRedTTS2
    • audio
    • wav_path
    • metadata_json
    textHello
    api_basehttp://127.0.0.1:7778
    api_key
    temperature0.90
    topk30
    prompt_wav
    prompt_text
    model_namemonologue
    devicecuda
    timeout_sec120
    channels_firsttrue
    also_save_wavfalse
    save_prefixtts
    return_metadatatrue

    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 (monologue by default).
    • device - cuda by 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_text that 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, or api_base points at the wrong host (the node appends /v1/audio/speech itself).

    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.

    CategoryAudio/TTS

    Inputs (14)

    NameTypeDefaultDescription
    textSTRINGHello
    api_baseSTRINGhttp://127.0.0.1:7778
    api_keyoptSTRING
    temperatureoptFLOAT0.900–2
    topkoptINT301–100
    prompt_wavoptSTRING
    prompt_textoptSTRING
    model_nameoptSTRINGmonologue
    deviceoptSTRINGcuda
    timeout_secoptINT1201–600
    channels_firstoptBOOLEANtrue
    also_save_wavoptBOOLEANfalse
    save_prefixoptSTRINGtts
    return_metadataoptBOOLEANtrue

    Outputs (3)

    NameTypeDescription
    audioAUDIO
    wav_pathSTRING
    metadata_jsonSTRING