GR Sigmas
Hand-build a three-zone denoising curve — composition, mid, detail
- sigmas_input
- sigmas
- graph
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(defaultcustom) 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, whenauto_distributeis 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.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | custom | 17 options: custom, balanced, composition_heavy, detail_heavy, aggressive, subtle, +11 |
| overall_max | FLOAT | 1.0000.1–10 | — |
| overall_min | FLOAT | 0.0100.001–0.2 | — |
| auto_distribute | BOOLEAN | false | — |
| total_steps | INT | 241–100 | — |
| comp_thresh | FLOAT | 0.8000.5–0.95 | — |
| mid_thresh | FLOAT | 0.5000.1–0.9 | — |
| comp_steps | INT | 61–100 | — |
| comp_curve | COMBO | exp | 5 options: linear, exp, log, cosine, poly |
| comp_exponent | FLOAT | 2.00.1–5 | — |
| mid_steps | INT | 101–100 | — |
| mid_curve | COMBO | linear | 5 options: linear, exp, log, cosine, poly |
| mid_exponent | FLOAT | 1.00.1–5 | — |
| detail_steps | INT | 81–100 | — |
| detail_curve | COMBO | log | 5 options: linear, exp, log, cosine, poly |
| detail_exponent | FLOAT | 1.00.1–5 | — |
| zone_transition | COMBO | sharp | 2 options: sharp, smooth |
| show_debug | BOOLEAN | false | — |
| show_ascii | BOOLEAN | true | — |
| show_graph | BOOLEAN | true | — |
| sigmas_inputopt | SIGMAS | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| graph | IMAGE | — |