IndexTTS2 Voice Clone
Clone a voice from one audio clip and make it say anything
- model
- spk_audio_prompt
- audio
This is the node you reach for first, because it's the entire point of the pack: give it a few seconds of someone talking and a line of text, and it says the line in their voice. No fine-tuning, no training, no ElevenLabs account - just zero-shot voice cloning that runs on your GPU. It's the direct local competitor to what F5-TTS and Chatterbox do, with IndexTTS-2's own flavor: strong naturalness and an English/Chinese sweet spot.
The workflow is embarrassingly simple: Model Loader → Voice Clone → SaveAudio. spk_audio_prompt takes standard ComfyUI AUDIO, so you wire in a core LoadAudio node pointing at your reference file. That's the whole graph.
How it works
The reference clip gets run through a wav2vec-BERT feature extractor into a speaker conditioning embedding - that's your timbre. The text gets tokenized and fed to an autoregressive GPT that predicts speech codes, which a speech-to-mel module and the BigVGAN vocoder turn into a 22.05 kHz waveform. Because the speaker identity and the content are handled by separate branches, you can swap text and keep the voice, which is the "zero-shot" part. Notably, with no explicit emotion input this node just inherits whatever emotion the reference audio carries - a happy-sounding reference gives happy-sounding output.
The inputs that actually matter
text- what the voice says. Multiline, so paragraphs are fine.spk_audio_prompt- your reference clip, fromLoadAudio. This is 90% of the quality, not the text.use_random- off by default. Enabling it adds variety between runs but degrades cloning fidelity. Leave it off unless you're deliberately hunting for variants.temperature,top_k,top_p- sampling knobs.top_kdefaults to 0 (off); the pack's own docs suggest 5–10 if your output is unstable.
The single output, audio, is standard ComfyUI AUDIO - wire it to SaveAudio (or PreviewAudio) to actually keep the result.
Getting good clones
The community's hard-won rules for reference audio are worth repeating, because this model is sensitive:
- Use 5–15 seconds of clean, single-speaker audio. No background music, no crowd.
- Loud, dynamic, expressive clips (a podcast clip) work dramatically better than quiet, slow, monotone ones (a soft audiobook reading). The model leans on the energy in the reference.
- IndexTTS-2 is English/Chinese-native, so don't expect miracles on other languages.
- It fumbles apostrophes - "don't" comes out garbled, so write "dont". Annoying, but you'll get used to retyping contractions.
Install and setup
Same story as the rest of the pack: Manager search "IndexTTS-2", or clone into custom_nodes, then pip install -r requirements.txt. You need the full model downloaded to ComfyUI/models/IndexTTS-2/ (see the Model Loader article) and internet for the first load's w2v-BERT and MaskGCT downloads. The heavy dependency list is the price of entry for audio in ComfyUI - set aside a patient pip install the first time.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | INDEXTTS2_MODEL | — | |
| text | STRING | Hello, this is a test of voice cloning with IndexTTS-2. | — |
| spk_audio_prompt | AUDIO | — | |
| temperature | FLOAT | 1.00.1–2 | — |
| top_k | INT | 00–100 | — |
| top_p | FLOAT | 1.000–1 | — |
| use_random | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |