Nodes/Immac's Tools/Concatenate Sigmas Node
ComfyUI Node

Concatenate Sigmas Node

Chain two sampling schedules without double-stepping

By Immac·Created 11 months ago·Updated 6 months ago· 0
Concatenate Sigmas Node
  • sigmas_1
  • sigmas_2
  • SIGMAS

In a normal ComfyUI workflow you never see a sigma schedule. The KSampler picks a scheduler, computes a list of noise levels, and burns through it - all internal. The escape hatch is SamplerCustomAdvanced, which takes a SIGMAS input so you can hand the sampler a schedule of your own. Concatenate Sigmas is the tool for when you have two of those and you want them to act like one.

The classic use is a two-stage sampling run where each stage has its own schedule: a first pass that denoises from full noise down to a midpoint, then a second schedule that continues from there to the finish. Both schedules are SIGMAS tensors - each one a 1D list of noise levels, descending from the starting sigma down toward 0. Feed schedule one into sigmas_1, schedule two into sigmas_2, and this node glues them into a single schedule you wire into the sampler.

Here's the part that makes it worth using instead of doing this by hand: it checks whether the last sigma of the first schedule matches the first sigma of the second (using a small relative tolerance), and if they do, it drops the duplicate. Without that, you'd denoise the boundary step twice - one wasted step and, more visibly, a slight hitch in the middle of sampling. The concatenated result has exactly one sample at the splice point.

Inputs and outputs are minimal: sigmas_1 and sigmas_2 (both SIGMAS) in, one SIGMAS out. It's forgiving about what you feed it - None inputs pass through, and plain lists or scalars get converted to tensors automatically. Handy when one branch of your graph is optional.

The one real trap is device and dtype mismatch. If sigmas_1 lives on the GPU and sigmas_2 came from a CPU-side node, torch.cat will throw. The node doesn't force a common device - that's on you. Coerce both schedules to the same device and float dtype before you connect them, or expect a runtime error that reads like a torch internals message.

Installing it

Ships in ComfyUI-ImmacTools by Immac - MIT-licensed, personal-use, and dependency-free beyond what ComfyUI already bundles (numpy and torch are the only imports, both already present). No model files. Install with ComfyUI Manager by repo URL or:

cd ComfyUI/custom_nodes
git clone https://github.com/Immac/ComfyUI-ImmacTools

Restart ComfyUI. It's filed under Example, so search the node list for "Concatenate Sigmas" or "Immac". The pack uses the newer ComfyExtension API, so keep ComfyUI updated or the node won't register.

Common issues

The device/dtype error above is the one that actually bites. The other is conceptual: a concatenated schedule is only as sensible as the two halves. If both schedules start from full noise, you're sampling from the top twice, which wastes steps and can over-darken. Splicing schedules makes sense when the second half continues where the first left off - that's the exact case this node's dedupe logic is built for.

CategoryExample

Inputs (2)

NameTypeDefaultDescription
sigmas_1SIGMAS
sigmas_2SIGMAS

Outputs (1)

NameTypeDescription
SIGMASSIGMAS