Nodes/ComfyUI F5-TTS/F5-TTS Audio
ComfyUI Node

F5-TTS Audio

Clone a voice from a WAV file, multi-voice included

By niknah·Created 2 years ago·Updated 13 days ago· 271
F5-TTS Audio
    • AUDIO
    sample
    speechThis is what I want to say
    seed1
    model
    vocoder
    speed1.00
    model_typeF5TTS_Base

    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 English F5v1/F5, or a regional variant like F5-DE, F5-JP, etc.).
    • model_type - which architecture that checkpoint runs as (F5TTS_v1_Base is 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 on auto unless you know you need bigvgan.
    • speed and seed - 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.

    Categoryaudio

    Inputs (7)

    NameTypeDefaultDescription
    sampleCOMBO0 options:
    speechSTRINGThis is what I want to say
    seedINT1Seed. -1 = random
    modelCOMBO10 options: F5v1, F5, F5-DE, F5-ES, F5-FR, F5-HI, +4
    vocoderCOMBOMost models are usally vocos
    speedFLOAT1.00Speed. >1.0 slower. <1.0 faster
    model_typeCOMBOF5TTS_BaseType of model

    Outputs (1)

    NameTypeDescription
    AUDIOAUDIO