Nodes/Pixal3D-ComfyUI/Pixal3D Unload Model
ComfyUI Node

Pixal3D Unload Model

The cleanup node that actually frees your RAM

By Saganaki22·Created 3 months ago·Updated 2 months ago· 204
Pixal3D Unload Model
  • 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_vram and load_moge=false / load_rembg=false on 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.

    CategoryPixal3D

    Inputs (1)

    NameTypeDefaultDescription
    modelPIXAL3D_MODELPixal3D model handle to remove from VRAM and the Pixal3D Python cache. Use this to free CPU RAM after experiments.

    Outputs (0)

    No outputs