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

Loom Noise In

Stop guessing which seed a branch used

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

Seed and noise management is where ComfyUI workflows quietly fall apart: you generate a great image, tweak one branch, and everything downstream changes because the noise got re-rolled. Loom Noise In bundles a NOISE value into a LOOM stream so the noise your sampler actually used travels with the workflow instead of being a mystery.

Why you'd reach for it

The newer sampler stacks in ComfyUI pass explicit NOISE objects around - a RandomNoise node generates it, and samplers consume it. That's a real wire type, and it deserves the same routing treatment as everything else. Push the noise into the loom at the start of a multi-stage pipeline, and every downstream stage can pull the same noise back out. That's what keeps an edit from re-rolling your composition: the refined stages continue from the original noise, not a fresh one.

It's also the clean way to share one noise source across several sampler branches running side by side (main pass, refinement, upscale), so all of them agree on the starting point. Without it you're either duplicating the RandomNoise node per branch or hoping the seeds line up.

How it works

The standard typed loom insert:

key = f"NOISE_{label}" if label else "NOISE"
new_loom[key] = noise
return (new_loom,)

Empty label → NOISE; a label like refinerNOISE_refiner. The matching Loom Noise Out uses the same label. Drag a noise slot onto a collapsed Loom Split hub and the frontend auto-creates the node with the label set.

The inputs that matter

  • noise (NOISE): from RandomNoise or a similar noise-generating node.
  • label (string): the key. Leave empty for the single working noise; label if different stages use different noise sources.
  • loom (LOOM, optional): the bundle to extend.

Output is a single LOOM, feeding Loom Split or Loom Join, with noise pulled back out via Loom Noise Out at each sampler.

Installing

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

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

No extra deps, no downloads.

Where it bites

Two things to keep straight. First, the loom only carries what's put into it - if you never connect a noise source to Loom Noise In, your sampler subgraphs get exists = False and fall back to whatever they'd normally do, which usually means a fresh noise. Second, noise objects are tied to specific tensor shapes in some implementations; if a branch resizes the latent before sampling, feeding it the original noise can error. When that happens, the fix is a per-branch noise label rather than a shared one. The pack-wide Nodes 2.0 arrow-drag collapse quirk applies, with the built-in workaround.

Categoryutils/route

Inputs (3)

NameTypeDefaultDescription
loomoptLOOM
noiseoptNOISE
labeloptSTRING

Outputs (1)

NameTypeDescription
LOOMLOOM