MOSS-TTS Unload
Get your 13 GB of VRAM back
- model
- status
Here's a scenario you'll recognize if you've run MOSS-TTS once: your workflow finishes, and suddenly your next workflow - the image one you actually cared about - OOMs because a 1.7B model is still squatting in VRAM. MOSSTTSUnload is the cleanup crew. It frees the cached model so the 13 GB it parked in memory goes back to the pool.
Why it exists
The loader (MOSSTTSLoader) defaults to keep_loaded = true, which means the model stays cached in VRAM across runs - on purpose, so you don't pay the load cost every time. That's great for chaining multiple generations in one session and awful for everyone else. This node is the manual release valve: drop it at the end of your workflow and the model gets evicted when the run finishes.
If you'd rather not think about it, the alternative is flipping keep_loaded to false on the loader - then MOSSTTSGenerate frees the model itself after every run. Unload gives you the same effect but with explicit control over when.
How it works
It's refreshingly honest about being a dummy node. The model input is required but unused on purpose - it's there purely as an execution-order trigger, so ComfyUI guarantees Unload runs after everything that needs the model. Inside, it calls cleanup_all(), which clears the module-level model cache and frees VRAM, then returns a status string telling you it happened. That's it. One input, one string output, marked as an output node so it always executes.
Using it
MOSSTTSLoader → MOSSTTSGenerate → MOSSTTSUnload
Wire the loader's model output into Unload's model input, even though the value is ignored - the wiring is what makes the ordering correct. The status output is optional; wire it to ShowText if you want confirmation, or leave it dangling.
When to skip it
There's a real trade-off, not a free win. If you're doing several generations back to back in one workflow, don't unload between them - you'll just pay the reload cost (weights are cached on disk, but loading still takes time). The node earns its place at the end of a one-shot run, or after a run that OOMed partway. If your GPU got stuck with a half-loaded MOSS-TTS model after a crash, Unload is also your cleanest reset.
In a small pack of small nodes, this one's the janitor - and every serious workflow eventually needs a janitor.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MOSS_TTS_MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |