Nodes/ComfyUI Level Pixel/Unload Model [LP]
ComfyUI Node

Unload Model [LP]

Unload Model [LP] — ComfyUI Node Guide

By LevelPixel·Created 2 years ago·Updated 5 months ago· 31
Unload Model [LP]
  • source
  • model for unload
  • *

The scalpel next to Hard Unload All Models' sledgehammer. Instead of dumping every model ComfyUI has cached, this one targets a specific model you point it at and unloads just that - useful when your pipeline runs multiple models back to back and you only need to free up the one you're done with, while something else (a shared CLIP, a VAE, a second checkpoint you'll reuse) stays resident.

What it does and why you'd want it over the Hard version

VRAM not clearing between model swaps is a real, common ComfyUI complaint - it's part of why more than one standalone node pack in the ecosystem exists purely to solve this. The blunt fix is unloading everything (see Hard Unload All Models in this same pack), but that's wasteful if half of what's loaded is still useful for the next step. This node is the answer to "I need this one specific model gone, not the whole cache" - targeted cleanup in the middle of a multi-model workflow instead of a full reset.

Inputs and outputs

  • source (any type, *) - same trick as the Hard variant: wire any node's output through here to force this node into a specific position in ComfyUI's execution order. Its value passes straight through as this node's output.
  • model for unload (optional, any type, *) - this is the input that actually targets what gets unloaded. Wire the specific model reference you want dropped (for example, a checkpoint or model-loader output) into this. Since it's optional, leaving it disconnected means there's nothing telling the node which model to act on - treat it as required in practice if you want this node to do anything meaningful.
  • Output: * (matches source) - pass-through, so your workflow keeps flowing after the unload step.

Like Hard Unload All Models, this is flagged as an output node, so it runs even without anything wired downstream of it - you don't need to "use" its output for the unload itself to happen, you just need it correctly placed in the chain via source.

How to use it

Same rule as the Hard variant, straight from the README's framing of this node family: it needs to sit in a sequential chain, not float disconnected in your graph. Wire source from the step right after you're done using the model you want gone, and wire model for unload to the actual model reference you want targeted - typically whatever your checkpoint or model loader output for that stage.

Installing it

ComfyUI Manager: search "ComfyUI-LevelPixel" (listed under "Level Pixel"), install, restart ComfyUI. Manual install: cd ComfyUI/custom_nodes && git clone https://github.com/LevelPixel/ComfyUI-LevelPixel.git, restart. No model downloads, no extra dependencies for this node - it's memory management logic only.

Common issues

Leaving model for unload disconnected is the top way this quietly does nothing - since it's marked optional in the schema, ComfyUI won't stop you from running the workflow without it wired, but without a target the node has nothing to act on. If you're not seeing VRAM drop after this node runs, check that input first before assuming the node is broken.

Same execution-order caveat as Hard Unload All Models: this node runs where source puts it in the graph, not where you visually placed it on the canvas. If the unload seems to happen at the wrong time relative to your model loads, trace the source wire back to confirm it's actually chained after the point you intend.

And if you find yourself wiring this node three or four times to clear out several models one by one, it's worth asking whether Hard Unload All Models - which clears everything in one node - is actually the simpler fit for that particular workflow instead.

CategoryLevelPixel/Unloaders

Inputs (2)

NameTypeDefaultDescription
source*
model for unloadopt*

Outputs (1)

NameTypeDescription
**