Nodes/ComfyUI-UtilsCollection/Discard Penultimate Sigma
ComfyUI Node

Discard Penultimate Sigma

The one-node fix when your sampler needs its penultimate sigma gone

By silveroxides·Created 2 months ago·Updated about 7 hours ago· 24
Discard Penultimate Sigma
  • sigmas
  • Sigmas

This is the rare node whose entire behavior fits in its name and its source is four lines long: it takes a sigma schedule, removes the second-to-last entry, and keeps the terminal sigma. sigmas in, Sigmas out, nothing else. It's the kind of tiny surgical utility that exists because a real problem keeps showing up and nobody wants to rebuild the whole schedule to fix it.

When does that problem show up? Certain samplers - and the pack's own README is explicit about this - require penultimate-sigma removal, meaning the schedule should drop the second-to-last sigma so the last step lands correctly. The classic symptom is a final step that overcorrects or produces that faint artifact band on the last iteration. You'll also see this pattern discussed as "skip the penultimate sigma" in sampling-parameter threads, and it's a setting that some scheduler/sampler combos just expect. If you've ever had a sampler that misbehaves only on the final step, this is the node that lets you test the fix in ten seconds instead of rebuilding a custom schedule.

Where it goes in the graph: between your scheduler and your sampler, in a custom-sampling setup. Grab your scheduler output, run it through UC_DiscardPenultimateSigma, feed the result to the sampler. It's part of the pack's migrated scheduler family - the same set that includes UC_SigmaRescale, the Sigmoid Offset and Power Shift schedulers, and the sigma-curve builders. The README notes these schedulers don't include Core-style denoise or optional penultimate controls, so the pack splits those concerns into explicit nodes: UC_SigmaRescale for image-to-image noise levels, and this node for penultimate removal. One pair of facts worth knowing before you stack them: the Radiance Shift scheduler already does its compensated penultimate removal internally (don't double-remove), and the dedicated scheduler nodes pass their schedules through unchanged otherwise.

The implementation detail that keeps it safe: it removes sigmas[:-2] and keeps sigmas[-1:] - dropping the second-to-last value while preserving the terminal sigma. That's not the same as removing the last sigma, and the difference matters. The terminal sigma is the one that defines the final denoise step; killing it changes the whole character of the last iteration. This node deliberately leaves it alone, so the schedule's ending stays intact and only the step before it is dropped.

Also worth knowing: the pack replaces the standalone ComfyUI_SigmoidOffsetScheduler and ComfyUI_PowerShiftScheduler packs entirely, and registers the migrated scheduler names for Core's scheduler selector. If you've got the old standalone packs installed, ComfyUI will offer a workflow-replacement prompt - accept it and remove them, because running both means duplicate scheduler nodes and version confusion.

Install is pack-standard: Manager search "ComfyUI-UtilsCollection" or cd ComfyUI/custom_nodes && git clone https://github.com/silveroxides/ComfyUI-UtilsCollection, then restart. No models, no downloads - it's pure tensor surgery on a schedule. When the symptom is a weird final step, this is the cheapest experiment on the shelf.

Categorysampling/custom_sampling/schedulers

Inputs (1)

NameTypeDefaultDescription
sigmasSIGMAS

Outputs (1)

NameTypeDescription
SigmasSIGMAS