ComfyUI Node

TTS WebUI F5-TTS

Zero-shot voice cloning without the ceremony

By rsxdalv·Created 10 months ago·Updated 10 months ago· 5
TTS WebUI F5-TTS
    • audio
    • wav_path
    • metadata_json
    textHello
    api_basehttp://127.0.0.1:7778
    api_key
    ref_audio_orig
    ref_text
    modeldefault
    remove_silencefalse
    cross_fade_duration0.15
    nfe_step32
    speed1.00
    show_infofalse
    timeout_sec120
    channels_firsttrue
    also_save_wavfalse
    save_prefixtts
    return_metadatatrue

    F5-TTS is the zero-shot cloning model people reach for when they want to copy a voice from a short reference clip without training anything. It's flow-matching based, genuinely fast - community measurements put it at well under two seconds for short lines on a 4090 - and it only needs two things from you: an audio file of the voice you want, and the transcript of what's said in that clip. This node is the pack's thin client for driving it through your TTS WebUI server.

    How it works

    You hand it a reference, the server runs text-to-speech conditioned on that voice, and the node converts the returned WAV into ComfyUI AUDIO. Mechanically it's the same as every other node here - a POST to http://127.0.0.1:7778/v1/audio/speech with model: "f5-tts". The model and weights live in the TTS WebUI server, so the first call may be slow while it loads.

    The inputs that matter

    • ref_audio_orig - path to the reference WAV whose voice you're cloning.
    • ref_text - the transcript of that reference clip. This one matters more than people expect: if the transcript doesn't match the audio, the cloned voice quality tanks.
    • nfe_step - number of function-evaluation steps, default 32. This is the speed/quality knob: fewer steps = faster and rougher, more = cleaner but slower.
    • speed - output speaking rate, 0.25 to 4.0.
    • remove_silence - strips leading/trailing silence. cross_fade_duration - how long segment boundaries blend together (default 0.15s).
    • model - which F5-TTS variant the server uses; default is fine.

    Outputs

    audio (AUDIO) into a preview or save node, wav_path (STRING, populated 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 needs only requests, numpy, torch - already in your ComfyUI. F5-TTS's model files download into the server.

    When it breaks

    • Reference file not found: the path you give is resolved by the server, not your ComfyUI box. If the server runs on another machine or in Docker, a local path like C:\voices\ref.wav means nothing to it - copy the file where the server can see it and use that path.
    • Bad cloned voice: 90% of the time it's a transcript that doesn't match the reference clip. Fix ref_text, not the model.
    • Slow first request: server is loading the model. Raise timeout_sec (max 600).

    Honest take: F5-TTS is fast, easy, and good - but for raw output quality the cloning crown has moved on to Chatterbox and others. Where F5 still earns its keep is speed and dead-simple setup. If you want a quick clone with minimal fuss, start here.

    CategoryAudio/TTS

    Inputs (16)

    NameTypeDefaultDescription
    textSTRINGHello
    api_baseSTRINGhttp://127.0.0.1:7778
    api_keyoptSTRING
    ref_audio_origoptSTRING
    ref_textoptSTRING
    modeloptSTRINGdefault
    remove_silenceoptBOOLEANfalse
    cross_fade_durationoptFLOAT0.150–5
    nfe_stepoptINT321–256
    speedoptFLOAT1.000.25–4
    show_infooptBOOLEANfalse
    timeout_secoptINT1201–600
    channels_firstoptBOOLEANtrue
    also_save_wavoptBOOLEANfalse
    save_prefixoptSTRINGtts
    return_metadataoptBOOLEANtrue

    Outputs (3)

    NameTypeDescription
    audioAUDIO
    wav_pathSTRING
    metadata_jsonSTRING