Nodes/ComfyUI_IndexTTS/IndexTTS Speaker Preview
ComfyUI Node

IndexTTS Speaker Preview

Audition your saved voice library before you clone

By billwuhao·Created about a year ago·Updated 9 months ago· 537
IndexTTS Speaker Preview
    • audio
    speaker

    IndexSpeakersPreview does one small, useful thing: it lists whatever voice samples you've saved and hands back the one you pick as audio. Its purpose is auditioning - pick a speaker from a dropdown instead of hunting through a file browser for the right clip every time you build a workflow. What makes it worth knowing about specifically is the folder it reads from: IndexTTS on ComfyUI, ordinarily. But the author routes every TTS pack he ships - IndexTTS, and by his own README also CSM, Dia, MegaTTS, QuteTTS, SparkTTS, and StepAudioTTS - through one shared ComfyUI/models/TTS/speakers directory. Save a voice here once, and it's available in this dropdown, and in the equivalent node in every one of those other packs, not just this one.

    How it works

    It's a lookup, not a generator. No cloning, no GPU inference, no model loaded at all - it reads a file from disk and outputs it as audio. This is the cheapest node in the pack to run, and the only reason to reach for it instead of an Audio Load node is the shared-folder convention: it's scoped to the same directory every other TTS node in the author's catalog also reads from.

    The inputs and outputs that matter

    • speaker - an enum dropdown populated from whatever files are sitting in ComfyUI/models/TTS/speakers. It's empty until you actually put something there, which is the single most common thing people trip over: install the node, add it to a graph, see zero options, assume something's broken. Nothing's broken - the folder is just empty.

    Output is a single audio, which wires straight into IndexTTSRun's or IndexTTS2Run's audio reference input - or into emo_audio_prompt on the v2 node if you're reusing a saved clip specifically as an emotion reference rather than a voice to clone.

    How to install it

    It's part of the same pack as the run nodes - no separate install, no extra dependency, since it never touches a model file directly. Get ComfyUI_IndexTTS through ComfyUI Manager or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/billwuhao/ComfyUI_IndexTTS.git
    cd ComfyUI_IndexTTS
    pip install -r requirements.txt
    

    The actual setup work is populating the folder, not installing the node: drop a few clean seconds of reference audio per voice into ComfyUI/models/TTS/speakers, and name the files something sensible - the filename is literally what shows up in the dropdown, so "recording_final_v3.wav" is going to haunt you later.

    Common issues & troubleshooting

    An empty dropdown is the near-universal complaint for this node type, and it's a ComfyUI pattern rather than a bug specific to this pack: enum dropdowns backed by a folder typically refresh when the node is created or when the server restarts, not the instant you drop a new file in. If you add a speaker clip mid-session and it's not showing up, use ComfyUI Manager's refresh, or just restart - don't go looking for a config setting, there isn't one.

    The other thing worth knowing before it confuses you: because the speakers folder is shared across the author's whole family of TTS packs, this dropdown isn't scoped to IndexTTS specifically. If you've also got his MegaTTS or SparkTTS nodes installed and dropped a file in for one of those, it'll show up here too - which is usually harmless, but it does mean a messy or ambiguously-named file from an entirely different workflow can end up cluttering this list.

    Category🎤MW/MW-IndexTTS

    Inputs (1)

    NameTypeDefaultDescription
    speakerCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    audioAUDIO