ComfyUI Node

Split Sigmas with Rewind

Split a sampling run and rewind the noise correctly

By chrisgoringe·Created 2 years ago·Updated 2 years ago· 20
Split Sigmas with Rewind
  • sigmas
  • high_sigmas
  • low_sigmas
  • renoise
endstep0
startstep0

Here's a trick the advanced crowd uses: don't sample the whole denoising run in one pass. Do the first few high-noise steps, stop, then hand the latent to a second sampler with different settings - higher CFG for structure, different sampler for the details. Community posts call it "split rendering," and it works because both halves agree on where one ends and the other begins. Split Sigmas with Rewind is the small utility that makes that seam line up: it cuts a sigma schedule in two and computes how much noise you need to add back to jump cleanly from the end of the first segment to the start of the second.

How it works

Feed it a SIGMAS schedule (the output of a BasicScheduler or similar) and it splits it:

  • high_sigmas = the schedule up to and including endstep
  • low_sigmas = the schedule from startstep onward
  • renoise = (low_sigmas[0] - high_sigmas[-1]) / sigmas[0]

That last one is the clever bit. The first segment stops at the sigma at endstep; the second starts at the sigma at startstep. The gap between those two, expressed as a fraction of your starting noise, is exactly the renoise amount - the noise you inject into the latent to "wind back" from where segment one left off to where segment two wants to begin. That float is the thing nobody wants to calculate by hand, because getting it wrong is the difference between a seamless continuation and a muddy smear.

The inputs and outputs

  • sigmas - the noise schedule to cut.
  • startstep / endstep - where the two cuts land. Both default to 0, so if you don't change them you get a degenerate split; the point is to set endstep (and startstep) to real step indices in your run.

Outputs: high_sigmas, low_sigmas (both SIGMAS), and renoise (a FLOAT). The two sigma lists feed the two samplers; the renoise value feeds whatever you use to add noise back to the latent before the second pass.

Where you'd actually use it

This is the pack's least-known node - it's not even in the README - and it shows. It's a helper for people writing their own partial-sampling graphs: run the high-noise segment at one CFG, re-noise the latent by the renoise amount, then run low_sigmas with different settings. If you don't already know you need a rewind value, you almost certainly don't need this node yet. It exists to make a fiddly advanced technique less fiddly, and for that one job it's honest and correct.

Installing

Same trivial install as the rest of the pack - no models, no extra Python packages, just torch and ComfyUI's built-in comfy_extras. ComfyUI Manager: search "cg-noisetools". Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/chrisgoringe/cg-noisetools

restart, done. From chrisgoringe, and clearly one of the more experimental corners of an experimental pack. Treat it as a precision tool: niche, sharp, and only worth reaching for when you're already doing two-pass sampling and want the seam done right.

Categorynoise

Inputs (3)

NameTypeDefaultDescription
sigmasSIGMAS
endstepINT00–10000
startstepINT00–10000

Outputs (3)

NameTypeDescription
high_sigmasSIGMAS
low_sigmasSIGMAS
renoiseFLOAT