Nodes/c4f-wire-loom/Loom Sigmas Out
ComfyUI Node

Loom Sigmas Out

Carry your sampling schedule through the graph

By Codes4Fun·Created 3 months ago·Updated about a month ago· 0
Loom Sigmas Out
  • loom
  • LOOM
  • SIGMAS
  • exists
label

When people talk about a sampling "schedule," this is the wire that carries it. Loom Sigmas Out pulls a SIGMAS object out of a c4f-wire-loom bundle. In ComfyUI's advanced sampling, sigmas are the array of noise levels a sampler descends through step by step - generated by nodes like SplitSigmas or the scheduler side of the advanced sampler chain. It's the object that encodes how many steps you take and how aggressively each one denoises, which makes it exactly the kind of thing you want defined in one place and reused in several.

That's the classic loom pattern, and sigmas fit it beautifully: build the schedule once, stash it in the bundle, and every branch of a multi-pass workflow - base pass, refiner, upscale stage - reads the same SIGMAS instead of each branch re-deriving its own. The README's whole pitch for the pack is subgraphs that modify a stream and pass it along; this node is how a sampler subgraph asks the loom "what's the schedule?" and gets one consistent answer.

How it works

Identical mechanics to the other typed Out nodes: a labeled lookup into the loom dict, with the type prefix applied for you. Empty label reads SIGMAS; label = "refiner" reads SIGMAS_refiner.

  • loom (required) - the loom to pull from.
  • label (optional, default "") - blank for the default schedule, or name it if you're carrying a base schedule and a separate refiner schedule.
  • Outputs: LOOM (passthrough), SIGMAS (the schedule, or None if missing), exists (boolean).

exists matters more than it looks. If the loom doesn't hold SIGMAS, you get None and False back with no error - and the failure only detonates later when the sampler tries to walk a None schedule. Route exists into a default and you've turned a subtle break into a visible one.

The gotchas

The house rules of the pack apply. Don't write SIGMAS in the label - the prefix is added automatically, so that would look up SIGMAS_SIGMAS and miss. Use the same short label you gave the matching Loom Sigmas In. And the label is snapshotted when the wire is first attached; rename things after and the Out node won't catch up until you re-attach.

One thing to keep straight: SIGMAS is a specific ComfyUI object type, not a number. If you're used to thinking of steps as a single integer, that's the KSampler world; this is the advanced-sampling world where the schedule is a first-class object that flows around. The loom treats it like any other wire, which is the point - you stop wiring schedules all over the graph.

Install

The pack ships no requirements.txt, no model downloads, no API keys - it's a frontend extension over pure Python:

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

then restart ComfyUI, or install c4f-wire-loom via ComfyUI Manager.

Troubleshooting

  • None output - label mismatch (mind the automatic SIGMAS_ prefix) or no matching Loom Sigmas In feeding the loom. exists will tell you.
  • Two schedules, same name - that's what label is for. A second schedule without a distinct label just overwrites the first in the loom.
  • Nodes 2.0 drag quirk - the README warns that on Nodes 2.0, dragging a collapsed loom node by its arrow can also toggle collapse; the author's workaround is in the frontend code, so keep the pack updated.
Categoryutils/route

Inputs (2)

NameTypeDefaultDescription
loomLOOM
labeloptSTRING

Outputs (3)

NameTypeDescription
LOOMLOOM
SIGMASSIGMAS
existsBOOLEAN