Enviral Load Checkpoint
Stop scrolling a 400-file checkpoint dropdown
- model
- clip
- vae
- checkpoint_list
Let me paint the picture this node exists for: your models/checkpoints folder has outlived any reasonable sense of restraint. Forty SDXL merges, a stack of Flux devs, some legacy 1.5 stuff you swear you'll prune. Every "Load Checkpoint" you add gives you the full wall of names, and picking the right one from a combo that size is where workflows start to feel like a chore. Enviral Load Checkpoint (class EnviralLoadCheckpointFiltered) is the fix: a stock checkpoint loader that lets you cut the dropdown down to one folder, or to exactly the models you say you want.
It's one of three "filtered model loaders" from the Enviral Design Node Pack, alongside the diffusion-model and text-encoder variants. Same base behavior as the pack's Enviral Load LoRA: filter the list, keep the loading itself on ComfyUI's normal code path. Nothing fancy under the hood - which is the point.
How it works
The node reads ComfyUI's registered checkpoint list and filters it in two steps. The folder input narrows things to a folder prefix and everything under it (so flux also shows flux/dev, flux/schnell, and so on). The allow_list input is a newline-separated allow-list: each non-empty line keeps an exact displayed name or a full relative path, and everything else disappears. Combined with a folder it's an intersection - a model has to be both in the folder and on the list.
The selection still loads via the full relative ComfyUI path, and the loader validates up front: if the chosen ckpt_name isn't actually inside the chosen folder (or isn't on the allow-list), it fails validation before anything runs instead of exploding mid-graph.
The inputs and outputs that matter
folder- defaultAll Checkpoints, or any folder prefix you currently have. This is the one beginners actually set. Use it as a lazy grouping tool.ckpt_name- the dropdown. Also accepts a linked STRING from another node, as long as it matches a model path ComfyUI knows. That's how you drive a checkpoint choice from text.allow_list- optional, multiline. Wire aText (Multiline)node in and you've turned this into a "these four, nothing else" loader.
Outputs are the standard model, clip, and vae you'd expect from any checkpoint loader, plus checkpoint_list - a STRING of the visible options, one per line. That last one is handy if something else in your graph wants to know what the loader is actually offering, or for debugging "why is my dropdown so short."
Installing it
It ships in the Enviral Design Node Pack. Easiest route: ComfyUI Manager → search "Enviral Design Node Pack" → install → restart. Or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/EnviralDesign/comfyUI-enviral-design-node-pack
then restart ComfyUI. No model downloads for this node - it loads whatever's already in models/checkpoints. The pack's only hard Python dependency is color-matcher (used by a different node in the pack, Enviral Color Match V2), so you won't be pulling in a dependency circus to use a loader.
Where people get burned
- New checkpoints don't show up. ComfyUI caches the file list. Hit
Ron the canvas or Refresh Node Definitions to re-enumerate, then re-pick the folder. - A linked STRING doesn't validate. It has to match a path ComfyUI knows, exactly. Close matches fail cleanly with a message telling you what went wrong - read the red text on the node.
- Changing
foldercan invalidate your savedckpt_name. The loader moves to a valid option when it can and errors when it can't, so pick the folder before you get attached to a specific model.
Honest verdict: if your checkpoints folder is small, stock Load Checkpoint is fine and this is overkill. The moment you're maintaining dozens of models, or you want checkpoint choice driven by text, this is the loader you'll actually reach for.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| folder | COMBO | All Checkpoints | Limits the model dropdown to this folder and its subfolders. |
| ckpt_name | COMBO | Model name. Also accepts a linked STRING, as long as it matches a model path known to ComfyUI. | |
| allow_listopt | STRING | Optional newline-separated checkpoint allow-list. Entries may use displayed names or full paths. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | The diffusion model loaded from the checkpoint. |
| clip | CLIP | The text encoder loaded from the checkpoint. |
| vae | VAE | The VAE loaded from the checkpoint. |
| checkpoint_list | STRING | The visible checkpoint options, one display name per line. |