Nodes/ComfyUI-Index-TTS/Index TTS 2.5 - Save Voice
ComfyUI Node

Index TTS 2.5 - Save Voice

Index TTS 2.5 – Save Voice

By chenpipi0807·Created about a year ago·Updated 4 days ago· 748
Index TTS 2.5 - Save Voice
  • voice
    filename_prefixIndexTTS2.5/voice

    Save Voice is the persistence step in ComfyUI-Index-TTS's voice workflow: it takes the INDEXTTS25_VOICE conditioning that Extract Voice produces and writes it to a .pt file on disk. You extract a voice once, save it, and it's yours - it survives ComfyUI restarts, survives the original reference recording being deleted, and becomes part of a reusable voice library you can pull back with Load Voice any time.

    If you've used ComfyUI at all, the design will feel familiar: this node behaves like SaveImage but for voice conditioning instead of pixels.

    How it works

    You give it a voice object and a filename_prefix (default IndexTTS2.5/voice). It calls the same path-folder machinery ComfyUI's image saver uses, so your file lands in ComfyUI/output/IndexTTS2.5/voice_00000_.pt - subdirectories from slashes in the prefix, an auto-incrementing counter so you never overwrite, exactly like image outputs. It's an output node: nothing flows out of it down the graph; it just reports the saved relative path back in its UI text field.

    What's inside the file is the serialized conditioning: five CPU tensors (spk_cond, style, s2mel_prompt, ref_mel, emo_cond) plus metadata tagging the format, version, and model ("IndexTTS-2.5"). Nothing about the source recording is in there - which is a nice side effect if you want to hand a voice to someone without handing them the raw audio.

    Wiring

    Keep it trivial: Extract VoiceSave Voice, run once. Rename the resulting .pt file however you like - it's self-describing. To reuse the voice later, that's Load Voice's job; to synthesize with it now or later, feed the voice object (or the loaded file) into Voice Base.

    Installing

    This node ships inside the one pack - no separate install. ComfyUI Manager (search "IndexTTS"), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/chenpipi0807/ComfyUI-Index-TTS.git
    cd ComfyUI-Index-TTS
    pip install -r requirements.txt
    

    Then get the 2.5 models into ComfyUI/models/IndexTTS-2.5/ via python custom_nodes/ComfyUI-Index-TTS/TTS2_5_download.py. Technically Save Voice only serializes tensors and will work without the models loaded, but Extract Voice upstream won't run without them, so you need the full set anyway.

    Gotchas

    Keep your .pt voices on the same pack version that wrote them. Saved voices carry a format_version, and both Save and Load refuse anything that doesn't match - after an update that bumps the format, old files fail loudly ("unsupported voice format") rather than silently corrupting. That's the system working as intended: re-extract, don't debug. Also note the file lands under output/, ComfyUI's normal output folder, so it's easy to mistake it for a render artifact and clean it up with the rest - move your keeper voices somewhere deliberate.

    Categoryaudio/IndexTTS 2.5/voice

    Inputs (2)

    NameTypeDefaultDescription
    voiceINDEXTTS25_VOICE
    filename_prefixSTRINGIndexTTS2.5/voice

    Outputs (0)

    No outputs