WavTTS Unload Model
Politely evict your TTS from memory
- wavtts_model
- wavtts_model
This is the unglamorous cleanup node every ComfyUI pack should ship. Hand it the wavtts_model bundle from WavTTS Load Model and it frees that memory the way ComfyUI itself would if you were lucky: it removes the module from ComfyUI's memory tracking, detaches it from the accelerator, clears runtime caches, and - when the torch version supports it - moves the weights to meta tensors so a big CPU copy isn't kept hanging around. The FP32 checkpoint alone is ~2.5 GiB, so this is real memory we're talking about.
When you actually need it
Be honest about the use case: you don't need this node on every workflow. ComfyUI already swaps models out of VRAM when they go idle, and WavTTS Load Model unloads the previous bundle itself whenever you change checkpoint, dtype, device, or attention. So what is this for?
The two times it earns its place: you're running a heavy image or video model in the same session and want the TTS weights gone now rather than waiting for a swap, and you want a deterministic release on CPU RAM - that retained CPU copy is the bit most people never think about, and it's exactly what to_empty(device="meta") avoids. Slap it at the end of a TTS branch and you get a workflow that leaves no trace behind.
Inputs and outputs
Exactly one of each, and they're the same type: wavtts_model in, wavtts_model out. It's a pass-through, which is deliberate - you can place it on the tail of a branch without breaking the wire downstream if you're still experimenting. The actual work happens as a side effect of running the node.
Install
Identical to the rest of the pack. Search WavTTS in ComfyUI Manager and restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Saganaki22/WavTTS-ComfyUI.git
cd WavTTS-ComfyUI
python install.py
install.py installs the WavTTS runtime with --no-deps (uv-or-pip) and won't touch your existing torch/pydantic install. Skip pip install -r requirements.txt entirely - it's inert by design.
Gotchas
Not much to trip on with a node this small. One thing to know: this unloads the model, but if you're also holding a Whisper model in the same session, that's a separate load and a separate unload - there's no one-shot "clear everything" button. And the pass-through output means if you wire it into a place that still generates audio afterward, the generation will just re-run the load - that's not a bug, it's the graph working as ordered.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| wavtts_model | WAVTTS_MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| wavtts_model | WAVTTS_MODEL | — |