♻ Loop Load checkpoint (Model Selector)
Batch-test checkpoints in one run
- model
- clip
- vae
- model_path
- model_name
- model_folder
The honest way to pick a checkpoint isn't reading CivitAI comments - it's running your actual prompt through five of them and looking. This node makes that a one-click thing. You choose a handful of checkpoints, it loops your workflow over each, and you get one image per model with everything else held constant. No swapping loaders, no re-queuing, no keeping track of which render came from what.
Where it fits
Checkpoint choice is the single biggest lever on your output - bigger than sampler, bigger than most prompt tweaks. A photoreal SDXL merge and a stylized anime one respond to the same prompt completely differently. So the useful move, when you're settling on a base model for a project, is a controlled bake-off: same prompt, same seed, same steps, swap only the checkpoint. That's what this node automates. It's the model-level sibling of the pack's sampler and LoRA loop nodes, and it slots into the same "test once, lock the winner" workflow.
How it works
It's a checkpoint loader that holds several models instead of one. You set number_of_models (default 3, up to 20) and that many model_N dropdowns appear, each listing the checkpoints in your ComfyUI/models/checkpoints folder. Pick a different checkpoint in each slot. On run, the node loops: iteration one loads the first, iteration two the second, and so on.
The outputs are the standard trio - model, clip, vae - plus three string outputs, model_path, model_name, and model_folder, that tell you which checkpoint produced the current image. Those strings are gold for a batch test: pipe model_name into a Show or Save-to-folder node and every result is labeled or filed by the model that made it, so you're never squinting at a grid trying to remember which is which.
One detail from the author worth knowing: this loader preloads the selected checkpoints into memory so it can rip through them all quickly. That's the speed win - you're not paying the disk-load cost on every iteration. The flip side is VRAM/RAM pressure if you queue up a dozen big models at once, so be a little reasonable with how many you stack.
The inputs that matter
- number_of_models - how many slots to show. Start at 2–3.
- model_1 … model_N - the checkpoints to compare, one per dropdown.
That's really it. The strength of the node is its narrowness: it changes the model and nothing else.
Installing the pack
All Bjornulf nodes come in one pack. ComfyUI Manager → Install Custom Nodes → search Bjornulf_custom_nodes → install → restart. Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/justUmen/Bjornulf_custom_nodes
Restart and find it under Bjornulf. It's a loader with no exotic dependencies; it just needs checkpoints in your models folder to list.
Common issues
If the dropdowns are empty, you have no checkpoints where ComfyUI expects them - drop some .safetensors into ComfyUI/models/checkpoints and restart or refresh so the node re-scans. (In a fresh scan the slots list as blank; that's the tooling reading the node before any models are installed, not the node being broken.)
The bigger thing to understand is list behavior. Because this node emits a list, everything downstream of it runs once per checkpoint. That's the whole point, but it means you should keep the graph after it lean - every extra heavy node in the chain runs N times too. And don't stack this with another list-producing loop (samplers, LoRAs) in the same graph unless you genuinely want the full cross-product, because the run count multiplies fast. Test one dimension at a time, note the winner, wire it in with a normal loader, and pull the loop out.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| number_of_models | INT | 31–20 | — |
| model_1opt | COMBO | 0 options: | |
| model_2opt | COMBO | 0 options: | |
| model_3opt | COMBO | 0 options: | |
| model_4opt | COMBO | 0 options: | |
| model_5opt | COMBO | 0 options: | |
| model_6opt | COMBO | 0 options: | |
| model_7opt | COMBO | 0 options: | |
| model_8opt | COMBO | 0 options: | |
| model_9opt | COMBO | 0 options: | |
| model_10opt | COMBO | 0 options: |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| vae | VAE | — |
| model_path | STRING | — |
| model_name | STRING | — |
| model_folder | STRING | — |