Unified Loader
Every model in one node, with a VRAM escape hatch
- MODEL
- CLIP
- VAE
- CLIP_VISION
- CONTROLNET
- IPADAPTER
- UPSCALE_MODEL
ComfyUI's stock loaders are one-model-per-node: a checkpoint loader here, a CLIP loader there, a separate ControlNet loader, an IPAdapter loader, an upscale model loader... A busy workflow ends up with five or six loading nodes sprawled across the canvas before you've drawn a single image. PgUnifiedLoader collapses that into one node that loads everything - checkpoint, diffusion UNet, VAE, up to four CLIP files, CLIP-Vision, ControlNet, IP-Adapter, and an upscale model - and hands you a single output bundle.
The headline feature is the device_cpu toggle. Flip it and the loader attempts to offload the non-sampling parts of the stack (the CLIP encoders, the VAE, ControlNet, the upscale model - the pieces that aren't the denoising engine) onto CPU, freeing VRAM for the actual sampler. The README is honest about this being best-effort: not everything can be moved off-GPU on every setup, but when it works, it's the difference between OOM-ing and squeezing out a bigger resolution or a higher-res upscale pass on a 6GB card.
How it works
Every selector defaults to none, and the node only loads what you actually set - this is a build-your-own-stack loader, not a "load all four clip slots" machine. Internally it uses ComfyUI's standard loading paths (load_checkpoint, load_unet with your chosen diffusion_type, load_vae with TAESD shortcuts like taesd/taef1, load_clip, load_clip_vision, load_controlnet, load_ipadapter, load_upscale_model), so files are read from the same model folders you already populate. Each sub-load is wrapped in its own try/except - one bad file prints an error and the rest of your stack still loads.
The two type dropdowns matter more than they look: diffusion_type picks the weight dtype for UNet loads (default, or the fp8_e4m3fn/fp8_e4m3fn_fast/fp8_e5m2 quantized variants - FP8 is the usual "fits at lower VRAM" choice for new models), and clip_type defaults to auto, which picks the right CLIP architecture per family (SD 1.x, SDXL, SD3, Flux, Qwen, and the rest). Leave both alone until you hit a real constraint.
Inputs and outputs
device_cpu- the offload toggle. Start with it off; switch on when the sampler is OOMing.checkpoint→MODEL/CLIP/VAE;diffusion→MODEL;vae→VAE;clip_1–clip_4→CLIP(for dual/triple text encoders);clip_vision→CLIP_VISION;controlnet→CONTROLNET;ipadapter→IPADAPTER;upscale→UPSCALE_MODEL.- The
_dropdown is a UI divider, marked inactive - ignore it.
The seven outputs (MODEL, CLIP, VAE, CLIP_VISION, CONTROLNET, IPADAPTER, UPSCALE_MODEL) are what make this one node replace a row of loaders.
Install
Part of PG Nodes: ComfyUI Manager → "PG Nodes" → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/GizmoR13/PG-Nodes
No model downloads - it reads your existing model folders.
Common issues
The dropdowns are populated at startup, so a freshly downloaded model won't appear until you restart ComfyUI. If device_cpu seems to change nothing, that's the best-effort reality - check which piece is actually eating VRAM with a monitor rather than assuming the toggle worked. And the classic: picking both a checkpoint and a diffusion in one graph means whichever loads second overwrites MODEL; pick one path per graph.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| device_cpu | BOOLEAN | false | — |
| checkpoint | COMBO | none | 1 options: none |
| diffusion | COMBO | none | 1 options: none |
| vae | COMBO | none | 1 options: none |
| clip_1 | COMBO | none | 1 options: none |
| clip_2 | COMBO | none | 1 options: none |
| clip_3 | COMBO | none | 1 options: none |
| clip_4 | COMBO | none | 1 options: none |
| clip_vision | COMBO | none | 1 options: none |
| controlnet | COMBO | none | 1 options: none |
| ipadapter | COMBO | none | 1 options: none |
| upscale | COMBO | none | 1 options: none |
| _ | COMBO | UI divider — inactive | |
| diffusion_type | COMBO | default | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
| clip_type | COMBO | auto | 16 options: auto, SD 1.x/2.x, SDXL, SD3, Stable Cascade, FLUX, +10 |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| CLIP_VISION | CLIP_VISION | — |
| CONTROLNET | CONTROL_NET | — |
| IPADAPTER | IPADAPTER | — |
| UPSCALE_MODEL | UPSCALE_MODEL | — |