F5-TTS Audio advanced
Every voice-cloning knob F5-TTS actually exposes
- sample_audio
- AUDIO
This is the node to reach for once the plain F5-TTS nodes get you close but not quite right. "F5-TTS Audio advanced" is a superset of both simpler nodes - it takes reference audio either as a file-folder sample dropdown or as a connected sample_audio input, your choice - plus every tuning knob the underlying F5-TTS model actually exposes: loudness, crossfade, denoising steps, guidance strength, sway sampling, and how speed changes get applied. It's also the newest node in the pack, added in version 1.0.21 with time-domain harmonic scaling (TDHS) bolted on a version later, which tells you where niknah's been putting his effort lately.
F5-TTS clones a voice zero-shot: a short reference clip plus its transcript, then new text spoken in that voice. What the plain nodes hide from you is that this is a diffusion-style generation process - the model denoises audio over a number of steps, steered by classifier-free guidance, same family of ideas as image diffusion. The advanced node is where those internals actually surface as parameters instead of being baked-in defaults.
How it works
Feed it a reference voice the same way you would either sibling node - pick a sample from your input folder, or wire in sample_audio + sample_text directly (the tooltip is explicit: "when this is connected, sample is ignored"). From there it runs the same denoising process as always, but you get to touch the process itself: how many steps it takes, how strongly it follows the guidance signal, and where in that process the guidance leans hardest.
The inputs and outputs that matter
The baseline set is shared with the other two nodes - sample/sample_audio+sample_text, speech, model, model_type, vocoder, speed, seed. What's new here:
nfe_step(default 32) - "the number of function evaluation (denoising steps)," per the node's own tooltip. More steps costs more time; if output sounds tinny or muffled, this is the first knob worth raising.cfg_strength(default 2) - classifier-free guidance strength; higher pushes generation to follow the reference voice more strictly.sway_sampling_coef(default -1, min -10) - biases where in the denoising process the guidance is strongest.target_rms(default 0.1) - target loudness normalization for the output.cross_fade_duration(default 0.15s) - how long segments cross-fade into each other, most relevant if you're generating multiple chunks or switching voices.speed_type- how thespeedvalue is actually applied:torch-time-stretch(torchaudio'sTimeStretch, the default),F5TTS(F5-TTS's own built-in stretch), orTDHS(time-domain harmonic scaling, added 1.0.22) - worth trying if the default stretch introduces artifacts at non-1.0 speeds.fix_duration(default -1, disabled) - pin the total output duration in seconds instead of letting it vary naturally.
Output is a single AUDIO, same as both sibling nodes.
How to install it
Since this node is fairly recent (1.0.21+), if it's missing from your node list, update the pack rather than assume it's not there. In ComfyUI Manager, search "ComfyUI F5-TTS" and hit "update all" - the README specifically recommends Manager over manual git for this reason. Manual install:
cd ComfyUI/custom_nodes
git clone https://github.com/niknah/ComfyUI-F5-TTS
cd ComfyUI-F5-TTS
git submodule update --init --recursive
pip install -r requirements.txt
The submodule step is not optional - the real F5-TTS code lives in a nested repo the wrapper depends on. Windows needs the shared-library ffmpeg build (winget "ffmpeg (Shared)").
Common issues & troubleshooting
Wanting BigVGAN as your vocoder. Most models are fine on vocos (the auto default resolves there), but if you pick bigvgan you'll likely hit an import error - it needs a one-character manual patch in F5-TTS/src/third_party/BigVGAN/bigvgan.py, changing from utils import init_weights, get_padding to from .utils import init_weights, get_padding. This is a known quirk of the vendored BigVGAN code, not a bug in niknah's node.
Tinny, muffled, or over-processed output. Push nfe_step up before you touch anything else, and double-check your reference sample is clean and well under the 15-second cutoff F5-TTS enforces - bad or borderline-length samples are the most common real cause, not the guidance settings.
"No module named f5_tts." A submodule didn't clone properly. Delete custom_nodes/ComfyUI-F5-TTS/F5-TTS and run git clone https://github.com/SWivid/F5-TTS.git F5-TTS in its place.
Fiddly install, breaks on updates. This is a heavier dependency chain than most nodes - torch, torchaudio, a nested submodule - and that combination is a recurring source of pain across ComfyUI's custom-node ecosystem in general. If audio work is a regular thing for you, a separate ComfyUI environment for it keeps this pack's dependencies from colliding with your image/video stack.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| sample | COMBO | 5-15 seconds of audio | |
| speech | STRING | This is what I want to say | — |
| seed | INT | 1 | Seed. -1 = random |
| model | COMBO | 10 options: F5v1, F5, F5-DE, F5-ES, F5-FR, F5-HI, +4 | |
| vocoder | COMBO | Most models are usally vocos | |
| speed | FLOAT | 1.00 | Seed. -1 = random |
| model_type | COMBO | F5TTS_Base | Type of model |
| sample_audioopt | AUDIO | When this is connected, sample is ignored. Also put the words into sample_text | |
| sample_textopt | STRING | Text of sample_audio | — |
| target_rmsopt | FLOAT | 0.10 | Target output speech loudness normalization value |
| cross_fade_durationopt | FLOAT | 0.15 | Duration of cross-fade between audio segments in seconds |
| nfe_stepopt | INT | 32 | The number of function evaluation (denoising steps) |
| cfg_strengthopt | FLOAT | 2.00 | Classifier-free guidance strength |
| sway_sampling_coefopt | FLOAT | -1.000 | Sway Sampling coefficient |
| speed_typeopt | COMBO | torch-time-stretch | TDHS - Time-domain harmonic scaling. torch-time-stretch - torchaudio.transforms.TimeStretch. F5TTS's default time stretch. |
| fix_durationopt | FLOAT | -1.00 | Fix the total duration (ref and gen audios) in second. -1 = disable |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |