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

Loom Sampler Out

For when your sampler is an object, not a setting

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

If you're reaching for this node, you're past the default KSampler and into advanced sampling territory. Loom Sampler Out pulls a SAMPLER object out of a c4f-wire-loom bundle. The SAMPLER type is the one produced by nodes like SamplerCustomAdvanced - it's not a sampler name like "euler" or "dpmpp_2m", it's an actual sampler object you can pass around, reuse, and chain. When you're building a refiner pipeline or a custom sampling loop, you want that object available wherever the sampler subgraph needs it, and the loom is a clean way to ship it around without a hundred wires crossing the canvas.

This is squarely a "bundle the whole sampler subgraph and reuse it" node. The pack's README shows exactly that pattern: one prompt subgraph feeding multiple model/sampler subgraphs, with the sampling configuration carried inside a loom so each subgraph just reads what it needs. If your workflow has one sampler feeding several model branches - turbo pass, refiner, upscale stage - stashing the SAMPLER in the loom means you configure it once and every branch agrees on what sampling is.

How it works

It's the same dictionary lookup as every typed Loom Out, with the type prefix handled for you. Empty label looks up SAMPLER; label = "refiner" looks up SAMPLER_refiner.

  • loom (required) - the loom to read from.
  • label (optional, default "") - leave blank for the default sampler, name it if you're juggling more than one.
  • Outputs: LOOM (passthrough), SAMPLER (the object, or None if missing), exists (boolean).

The exists output is worth wiring somewhere when the sampler's optional - if the loom doesn't hold a SAMPLER yet, you get None and a False flag instead of a silent crash three nodes later.

The gotchas

Same family as the other typed Out nodes. Don't put the type name in the label - label = "SAMPLER" looks up SAMPLER_SAMPLER and returns None. Keep it short and matching what you put on the Loom Sampler In side. And the label doesn't live-update: rename the wire after attaching and the Out node keeps looking for the old key until you re-attach.

One thing to know about SAMPLER specifically: it's a niche type, so if the loom is empty or the wrong subgraph is feeding it, the None won't show up as a red error immediately - it'll surface when the downstream sampler node tries to use it. Check exists first.

Install

The pack has no requirements.txt, no model downloads, no API keys - it's a frontend extension plus 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 - mismatched label (remember the automatic SAMPLER_ prefix) or no Loom Sampler In feeding the loom. exists tells you which.
  • Two sampler objects colliding - give the second one a distinct label; otherwise the In node overwrites the first.
  • 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 patched the workaround in the frontend, so keep the pack current.
Categoryutils/route

Inputs (2)

NameTypeDefaultDescription
loomLOOM
labeloptSTRING

Outputs (3)

NameTypeDescription
LOOMLOOM
SAMPLERSAMPLER
existsBOOLEAN