TTS WebUI F5-TTS
Zero-shot voice cloning without the ceremony
- audio
- wav_path
- metadata_json
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;
defaultis 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.wavmeans 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.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello | — |
| api_base | STRING | http://127.0.0.1:7778 | — |
| api_keyopt | STRING | — | |
| ref_audio_origopt | STRING | — | |
| ref_textopt | STRING | — | |
| modelopt | STRING | default | — |
| remove_silenceopt | BOOLEAN | false | — |
| cross_fade_durationopt | FLOAT | 0.150–5 | — |
| nfe_stepopt | INT | 321–256 | — |
| speedopt | FLOAT | 1.000.25–4 | — |
| show_infoopt | BOOLEAN | false | — |
| 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 | — |