Load Checkpoint with Switch
Skip loading the parts of a checkpoint you don't need
- MODEL
- CLIP
- VAE
A checkpoint file usually bundles three separate things into one .safetensors: the diffusion model (UNet or DiT), the CLIP text encoder, and the VAE. Stock CheckpointLoaderSimple always loads all three, whether or not you actually need them from that file. This node is the same loader with three checkboxes bolted on - load_model, load_clip, load_vae - so you can skip the parts you're sourcing somewhere else.
Why you'd ever want to skip a component
The clearest case, and the one the author calls out directly: you're loading a different, better VAE with a separate VAELoader node. If your checkpoint's own VAE is going unused anyway, there's no reason to load it into memory - flip load_vae off and you save that chunk of RAM/VRAM for nothing lost. The same logic applies to load_clip if you're routing text encoding through a separate CLIPLoader/DualCLIPLoader for a different or updated text encoder, or load_model if all you actually wanted out of this checkpoint file was its VAE or CLIP component and the diffusion weights themselves are dead weight in this particular graph.
It's a small optimization individually, but it compounds in workflows that load multiple checkpoints for different purposes (a base model plus a refiner, or a model used only to borrow its VAE) - skipping the parts you don't need across several loaders adds up.
Inputs and outputs
ckpt_name- the standard checkpoint dropdown, populated from whatever's in yourmodels/checkpointsfolder.load_model,load_clip,load_vae- all defaulttrue, matching stock behavior out of the box. You opt out per-component rather than opting in.
Outputs: MODEL, CLIP, VAE - same three sockets as the stock loader. Whichever one you switched off comes through empty; don't wire it downstream expecting real weights, or you'll get an error from whatever consumes it rather than a helpful message pointing back to this node.
Installing it
Via ComfyUI Manager (search "ComfyUI-utils-nodes"), or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/zhangp365/ComfyUI-utils-nodes
Restart ComfyUI. This is a thin wrapper over core loading logic, no extra dependencies of its own.
Where this bites people
The failure mode is always the same shape: you toggle off a component you thought you didn't need, then wire its output into something downstream anyway - a sampler expecting a real MODEL, or a VAEDecode expecting a real VAE - and get a confusing crash several nodes away from the actual cause. When you hit that, the first thing to check isn't the node that errored, it's whether one of these three switches upstream is off. It's a one-line fix once you spot it, but it doesn't announce itself; trace the input back to its source before assuming the error is where it appears to be.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 0 options: | |
| load_modelopt | BOOLEAN | true | — |
| load_clipopt | BOOLEAN | true | — |
| load_vaeopt | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |