Pixal3D Unload Model
The cleanup node that actually frees your RAM
- model
Image-to-3D models are greedy in a way diffusion models aren't: a whole multi-stage pipeline - sparse structure, shape, texture - plus helper encoders (DINOv3, MoGe, RMBG-2.0) gets loaded into one Python process, and it doesn't let go when you're done. Pixal3D Unload Model exists because ComfyUI's normal model unloading isn't enough for that. It's a one-input, no-output utility node that yanks the Pixal3D handle out of both ComfyUI's model management and the pack's own Python cache, then flushes runtime memory.
When you actually need it
This isn't a node you put in every workflow. You reach for it when:
- You generated one asset, exported the GLB, and you're about to load something else big (a video model, a 4B 3D pipeline, whatever) into the same session.
- You're iterating on settings and every re-run of the Model Loader with changed settings already rebuilds the handle - the Unload node is the manual "clear it all" for when you want a clean slate.
- RAM is creeping up over a long session. The README is blunt about the underlying reality: even after a proper unload, Python and PyTorch hold onto reserved memory, and the only way to hand all of it back to the OS is restarting ComfyUI. This node gets you most of the way; it's not a substitute for a restart.
How it works
Feed it the model handle from Pixal3D Model Loader. It removes that handle from the pack's cached handles, destroys it, and flushes the runtime memory cache. It's an output node, so the only thing you see is a text confirmation in the UI ("Pixal3D model unloaded from VRAM and Python cache").
Because it takes the model socket, it slots into a graph anywhere the loader's handle reaches - typically at the end of a workflow, or in a second branch that runs after you're done generating. Keep in mind ComfyUI runs what you wire: if you want it to run after the generation and export, make sure the connections reflect that order.
The honest caveats
- The model handle is cached. If you then run the loader again without changing settings, it returns the cached handle - so "unloaded" and "still resident" can feel confusing until you remember the loader has its own cache.
- Low-VRAM setups are the most common reason to use this. The README's lowest-VRAM path pairs it with
vram_mode=hybrid_low_vramandload_moge=false/load_rembg=falseon the loader, and this node is how you recover when you're juggling two models in a session. - If the whole point is freeing RAM for the next thing and you still see high usage after running it, that's the reserved-memory caveat from above: restart. That's not the node failing, that's CPython being CPython.
Install
Part of the same pack as the rest of Pixal3D - install via ComfyUI Manager (search Pixal3D by Saganaki22, take the normal/stable entry, not the Nightly), or git clone https://github.com/Saganaki22/Pixal3D-ComfyUI into ComfyUI/custom_nodes, pip install -r requirements.txt, restart. No extra dependencies beyond what the pack already needs.
It's a boring node. It's also the difference between a ComfyUI session that stays usable through an afternoon of 3D experiments and one you restart every two generations.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model | PIXAL3D_MODEL | Pixal3D model handle to remove from VRAM and the Pixal3D Python cache. Use this to free CPU RAM after experiments. |
Outputs (0)
No outputs