ComfyUI Node

GR Sigmas

Hand-build a three-zone denoising curve — composition, mid, detail

By GraftingRayman·Created 2 years ago·Updated about a month ago· 76
GR Sigmas
  • sigmas_input
  • sigmas
  • graph
presetcustom
overall_max1.000
overall_min0.010
auto_distributefalse
total_steps24
comp_thresh0.800
mid_thresh0.500
comp_steps6
comp_curveexp
comp_exponent2.0
mid_steps10
mid_curvelinear
mid_exponent1.0
detail_steps8
detail_curvelog
detail_exponent1.0
zone_transitionsharp
show_debugfalse
show_asciitrue
show_graphtrue

This pack has four sigma nodes and this is the deep end. Where GR Sigma Presets hands you a fixed curve and GR Sigma Preset Selector (plus its Advanced sibling) hands you a named, rescalable one, GR Sigmas has you build the noise schedule yourself - split explicitly into three zones (composition, mid, detail) with your own step allocation, curve shape, and aggression for each. It's the same "control how sampling effort is distributed across a generation" idea that a heavyweight pack like RES4LYF chases with dedicated solver math; this is GraftingRayman's own hand-rolled version, exposed as sliders instead of code. Twenty required inputs - this is not where you start with sigma tuning, it's where you end up once a preset's ballpark is right and you want to hand-tune the pacing yourself.

How it works

The mental model behind the three zones: early denoising steps set broad structure (composition), the middle steps settle mid-level form, and the last steps resolve fine detail and texture. overall_max / overall_min bound the whole curve. With auto_distribute off, comp_steps, mid_steps, and detail_steps are yours to set directly and should add up to however many steps you actually want to sample at - nothing here validates that sum against your sampler's own steps setting, so a mismatch will just run with a sigma list of the wrong length. comp_thresh and mid_thresh mark where one zone hands off to the next, and given their ranges (comp_thresh 0.5-0.95, mid_thresh 0.1-0.9) comp_thresh needs to sit above mid_thresh for the three zones to make sense.

Each zone gets its own shape - comp_curve, mid_curve, detail_curve, each one of linear, exp, log, cosine, poly - plus a matching exponent (comp_exponent, mid_exponent, detail_exponent) that controls how aggressively that zone accelerates or decelerates. zone_transition picks between a hard cut or a blended handoff between zones. show_debug, show_ascii, and show_graph are your sanity checks - turn them on before a real run so you can see what your knobs actually produced instead of finding out after the fact.

The optional sigmas_input lets you feed in an existing SIGMAS schedule - from a stock sampler, from one of this pack's other Sigma nodes, anywhere that emits the type - as a starting point. The schema doesn't spell out exactly how it's combined with your zone settings, so treat it as "give the node something to work from," not a guaranteed blend behavior.

The inputs and outputs that matter

  • preset (default custom) plus 16 named starting points - a jumping-off point, not the whole story once you start tuning zones.
  • comp_steps / mid_steps / detail_steps - your manual step allocation across the three zones, when auto_distribute is off.
  • comp_thresh / mid_thresh - where the zone boundaries fall.
  • show_graph - turn this on before trusting the result.

Two outputs: sigmas (SIGMAS, to your sampler) and graph (IMAGE, the rendered curve - this node displays it directly on the node body too, since it's flagged as an output node).

How to install it

ComfyUI Manager, search GraftingRayman. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/GraftingRayman/ComfyUI_GraftingRayman

Restart afterward. The whole pack fails to import without OpenAI's CLIP installed separately, even though this node never touches CLIP - portable ComfyUI: .\python_embeded\python.exe -m pip install git+https://github.com/openai/CLIP.git; system Python: pip install git+https://github.com/openai/CLIP.git.

Common issues & troubleshooting

Pack won't load. Check your startup console for the CLIP import error and run the pip install above.

Result looks structurally wrong or has an obviously wrong number of steps. Turn on show_ascii or show_debug and check that comp_steps + mid_steps + detail_steps actually add up to your intended total - this node won't catch a mismatch for you.

Zones don't seem distinct, or the transition looks abrupt. Check comp_thresh is genuinely above mid_thresh (their allowed ranges assume that ordering), and try zone_transition: smooth instead of sharp if a hard cut between zones is producing visible seams.

This feels like a lot of node for what you need. It probably is, for a first pass - start with GR Sigma Preset Selector, and only come here once you know specifically which zone's pacing you want to override.

CategoryGraftingRayman/Sigmas

Inputs (21)

NameTypeDefaultDescription
presetCOMBOcustom17 options: custom, balanced, composition_heavy, detail_heavy, aggressive, subtle, +11
overall_maxFLOAT1.0000.1–10
overall_minFLOAT0.0100.001–0.2
auto_distributeBOOLEANfalse
total_stepsINT241–100
comp_threshFLOAT0.8000.5–0.95
mid_threshFLOAT0.5000.1–0.9
comp_stepsINT61–100
comp_curveCOMBOexp5 options: linear, exp, log, cosine, poly
comp_exponentFLOAT2.00.1–5
mid_stepsINT101–100
mid_curveCOMBOlinear5 options: linear, exp, log, cosine, poly
mid_exponentFLOAT1.00.1–5
detail_stepsINT81–100
detail_curveCOMBOlog5 options: linear, exp, log, cosine, poly
detail_exponentFLOAT1.00.1–5
zone_transitionCOMBOsharp2 options: sharp, smooth
show_debugBOOLEANfalse
show_asciiBOOLEANtrue
show_graphBOOLEANtrue
sigmas_inputoptSIGMAS

Outputs (2)

NameTypeDescription
sigmasSIGMAS
graphIMAGE