Nodes/Nukun_ComfyUI_Nodes/Universal Noise Sampler Advanced (Nukun)
ComfyUI Node

Universal Noise Sampler Advanced (Nukun)

Multi-stage denoising with colored noise, without the handoff headaches

By OnekoSL·Created 3 months ago·Updated 11 days ago· 1
Universal Noise Sampler Advanced (Nukun)
  • guider
  • sampler
  • sigmas
  • latent_image
  • output
  • denoised_output
  • seed
add_noisetrue
noise_seed0
noise_deviceauto
noise_profilegaussian
noise_strength1.00
detail_bias0.35
start_at_step0
end_at_step10000
return_with_leftover_noisedisable
preview_methoddefault

The base Universal Noise Sampler is great until you need to split a denoise into passes - the classic hires-fix or multi-stage handoff problem. Then you reach for KSampler Advanced semantics: start at step 5, stop at 18, hand the latent to the next pass. Universal Noise Sampler Advanced (Nukun) is the same colored-noise sampler with those step-range controls bolted on, so you can run ranged passes without leaving the 29-profile noise menu behind.

How it works

It takes the exact same inputs as the non-advanced version - guider, sampler, sigmas, latent_image, plus add_noise, noise_seed, noise_device, noise_profile, noise_strength, detail_bias - and adds three KSampler Advanced-style knobs. Reading the source, it slices the incoming SIGMAS directly: start_at_step is inclusive, end_at_step = 10000 means "run to the end", and return_with_leftover_noise = enable keeps the nonzero final sigma when you stop early. That last bit is the whole game - a mid-trajectory handoff only works if the next pass inherits the right amount of remaining noise.

The inputs you'll actually set

The three new ones do all the work:

  • start_at_step - first sigma step to sample (inclusive).
  • end_at_step - the boundary; 10000 = continue to the end.
  • return_with_leftover_noise - disable forces full denoise when ending early; enable preserves leftover noise for a later pass.

For a clean continuity handoff that stays close to a single full pass, the README's recipe is: pass 1 runs 0..N with leftover noise enabled, pass 2 runs N..M with add_noise = false, pass 3 runs M..10000 with add_noise = false and leftover noise disabled. Two traps bite people here. First, don't set the next pass to previous end_at_step + 1 - that skips the shared handoff sigma and changes the trajectory. Second, history-sensitive multistep samplers like deis_2m restart their internal history at each ranged pass, so a split pass isn't bit-identical to a single pass; a small warmup overlap (0..20, 18..30, 28..10000) gets you closer if that matters.

What it's for

Honestly: partial denoise passes, multi-stage workflows, and any experiment that would normally force you to use KSampler (Advanced) and give up on custom noise. Reinjecting noise on a later pass is still useful as a creative texture shift - just don't pretend it's an equivalence test against a single full pass, because it isn't.

Outputs match the family: output (decode this), denoised_output, and seed.

Installing it

Part of Nukun_ComfyUI_Nodes. ComfyUI Manager (search "Nukun"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/OnekoSL/Nukun_ComfyUI_Nodes

Restart ComfyUI. Only numpy, Pillow, scipy, and PyWavelets are required. If your split-pass result drifts from the single-pass reference, that's usually the sampler's step history restarting, not a bug - try the warmup overlap before filing it under "broken."

CategoryNukun/Sampling

Inputs (14)

NameTypeDefaultDescription
guiderGUIDER
samplerSAMPLER
sigmasSIGMAS
latent_imageLATENT
add_noiseBOOLEANtrueGenerate noise from the selected Nukun profile. Disable this to sample with zero noise.
noise_seedINT00–18446744073709550000Seed used for the selected noise profile.
noise_deviceCOMBOautoauto uses CPU for ComfyUI-core-like reproducibility. cuda falls back to CPU when unavailable.
noise_profileCOMBOgaussianBasic noise type or composite Nukun profile.
noise_strengthFLOAT1.000–5Final noise multiplier. For gaussian + auto, 1.0 keeps ComfyUI-core-like behavior.
detail_biasFLOAT0.350–1Only affects composite profiles. Lower values emphasize larger forms; higher values emphasize details.
start_at_stepINT00–10000First sigma step to sample, matching KSampler Advanced start_at_step semantics.
end_at_stepINT100000–10000Last sigma step boundary. 10000 means continue to the end of the incoming sigmas.
return_with_leftover_noiseCOMBOdisableDisable forces full denoise when ending early. Enable preserves leftover noise for a later pass.
preview_methodCOMBOdefaultPer-node latent preview override. default follows ComfyUI; latent2rgb is lightweight; none disables previews.

Outputs (3)

NameTypeDescription
outputLATENT
denoised_outputLATENT
seedINT