Scorpiov Multi-Checkpoint Loader
A checkpoint switcher you can drive by number
- MODEL
- CLIP
- VAE
- model_tag
A normal CheckpointLoader in ComfyUI is a dropdown: you pick one model and that's the graph. Scorpiov Multi-Checkpoint Loader replaces the dropdown with a numbered list - you configure several checkpoints up front, then switch between them with a single integer, checkpoint_index. The point isn't saving you a click; it's that an integer is drivable. You can wire it to a seed, a control node, or - in this pack's case - let the Batch Prompt Runner step through every checkpoint you've configured, one queue job at a time.
How it works
Configure the node by clicking "+ Add Checkpoint" on its UI to build a list of slots, each with a checkpoint filename and a short tag. That list lives behind a hidden scorpiov_checkpoint_config string widget (JSON) - the tooltip on it says never to hand-edit it, and you shouldn't; the JS rebuilds it whenever you change a slot. Then the only inputs you touch are:
checkpoint_index- which slot to load, 0-based, clamped to your configured list. Set it manually, or let the Batch Runner drive it.scorpiov_checkpoint_config- the hidden config list; ignore it.
Outputs are the standard trio plus one bonus: MODEL, CLIP, VAE, and model_tag - a string you choose per slot. The tag is the clever bit: wire it into the pack's Save Image and your output files get named after the checkpoint that produced them ({line:03d}-{tag}), which is how a multi-checkpoint batch stays organized without you renaming anything.
Two behaviors in the source are worth knowing. Out-of-range indices are clamped rather than errored - a batch runner that miscounts slots degrades to the last valid checkpoint instead of aborting mid-batch. That's a deliberate "fail soft" choice, and it means if you see a bunch of results all from the last checkpoint, you probably have a slot-count mismatch rather than a crash. And if a configured checkpoint file has been moved or renamed, it errors loudly with a message naming the file - the good kind of failure.
Where it fits
Standalone, it's a slightly nicer checkpoint switcher - the tag feature is genuinely handy if you compare models. Where it shines is with Scorpiov Batch Prompt Runner: that node requires exactly one Multi-Checkpoint Loader in the graph and steps checkpoint_index through every slot while iterating wildcard lines. "Every checkpoint × every hairstyle, each in its own folder" is the workflow this pair was built for.
One honest limitation: it's in the Scorpiov/Loaders category and expects you to keep it in the Scorpiov ecosystem for the automation to work. The model_tag output is a plain STRING, so you can use it with any naming node, but the batch integration is the reason to reach for this over a generic switch.
Installing
Part of scorpiov-nodes, so you get it along with the whole pack. Either ComfyUI Manager (search "scorpiov-nodes") or:
cd ComfyUI/custom_nodes
git clone https://github.com/vikramudyawar/scorpiov-nodes
Restart ComfyUI after. No extra Python dependencies - it loads checkpoints with ComfyUI's own load_checkpoint_guess_config, so whatever your normal CheckpointLoader handles, this does too. If you've ever run the same wildcard file against three checkpoints by hand, this node plus the Batch Runner is the automation you were doing manually.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| checkpoint_index | INT | 00–4096 | — |
| scorpiov_checkpoint_config | STRING | [] | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| model_tag | STRING | — |