Loom Noise Out
Stash your noise and stop rebuilding it
- loom
- LOOM
- NOISE
- exists
This one exists for the advanced-sampling crowd, so don't feel bad if it's the first time you're meeting the NOISE type. Loom Noise Out pulls a NOISE object out of a c4f-wire-loom bundle. In ComfyUI, a NOISE is a pre-built latent-noise tensor you can generate once and reuse - it's what makes "same seed, same noise, every run" reproducible across otherwise different pipelines, and it's the thing people reach for when they want one shared noise input feeding multiple sampling stages.
If that sentence didn't ring a bell, you're probably not the audience yet. The NOISE type shows up in advanced sampling - think SDE-style samplers, latent noise manipulation, or setups where you want a refiner to start from exactly the noise the base pass used. If you are doing any of that, a loom is a tidy way to build the noise once, stash it in a bundle, and have every sampler subgraph read the same NOISE without you dragging the same wire across half the canvas.
How it works
Same pattern as every typed Loom Out: a labeled lookup into the loom dictionary, with the type prefix handled for you. Empty label reads NOISE; label = "upscale" reads NOISE_upscale.
loom(required) - the loom to pull from.label(optional, default"") - blank for the default noise, or name it when you're carrying several.- Outputs:
LOOM(passthrough),NOISE(the tensor, orNoneif absent),exists(boolean).
exists is your friend here, because a missing NOISE fails silently in a way that's annoying to hunt down: the node returns None and False rather than erroring, and the crash only surfaces later when a sampler actually tries to consume the noise. Wire exists into a fallback and you'll never spend an hour on it.
The gotchas
The usual loom family rules apply. Don't type NOISE into the label - the prefix is automatic, so label = "NOISE" looks up NOISE_NOISE and comes back empty. Keep labels short and identical to what the matching Loom Noise In used. And the label is captured at attach time; renaming the wire after the fact won't update the Out node until you re-attach.
Also worth knowing: NOISE is one of the less common loom types, and the pack's label auto-completion only kicks in for a handful of well-known slots. If you attached this node by hand rather than by dragging a slot onto the loom, double-check the label you typed - typos are the number-one source of None here.
Install
Nothing exotic to install - the pack is a frontend extension plus pure Python, no requirements, no model files, no API keys:
cd ComfyUI/custom_nodes
git clone https://github.com/Codes4Fun/c4f-wire-loom
then restart ComfyUI. Or install c4f-wire-loom from ComfyUI Manager.
Troubleshooting
Noneoutput - label mismatch (mind the autoNOISE_prefix) or no matching Loom Noise In on the loom.existstells you which.- Noise changing between runs - if the
NOISEobject isn't actually in the loom and your samplers are generating their own, you never wired the In side. The loom only shares what's put into it. - Nodes 2.0 drag quirk - the README notes that on Nodes 2.0, dragging a collapsed loom node by its arrow can also toggle collapse; the author's workaround ships in the frontend code, so stay updated.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| loom | LOOM | — | |
| labelopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| LOOM | LOOM | — |
| NOISE | NOISE | — |
| exists | BOOLEAN | — |