F5-TTS Audio
Clone a voice from a WAV file, multi-voice included
- AUDIO
This is the plain "F5-TTS Audio" node from niknah's pack, and it's the one to reach for the second you want more than one voice in a single generation - it's the only node of the three that pulls its reference clips straight off disk, and that file-based setup is what makes multi-voice work at all.
F5-TTS itself is a zero-shot voice-cloning model: hand it a few seconds of someone talking plus a transcript of what they said, and it'll say new text back in that voice, no fine-tuning required. Niknah wrapped the underlying SWivid/F5-TTS research code into a ComfyUI node, and it's become one of the first links people drop when someone in r/comfyui asks how to get voice cloning running locally. Under the hood, all three nodes in this pack run the same generation - a diffusion-style model that denoises audio conditioned on your reference clip's voice and your new text. This node doesn't expose the denoising knobs (those live on the Advanced node); what it's actually built for is reading pairs of files off your input folder and letting you switch between them mid-sentence.
How it works
Instead of taking an AUDIO input, this node scans your ComfyUI input folder (also input/F5-TTS and input/audio) for .wav files that have a matching .txt file of the same name, and lists them in a dropdown. Hit "refresh" after adding files and they show up. That's the whole trick behind multi-voice: name your files voice.wav/voice.txt, voice.deep.wav/voice.deep.txt, voice.chipmunk.wav/voice.chipmunk.txt, and then in your speech text you can tag-switch between them - {main} Hello World this is the end. {deep} This is the narrator. {chipmunk} Please, I need more helium. The other two nodes in this pack can't do this; they only take one reference at a time.
The inputs and outputs that matter
sample- the dropdown described above, built from your input-folder files.speech- the multiline text you want spoken (and where the{tag}voice-switching lives, if you're doing multi-voice).model- which checkpoint to load (base EnglishF5v1/F5, or a regional variant likeF5-DE,F5-JP, etc.).model_type- which architecture that checkpoint runs as (F5TTS_v1_Baseis the current upstream default;E2TTS_*is a related but different model).vocoder- "most models are usually vocos," per the node's own tooltip; leave it onautounless you know you needbigvgan.speedandseed- playback rate and generation seed (-1 = random).
Output is a single AUDIO - wire it into a Save Audio / Preview Audio node, or downstream into a lipsync/video pipeline.
How to install it
Search "ComfyUI F5-TTS" in ComfyUI Manager and install - the README specifically recommends this route because Manager's "update all" keeps it current, whereas a manual git install means updating by hand. If you're doing it manually:
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
That submodule step matters - the actual F5-TTS inference code lives in a nested F5-TTS repo, not in niknah's wrapper itself. On Windows you also need the shared-library build of ffmpeg (winget "ffmpeg (Shared)").
Common issues & troubleshooting
"No module named f5_tts." This is the submodule biting you - some git clients don't pull submodules cleanly. The README's fix: delete the custom_nodes/ComfyUI-F5-TTS/F5-TTS folder and clone it manually with git clone https://github.com/SWivid/F5-TTS.git F5-TTS in its place.
Sample doesn't show up in the dropdown. You need both the .wav and a same-named .txt, they need to be background-noise-free, and you have to hit refresh after adding them - the node doesn't auto-detect new files.
Output sounds tinny or muffled. The community's going tip is a cleaner, shorter sample - F5-TTS hard-cuts reference audio at 15 seconds, sometimes mid-word, so keep yours well under that and make sure it's actually clean audio, not something with background music baked in.
No emotion control. People ask for this a lot and there just isn't a knob for it - no emotion parameter exists on any node in this pack. The delivery follows whatever tone is in your reference clip; if you want an excited or sombre read, record (or find) a sample that already sounds that way.
Heavy install, easy to break. This pack pulls in real ML dependencies (torch, torchaudio, the F5-TTS submodule) and a fresh ComfyUI update can shake something loose. If you're doing a lot of TTS work, a separate ComfyUI install just for audio nodes isolates you from that churn - a pattern that shows up constantly across ComfyUI's custom-node ecosystem, not just here.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| sample | COMBO | 0 options: | |
| 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 | Speed. >1.0 slower. <1.0 faster |
| model_type | COMBO | F5TTS_Base | Type of model |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |