Load New Model
The Loader That Decouples 'Choosing a Model' From 'Loading It'
- model
- clip
- vae
- vae_fallback
- model
- clip
- vae
In vanilla ComfyUI, Load Checkpoint is where you pick a model and load it in one step. Fine for a toy workflow. Awful when you've built a reusable graph where the model choice should be a parameter you can swap - through an XY plot axis, a saved image_info, a merge configuration - without touching the loader. IPT-LoadNewModel splits the difference: it takes an IPT-Model reference (a lightweight description of which model, produced by selector nodes like Checkpoint Selector or Diffusion Model Selector) and turns it into the actual loaded runtime MODEL/CLIP/VAE tensors at execution time.
The payoff is that the model choice travels through your graph as data. You can store it in image_info, save it to a file, vary it in an XY plot, or restore it from a metadata-rich image - and the load happens where you need it, using whatever the reference points at.
How it works
It receives an IPT-Model selection, resolves which checkpoint or diffusion-model file it names, and loads the runtime bundle through ComfyUI's own checkpoint loader - so the actual loading logic is stock ComfyUI, not custom. For diffusion-model selections, the optional clip input supplies the external CLIP (diffusion models often don't ship one), and vae / vae_fallback handle the VAE: a non-empty explicit vae always wins, otherwise the model's own VAE, otherwise vae_fallback. Within a single prompt execution it uses a temporary strong cache so the same model isn't raw-loaded twice, which is exactly the kind of thing that makes big multi-model graphs slower than they need to be.
The pack pairs it with Use Loaded Model, which keeps the runtime in a process-local cache keyed by model, settings, and lora_stack, so repeat runs skip the load entirely.
Inputs and outputs that matter
model(required, IPT-Model) - the selection. Comes from a selector node; that's the whole idea.clip(optional) - external CLIP for diffusion models.vae/vae_fallback(optional) - VAE override and fallback.model/clip/vae(outputs) - the real runtime objects, ready to wire into samplers, conditioning, and VAE decode.
Installing it
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/kinorax/comfyui-info-prompt-toolkit.git
cd comfyui-info-prompt-toolkit
pip install -r requirements.txt
Restart ComfyUI (or ComfyUI Manager → "ComfyUI-Info-Prompt-Toolkit"). ComfyUI 0.17.0+.
Common issues
Don't hand it a raw filename - it wants an IPT-Model reference from a selector, and that's a different socket type. If you're coming from a normal Load Checkpoint mindset this trips people up first. Also, if vae is connected but empty, treat it as unset; the explicit-override behavior means a stray wired-but-empty VAE socket can silently change what loads. And remember the model files themselves must exist locally - an IPT-Model reference that names a file you deleted will fail at load time with a clear missing-file error, which is honest but still means re-selecting the model.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | IPT-Model | Load model runtime directly from IPT-Model | |
| clipopt | IPT-Clip | Optional external CLIP reference used for diffusion models | |
| vaeopt | * | Optional VAE override. Non-empty input always takes priority | |
| vae_fallbackopt | * | Fallback VAE reference used when no VAE is available |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |