Selective Sigma Detailer (Debug)
The same node, with the hood open
- sampler
- sampler
- mask_ref
If you've already met the main Selective Sigma Detailer node, this is the same sampler wrapper with the internal constants pulled out as inputs and one extra output so you can actually see what the mask is doing. You don't need it for normal use - the defaults match the main node exactly, and the tooltip on the node says as much: change them only to experiment or diagnose unexpected behavior. Reach for it when a run comes out sharper than you intended, weaker than you intended, or when you just want to verify the mask is landing where you think it is.
What's exposed
On top of the usual sampler, strength, and coverage inputs, you get four constants the main node hardcodes:
- start (default 0.1) - fraction of the schedule to skip before detail kicks in. At least one step is always skipped.
- end (default 0.9) - where the tail taper hits zero. At least one step at the end is always clean.
- ema (default 0.9) - temporal smoothing of the mask. 0 = per-step, higher = stronger carryover across steps.
- mask_clip_percentile (default 0.2) - clips the top/bottom fraction of delta values before the min/max stretch, so a few extreme pixels can't collapse the rest of the mask.
And the diagnostic one that has no main-node equivalent: mask_override, an enum (off, ones, half, zeros) that forces the mask to a constant. The author's own framing is the clearest explanation: ones at coverage < 1 should match the coverage = 1 fast path, zeros should match the untouched baseline, and half isolates the pure x0-blending behavior. If you're trying to figure out whether a change came from the mask or from the blend, that's the switch to flip.
Outputs: the wrapped sampler, plus a mask_ref of the custom type SSD_MASK_REF - a one-slot channel that holds the last captured mask and feeds the Debug Preview node. It's cleared at the start of every sampler invocation, so a stale mask from a previous run won't leak into your preview.
Getting the mask out
The mask_ref output is only useful once sampling has actually run - the mask is built during denoising, not at node setup. That's why you pair this node with Selective Sigma Detailer (Debug Preview): wire mask_ref into the preview, pass the sampler into SamplerCustom, and the preview renders the mask once the run finishes. The same stats line the main node prints ([SSD] calls=16 detail=9 ... skip: schedule=6 ...) appears here too, which is often more useful than the constants for diagnosis - if most calls are skipping on schedule, your active window is misplaced; if they're skipping on range, you're fighting ancestral or solver-probe sigma calls.
Install
Same pack, one install covers all three nodes. ComfyUI Manager → search Selective Sigma Detailer, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Capacap/ComfyUI-Selective-Sigma-Detailer
Restart ComfyUI. No extra dependencies, no model files.
Honest advice: treat this node as a debugging instrument, not a daily driver. If you find yourself routinely changing start and end because your runs look off, the two-pass cost or the CFG++ attenuation is more likely the culprit than the schedule boundaries - the defaults are where they are for a reason.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| sampler | SAMPLER | — | |
| strength | FLOAT | 0.100-1–1 | — |
| coverage | FLOAT | 0.500–1 | — |
| start | FLOAT | 0.100–1 | Fraction of schedule to skip before applying detail. At least 1 step is always skipped. |
| end | FLOAT | 0.900–1 | Fraction of schedule at which the tail taper hits zero. At least 1 step at the end is always clean. |
| ema | FLOAT | 0.900–1 | Temporal mask smoothing. 0 = per-step, higher = stronger carryover across steps. |
| mask_clip_percentile | FLOAT | 0.2000–0.49 | Clip the top/bottom fraction of delta values before min/max stretch. |
| mask_override | COMBO | off | Force the mask to a constant for blend-path diagnostics. 'ones' at coverage<1 should match the coverage=1 fast path; 'zeros' should match baseline; 'half' isolates pure x0 blending. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sampler | SAMPLER | — |
| mask_ref | SSD_MASK_REF | — |