Nodes/ComfyUI-IcyHider/Icy KSamplerAdvanced
ComfyUI Node

Icy KSamplerAdvanced

KSampler with a scalpel

By icekiub-ai·Created 9 months ago·Updated 9 months ago· 31
Icy KSamplerAdvanced
  • model
  • positive
  • negative
  • latent_image
  • LATENT
add_noise
noise_seed0
steps20
cfg8.0
sampler_name
scheduler
start_at_step0
end_at_step10000
return_with_leftover_noise

Same pack disclaimer, stated once: IcyKSamplerAdvanced is the ComfyUI-IcyHider wrapper of core KSamplerAdvanced - identical node, renamed class so the hiding extension can cover it. Install the pack or use the core node; the behavior doesn't differ.

What does differ is how this node relates to the plain KSampler. KSampler runs a whole denoising pass from "the beginning" to "the end" with a single denoise dial. KSamplerAdvanced replaces that one dial with two explicit step boundaries - start_at_step and end_at_step - plus two switches for what happens before and after the pass. That makes it the tool for multi-pass workflows where one sampler isn't enough: hires fix, inpaint refinement, and any "pass A then pass B" pipeline.

The extra inputs, decoded

Everything from KSampler is here (model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image), plus three things you only find in the advanced version:

  • start_at_step / end_at_step (INT, 0–10000) - which slice of the total schedule this pass covers. The plain sampler's denoise: 0.5 is roughly the same idea expressed as a fraction; here you write it as absolute step numbers. For a hires-fix second pass you typically set start_at_step to something like 10 and end_at_step to 20 (of 20) - i.e., "finish the back half of a fresh schedule." The KB's upscaling material describes exactly this two-pass structure.
  • add_noise (enum, enable / disable) - whether this pass starts from fresh noise. Enable for the first pass of a sequence; disable for later passes so they build on the existing latent instead of nuking it.
  • return_with_leftover_noise (enum, disable / enable) - whether to hand the next node a half-finished latent. enable when you're chaining passes and the next sampler is going to keep going; disable (default) when you want a "done" latent that's ready for VAE decode.

The mental model

Think of a sampler pass as covering a slice of the noise schedule, [start_at_step, end_at_step) out of steps. Advanced gives you full control over the slice, whether fresh noise enters at the start, and whether the slice ends clean or "still noisy" for the next node to finish. That's everything a hires-fix or a multi-pass inpaint needs, and it's why this node, not the plain one, shows up in sophisticated graphs.

When to reach for it

  • Hires fix done properly - first pass at low res, second pass at high res on the back half of the schedule (the KB's "two-pass sampling" from the ecosystem doc).
  • Chained refinement passes where each stage covers a different slice.
  • Reproducing shared workflows - a lot of advanced graphs use this node specifically.

If you're on a simple txt2img setup, the plain KSampler is friendlier. This one earns its complexity only when you're staging multiple passes.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider

Restart, or use ComfyUI Manager (search "IcyHider"). No pip dependencies, no models.

Common issues

  • Missing node in shared workflows - install the pack or swap in core KSamplerAdvanced.
  • Second pass looks like it ignored your settings. Most likely add_noise left on enable - the second pass is starting from fresh noise instead of continuing your latent.
  • Bands or artifacts mid-image. Your start_at_step/end_at_step slice overlaps or skips part of the schedule awkwardly. Count your steps: the boundaries are absolute, not percentages.
CategoryIcyHider Comfy Core

Inputs (13)

NameTypeDefaultDescription
modelMODEL
add_noiseCOMBO2 options: enable, disable
noise_seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT8.00–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
positiveCONDITIONING
negativeCONDITIONING
latent_imageLATENT
start_at_stepINT00–10000
end_at_stepINT100000–10000
return_with_leftover_noiseCOMBO2 options: disable, enable

Outputs (1)

NameTypeDescription
LATENTLATENT