Nodes/IndexTTS 2.5 · T8star-Aix/IndexTTS 2.5 模型、显存与参考缓存管理 · T8star-Aix
ComfyUI Node

IndexTTS 2.5 模型、显存与参考缓存管理 · T8star-Aix

Free the VRAM without nuking your neighbor's models

By T8mars·Created about a month ago·Updated 5 days ago· 52
IndexTTS 2.5 模型、显存与参考缓存管理 · T8star-Aix
    • 显存与模型缓存报告 JSON
    actionstatus
    idle_seconds300

    Every custom-node pack eventually ships a "free memory" node, and most of them are blunt instruments that clear ComfyUI's whole model cache - which, if you're running a TTS + video pipeline, means your Stable Diffusion checkpoint gets evicted mid-project. 模型、显存与参考缓存管理 is the polite version. It only ever touches what this pack loaded: the IndexTTS 2.5 model, any optional ASR (Whisper) models, and the voice/emotion reference-condition cache. It explicitly does not call ComfyUI's global cleanup, so your other nodes' models sit there untouched.

    That scoped-in discipline is the whole reason to use it. If you only run IndexTTS, ComfyUI's own memory tools are fine. This node earns its place in multi-model pipelines where "release all" is a footgun.

    What the actions do

    The action dropdown is the entire interface:

    • status - report current model cache state without changing anything.
    • reference_cache_status - look at the voice/emotion reference-condition cache: entries, bytes, hits, misses, hit rate. The reference cache is a big deal in this pack: encoded reference conditions are persisted to disk as safetensors (up to 128 entries) keyed by reference content, model revision/fingerprint, precision, and reference device, so a reused voice skips re-encoding. This action is how you check it's actually working.
    • clear_reference_cache - delete only the pack's own safetensors reference cache. It leaves models and your reference audio files alone. The one to reach for when a voice change doesn't seem to take - a stale cached encoding is the usual culprit.
    • release_idle - evict the IndexTTS/ASR model if it's been idle for idle_seconds (default 300).
    • release_all - unload the pack's models and its Whisper cache. Safe here precisely because it's scoped to this extension.

    The idle_seconds input only matters for release_idle. Everything else ignores it.

    Output and how to read it

    One output: memory_report, a JSON blob that records the action, what got released and how many entries were cleared, and the before/after state of the model cache, the ASR cache, and the reference cache (both the on-disk and in-memory halves). Wire it to a text node to read it, or just glance at it in the node's output area. There's no audio out, no image out - it's a control node, not a producer.

    Installing

    Same as the rest of the pack: ComfyUI Manager → IndexTTS 2.5 · T8star-Aix, or git clone https://github.com/T8mars/comfyui-indextts25-t8.git into custom_nodes/, restart. No models needed to run it - it reports on state that may or may not exist.

    Where people get burned

    Two things trip people up. First, release_all only helps the next generation if a new task is about to load; the pack even delays release if a generation is mid-flight to avoid double-loading. So don't fire it randomly and expect a magic frame-rate boost mid-render - let it work when the pipeline asks for VRAM. Second, clearing the reference cache is a trade: the next generation with the same voice re-encodes it, which costs a bit of time and VRAM. If your clones all sound right, leave the cache alone. The reference_cache_status action exists precisely so you can confirm it's healthy before you delete it.

    CategoryT8star-Aix/Audio/IndexTTS 2.5

    Inputs (2)

    NameTypeDefaultDescription
    actionCOMBOstatusreference_cache_status 查看音色/情感参考编码缓存;clear_reference_cache 只删除本节点自己的 safetensors 缓存。
    idle_secondsFLOAT3000–86400

    Outputs (1)

    NameTypeDescription
    显存与模型缓存报告 JSONSTRING