ModelIter
Sample the same prompt against two checkpoints, side by side
- model1
- model2
- MODEL
ModelIter is the node that turns "which checkpoint is better for this prompt?" from a manual ritual into a single run. Give it model1 and model2 and it returns model1 - but that model now carries a hidden list of two models, and when it feeds into this pack's KSamplerXYZ, the sampler runs the same prompt against both of them and stacks the results into one batch.
It looks like a no-op, and it kind of is - that's the joke. Its execute just appends a reference to model2 onto model1's internal iterator list and hands model1 back. The real work happens downstream: KSamplerXYZ's sampling loop calls iterize_model, walks that list, and emits one generation per model. That's the model-sweep axis of the XYZ plot the README shows (workflow_xyz_model_clip.json), where two checkpoints get compared on identical seeds, steps, and CFG.
So the workflow is: ModelIter(model1, model2) → KSamplerXYZ (with the model input connected), and then VAEDecodeBatched + GridImage to lay the results out side by side. You can chain more than two - feed another model into the chain via more iter nodes - and the sampler handles the list.
The mechanism has one consequence worth understanding: the models are iterated at sampling time, so both need to stay loaded in VRAM-ish memory during the run. Two full checkpoints in one pass is fine on a normal GPU, but a long chain of heavy models will make itself known. Keep the chain to what you actually want to compare.
Also note the pairing with CLIPIter and VAEIter in this pack: ModelIter handles the denoiser weights, CLIPIter the text encoder, VAEIter the decoder. If you're comparing two full checkpoints, ModelIter is the one you want; the others shine when you're testing just one component (like two VAEs on the same latents).
Install via ComfyUI Manager (search "ComfyUI-nodes-hnmr") or:
cd ComfyUI/custom_nodes
git clone https://github.com/CYBERLOOM-INC/ComfyUI-nodes-hnmr
Restart ComfyUI; no downloads, no dependencies beyond ComfyUI's own.
The gotcha is expectation-setting: the output is a batch of images, one per model, so a lone SaveImage will show them all stacked or only one depending on your save node - decode with VAEDecodeBatched and grid them. And since this is the maintained fork of hnmr293's pack, install the CYBERLOOM-INC repo; the original stopped getting fixes and broke on modern ComfyUI.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model1 | MODEL | — | |
| model2 | MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |