Nodes/Bjornulf_custom_nodes/♻ Loop (Model+Clip+Vae)
ComfyUI Node

♻ Loop (Model+Clip+Vae)

Run the same prompt through several checkpoints, preloaded

By justUmen·Created 2 years ago·Updated about a year ago· 545
♻ Loop (Model+Clip+Vae)
  • model_1
  • clip_1
  • vae_1
  • model_2
  • clip_2
  • vae_2
  • MODEL
  • CLIP
  • VAE
number_of_inputs2

Comparing checkpoints properly means holding everything else constant - same prompt, same seed, same steps - and only swapping the model. Doing that by hand means reloading a checkpoint, running, reloading the next, running again, and trying to keep track of which output came from which model. This node automates the swap: wire in several already-loaded checkpoint trios, and it loops your downstream graph once per trio.

How it works

You're not picking checkpoints by name from a dropdown here - that's a different node in the pack (Loop Load checkpoint / Model Selector). This one takes already-loaded MODEL/CLIP/VAE trios as inputs, meaning you wire in several standard checkpoint loaders upstream, one per slot, and this node just cycles through what you've already loaded. number_of_inputs (2 to 10) controls how many trio slots appear.

The tradeoff is the one the author calls out directly on the sibling node that shares this logic: because every checkpoint is preloaded before the loop starts, switching between them during the run is fast - there's no disk-load delay between iterations. The cost is memory: you're holding every checkpoint's model, clip, and VAE in memory simultaneously for the whole run, not one at a time. Stack five or six large checkpoints and you can burn through VRAM/RAM fast. If you'd rather trade loop speed for a lighter memory footprint, the Loop Load checkpoint node loads on demand from a picklist instead of preloading everything up front.

The inputs and outputs that matter

  • number_of_inputs (2–10, default 2) - how many checkpoint slots to expose.
  • model_N / clip_N / vae_N - one trio per slot, each fed by a standard checkpoint loader upstream.
  • Outputs MODEL, CLIP, VAE - all emitted as lists, so your KSampler and CLIP Text Encode downstream run once per checkpoint automatically.

How to install it

ComfyUI Manager → search Bjornulf_custom_nodes → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/justUmen/Bjornulf_custom_nodes
pip install -r Bjornulf_custom_nodes/requirements.txt

No special dependency of its own - it's a loop over ComfyUI's native model types. You do need the actual checkpoints already sitting in ComfyUI/models/checkpoints (or wherever your loaders point), which is a model-management concern separate from installing the node pack itself.

Common issues & troubleshooting

It runs out of memory partway through. This is the expected cost of preloading - every checkpoint you wire in stays resident for the whole loop. If you're comparing more than two or three large SDXL or Flux checkpoints, watch VRAM closely, or switch to the on-demand Loop Load checkpoint node if memory pressure is the bottleneck rather than speed.

Outputs don't tell me which checkpoint made which image. This node's outputs are just MODEL/CLIP/VAE - it doesn't hand you a filename or label alongside each iteration. If you need to know which checkpoint produced which result, pair it with a save-to-folder node keyed off iteration order, or look at the pack's Model Selector-family nodes, which do expose name/path strings alongside their outputs.

I only see one result instead of one per checkpoint. Confirm number_of_inputs actually matches how many trios you've wired in, and that every slot has all three of model, clip, and vae connected - a slot missing one of the three can break the loop rather than just skipping that slot.

Should I use this or the checkpoint-name-picking loop node instead? Use this one when you already have specific loaders wired up and want raw speed across a short list. Use the name-picking version when you'd rather select from a list of filenames and don't mind the on-demand load cost.

CategoryBjornulf

Inputs (7)

NameTypeDefaultDescription
number_of_inputsINT22–10
model_1MODEL
clip_1CLIP
vae_1VAE
model_2MODEL
clip_2CLIP
vae_2VAE

Outputs (3)

NameTypeDescription
MODELMODEL
CLIPCLIP
VAEVAE