Loom Image In
Stop dragging image wires across your whole graph
- loom
- image
- LOOM
Images are the most common wire type in ComfyUI, which is exactly why they're the ones you're always dragging across the canvas. Loom Image In bundles an image into a LOOM stream - the core mechanism of the c4f-wire-loom pack - so you can pass one loom wire around instead of a spaghetti of IMAGE connections.
What it's for
The README frames looms as the answer to organizing a graph into prompt, model, and sampler groups. An image is usually the thing being edited as it flows through those groups. You push a Load Image into the loom at the front, pull it out inside an img2img or edit subgraph, and if a subgraph modifies it, push the modified version back in - anything downstream sees the update. That "take out, modify, put back" loop is the whole loom concept, and images are the most natural fit for it.
It's also how you carry reference images without cross-wiring. Want a second image beside the main one? Give the node a label like image2 and it's stored under the key IMAGE_image2, kept separate from the bare IMAGE. The pack's LongCat demo uses exactly this pattern to build a model/prompt combo box that swaps images in and out of an edit stream.
How it works
It's a dict insert with type awareness:
key = f"IMAGE_{label}" if label else "IMAGE"
new_loom[key] = image
return (new_loom,)
No label means the key is just IMAGE; a label becomes IMAGE_<label>. That naming matters because the matching Loom Image Out node must use the same label to find it. The pack's frontend auto-fills the label when you drag an image slot onto a collapsed Loom Split hub, so usually you never type it.
The inputs that matter
- image (IMAGE): the image to store.
- label (string): the key. Leave empty for the single default image; give it a name for the second, third, or reference images.
- loom (LOOM, optional): the bundle to extend. Unconnected = start fresh.
Output is a single LOOM. Chain it into Loom Split (to fan out) or straight to a Loom Out/Loom Image Out inside a subgraph.
Installing
It's part of c4f-wire-loom. ComfyUI Manager → Install Custom Nodes → search "c4f-wire-loom", then restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Codes4Fun/c4f-wire-loom
No requirements.txt, no models to download - just a restart.
Where it bites
Two things get people. First, keys collide silently: push a second image in without a label and it overwrites the first - always label secondary images. Second, the loom is a stream: if you take the image out to modify it and don't feed the result back through a Loom Image In, downstream subgraphs still see the original. And like every loom node, the Nodes 2.0 frontend has the arrow-drag collapse quirk, though the pack's built-in workaround handles most cases.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| loomopt | LOOM | — | |
| imageopt | IMAGE | — | |
| labelopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LOOM | LOOM | — |