Nodes/c4f-wire-loom/Loom Clip In
ComfyUI Node

Loom Clip In

Keep the text encoder with the model it belongs to

By Codes4Fun·Created 3 months ago·Updated about a month ago· 0
Loom Clip In
  • loom
  • clip
  • LOOM
label

The CLIP wire is the quiet companion to the MODEL wire - you almost never think about it until you swap checkpoints and your conditioning breaks because the clip and model drifted apart. Loom Clip In bundles a CLIP into a LOOM stream so the text encoder travels with the model it belongs to.

Why you'd reach for it

In a model-selection workflow - the kind the c4f-wire-loom README's LongCat demo builds - the checkpoint and its clip are loaded together and should stay together. Put both into the same loom under their own keys (MODEL and CLIP), and when a sampler subgraph pulls out the model, it pulls out the matching clip too. Swap the selected model and the whole pair swaps as one unit instead of you hunting down a dangling clip wire.

That's the real payoff: group the model, clip, and VAE in one "model" loom, and the sampler subgraph that consumes them has a single tidy input. The clip becomes an implementation detail of the model selection, exactly where it belongs.

How it works

Same typed dict insert as every loom node:

key = f"CLIP_{label}" if label else "CLIP"
new_loom[key] = clip
return (new_loom,)

Empty label → CLIP; a label like editCLIP_edit. The matching Loom Clip Out must use the same label. When you drag a CLIP slot onto a collapsed Loom Split hub, the frontend auto-creates the node and sets the label.

The inputs that matter

  • clip (CLIP): the text encoder from a checkpoint loader, or from a dedicated CLIP loader.
  • label (string): the key. Empty for the standard clip, named if your graph genuinely uses more than one.
  • loom (LOOM, optional): the bundle to extend.

Output is a single LOOM. Feed it through Loom Split or Loom Join, and pull the clip back out with Loom Clip Out right where you encode your prompt.

Installing

Part of c4f-wire-loom. ComfyUI Manager → search "c4f-wire-loom" → install → restart, or clone it:

cd ComfyUI/custom_nodes
git clone https://github.com/Codes4Fun/c4f-wire-loom

No model downloads, no requirements file - it's pure Python plus a small JS frontend.

Where it bites

The stream semantics are the trap: clip only reaches subgraphs downstream of the Loom In. And if you're only using one clip, leave the label empty so it stays under the predictable CLIP key - naming it inconsistently is how you end up with Loom Clip Out returning exists = False and wondering why your conditioning silently didn't happen. As with every node in the pack, the Nodes 2.0 frontend has the arrow-drag collapse quirk; the pack ships a workaround for it.

Categoryutils/route

Inputs (3)

NameTypeDefaultDescription
loomoptLOOM
clipoptCLIP
labeloptSTRING

Outputs (1)

NameTypeDescription
LOOMLOOM