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

F5-TTS Audio from input

Clone a voice without touching the filesystem

By niknah·Created 2 years ago·Updated 13 days ago· 271
F5-TTS Audio from input
  • sample_audio
  • AUDIO
sample_textText of sample_audio
speechThis is what I want to say
seed1
modelF5v1
vocoderauto
speed1.00
model_typeF5TTS_Base

"F5-TTS Audio from input" is the version of niknah's voice-cloning node for when your reference clip is already sitting inside your graph - coming out of a Load Audio node, trimmed from a longer file, or transcribed by a Whisper node - instead of a .wav/.txt pair you'd have to drop into ComfyUI's input folder first. Same F5-TTS model, same zero-shot cloning, different plumbing.

F5-TTS (built on SWivid/F5-TTS, wrapped for ComfyUI by niknah) works by conditioning on a short reference clip of a voice plus a transcript of what's said in it, then generating new speech in that voice for whatever text you give it next. This node is the one niknah's own README points to for the "input audio only, using OpenAI's Whisper to get the text" workflow - you pull audio from anywhere upstream, run it through a Whisper node to get the transcript automatically, and feed both straight in here without ever writing a file to disk. It's the tidiest option if your voice sample is generated or extracted mid-pipeline rather than something you already have as a clean standalone file.

How it works

Where the plain "F5-TTS Audio" node reads files off disk, this one takes the reference clip as a proper AUDIO input and asks you to supply the matching text directly. It's a straight substitution - the model behind it is identical - but the trade-off is real: because there's only one audio input, this node does not support multi-voice. If you want the {tag}-based voice switching, that only exists on the file-based node.

The inputs and outputs that matter

  • sample_audio (required, AUDIO) - your reference clip, 5–15 seconds, wired in from elsewhere in the graph.
  • sample_text (required, STRING) - the transcript of exactly what's said in sample_audio. Get this right; it's how the model aligns the reference audio to reference text.
  • speech - the multiline text you actually want spoken in the cloned voice.
  • model / model_type - checkpoint and architecture (F5v1 on F5TTS_Base by default here; F5TTS_v1_Base is the newer upstream default if your dropdown shows it).
  • vocoder - leave on auto; it resolves to vocos for nearly everything.
  • speed - greater than 1.0 slows the output down, less than 1.0 speeds it up.
  • seed - -1 for random.

Output is a single AUDIO, same as the sibling nodes - feed it to Save Audio, Preview Audio, or whatever consumes audio downstream.

How to install it

Through ComfyUI Manager: search "ComfyUI F5-TTS" and install - the README recommends Manager specifically so "update all" keeps the pack current. Manually, it's a git clone plus a submodule pull, because the actual F5-TTS inference code lives in a nested repo, not in niknah's wrapper:

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

Windows users also need the shared-library ffmpeg build (winget "ffmpeg (Shared)").

Common issues & troubleshooting

Output doesn't sound like a clean clone. The most common cause isn't the node, it's sample_text not matching sample_audio word-for-word - if the transcript is wrong, the model's alignment between reference audio and reference text is wrong, and quality suffers everywhere, not just at the mismatched part.

Longer readings drift or get weird. F5-TTS caps reference audio at 15 seconds and can cut it mid-word if you're near that limit - keep sample_audio well under 15s and free of background noise or music.

"No module named f5_tts" on first run. A submodule didn't pull cleanly. Delete custom_nodes/ComfyUI-F5-TTS/F5-TTS and clone it directly: git clone https://github.com/SWivid/F5-TTS.git F5-TTS in its place.

Install feels heavy, or breaks after an update. This pack drags in real ML dependencies - torch, torchaudio, the F5-TTS submodule itself - and that's a genuinely common source of friction across ComfyUI's custom-node ecosystem generally, not something specific to a bad build. If you're doing serious audio work, isolating it in its own ComfyUI install avoids fights with your image/video node dependencies.

Categoryaudio

Inputs (8)

NameTypeDefaultDescription
sample_audioAUDIO5-15 seconds of audio
sample_textSTRINGText of sample_audio
speechSTRINGThis is what I want to say
seedINT1Seed. -1 = random
modelCOMBOF5v110 options: F5v1, F5, F5-DE, F5-ES, F5-FR, F5-HI, +4
vocoderCOMBOautoAuto will be set by model_type. Most models are usually vocos.
speedFLOAT1.00Speed. >1.0 slower. <1.0 faster
model_typeCOMBOF5TTS_BaseType of model

Outputs (1)

NameTypeDescription
AUDIOAUDIO