IndexTTS 2.5 模型、显存与参考缓存管理 · T8star-Aix
Free the VRAM without nuking your neighbor's models
- 显存与模型缓存报告 JSON
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 assafetensors(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 ownsafetensorsreference 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 foridle_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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| action | COMBO | status | reference_cache_status 查看音色/情感参考编码缓存;clear_reference_cache 只删除本节点自己的 safetensors 缓存。 |
| idle_seconds | FLOAT | 3000–86400 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 显存与模型缓存报告 JSON | STRING | — |