CLIPIter
Compare two CLIP text encoders on the exact same prompt
- clip1
- clip2
- CLIP
The text encoder is half the reason a checkpoint interprets a prompt the way it does, but most people never test it in isolation. CLIPIter lets you - give it clip1 and clip2, and it wires both CLIPs into one object that encodes your prompt through each of them, so a downstream KSamplerXYZ can generate with identical settings while only the CLIP differs.
Inputs: clip1, clip2, both CLIP. Output: clip1 - again the "returns the first thing, but now it's special" pattern this pack uses for all three iter nodes. The mechanism is where it gets interesting: iterize_clip monkey-patches clip1.encode so that any text-encode call runs the prompt through the full list of CLIPs and bundles the results into a single tensor that carries all of them (the code literally subclasses torch.Tensor to attach the extra encodings). Then KSamplerXYZ's conditioning handler picks the right encoding for whichever model index it's currently sampling.
So the honest workflow is: two CLIPLoader/checkpoint-CLIP outputs → CLIPIter → a CLIPTextEncode → KSamplerXYZ → decode + grid. The README's workflow_xyz_model_clip.json example pairs this with ModelIter, letting you test model and CLIP combinations in the same grid run.
A couple of realistic caveats. This is advanced plumbing - the patched encode and bundled tensors are fragile by nature, so keep the graph simple around it (one text encode downstream, no fancy conditioning stitching). And testing CLIPs in isolation is a niche thing most users will never need: if you're comparing full checkpoints, ModelIter alone does the job, because each checkpoint carries its own CLIP. CLIPIter earns its keep when you're mixing a CLIP from one source with a model from another and want to see which pairing wins.
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 model downloads, no extra dependencies.
If the graph behaves oddly (e.g., conditioning shapes that don't line up), check that every conditioning path runs through the iterated CLIP object - a stray TextEncode fed from the original CLIP will quietly use only the first encoder and the comparison falls apart. And as always with this pack, install the CYBERLOOM-INC fork, since the original hnmr293 repo stopped receiving fixes and broke on modern ComfyUI.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| clip1 | CLIP | — | |
| clip2 | CLIP | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | — |