Nodes/MD Nodes/MD: Sigma Concatenate
ComfyUI Node

MD: Sigma Concatenate

Stitch two noise schedules into one with MD Sigma Concatenate

By MDMAchine·Created about a year ago·Updated 3 months ago· 15
MD: Sigma Concatenate
  • sigmas_a
  • sigmas_b
  • sigmas
  • total_steps
blend_mode
crossfade_steps5
normalize_rangefalse

A sigma schedule decides how much noise gets removed at each step of sampling - it's the difference between a Karras run and a linear run, and it shapes where the model spends its effort. Normally you pick exactly one schedule. Sigma Concatenate is for when one schedule isn't enough: it joins two SIGMAS inputs into a single, contiguous schedule, so the first phase of your run can follow profile A and the second phase can follow profile B.

How it works

You feed in sigmas_a and sigmas_b (standard ComfyUI SIGMAS - this node is compatible with stock schedulers, unlike the pack's SCHEDULER-object nodes), pick a blend_mode, and get one schedule out.

  • concatenate - a simple join. Phase A's schedule, then phase B's, no transition.
  • crossfade - a smooth blend between the two over crossfade_steps (default 5), so the handoff isn't a visible seam.
  • append_from_overlap - joins at the point where the two schedules' values match, which is useful when B is a continuation of A rather than a different shape.

normalize_range scales B so its start matches A's end value - that's the option that keeps the joined curve continuous when the two schedules disagree, which they usually do. Outputs are the combined sigmas and total_steps (the length of the result), handy if you want to display or gate on how many steps your franken-schedule ended up with.

Where you'd actually use it

Two-phase sampling. A common pattern is a broad-structure first pass on a schedule that spreads denoising evenly, followed by a detail-focused tail - or appending a refinement/denoise section to a base generation. It's the sigma-level equivalent of a two-pass hires workflow, just done in one continuous schedule instead of two separate sampler invocations. It's also useful for testing: build a schedule where the first half is Karras and the second half is something experimental, and you can A/B the halves without re-running the whole graph.

The honest take

This is a power-user utility, not a daily driver. Most people will never touch it, and if you're new to sigma schedules, the concepts doc summary applies: for SD 1.5/SDXL, Karras concentrates denoising in the middle steps, and that's usually all the shape you need. Come back to this node when you're chasing a specific artifact - a seam, a texture change - and you suspect the schedule's phase split is the culprit. It's small, it's predictable, and it's one of the few nodes in this pack that speaks plain SIGMAS, so it plays nicely with vanilla workflows.

Installing it

cd path/to/ComfyUI/custom_nodes
git clone https://github.com/MDMAchine/ComfyUI_MD_Nodes.git
cd ComfyUI_MD_Nodes
pip install -r requirements.txt

Or search MD_Nodes in ComfyUI Manager and restart. It ships in the schedulers module alongside the Hybrid Sigma Scheduler, and it's dependency-light for this pack - the heavy audio requirements install anyway, but this node itself just juggles sigma tensors.

CategoryMD_Nodes/Schedulers/Utilities

Inputs (5)

NameTypeDefaultDescription
sigmas_aSIGMASSCHEDULE A (First)
sigmas_bSIGMASSCHEDULE B (Second)
blend_modeCOMBOBLEND MODE • Concatenate: Simple join. • Crossfade: Smooth transition. • Overlap: Joins where values match.
crossfade_stepsoptINT5FADE STEPS • For crossfade mode.
normalize_rangeoptBOOLEANfalseNORMALIZE • Scale B to match A's end value.

Outputs (2)

NameTypeDescription
sigmasSIGMAS
total_stepsINT