Nodes/antrobots ComfyUI Nodepack/KSampler (Advanced) with Denoise
ComfyUI Node

KSampler (Advanced) with Denoise

KSampler (Advanced) with Denoise

By antrobot1234·Created 3 years ago·Updated about a year ago· 28
KSampler (Advanced) with Denoise
  • model
  • positive
  • negative
  • latent_image
  • LATENT
add_noisetrue
noise_seed0
steps20
cfg8.0
sampler_name
scheduler
start_at_step0
end_at_step10000
return_with_leftover_noisefalse
denoise1.00

If you've ever wanted the step-level control of KSampler (Advanced) and the humble denoise slider from the plain KSampler in the same node, this is that node. Stock ComfyUI makes you pick one or the other: the basic KSampler gives you denoise but hides start_at_step/end_at_step, and the Advanced version flips it. antrobot's sample node just gives you both at once.

Why you'd reach for it

The real payoff is model-swapping mid-generation. Say you want to run the first chunk of steps on one checkpoint and finish on another - a base-then-refiner pattern, or swapping to a LoRA-stacked model partway through. To do that cleanly you drive one sampler from start_at_step to some cutoff with leftover noise, then hand the latent to a second sampler that picks up from there. Having denoise alongside those step controls means you can also do this in an img2img context without doing the arithmetic in your head - you set how much of the source you're keeping and let the node translate that into the step range. The README's own framing is that it makes swapping models in img2img workflows "much more efficient," and denoise here works in tandem with the start/end step values rather than fighting them.

How it works

Under the hood it's ComfyUI's sampler with the Advanced signature exposed. add_noise decides whether fresh noise gets injected at the start (turn it off for a second pass that continues an existing latent), and return_with_leftover_noise decides whether the output latent is fully denoised or handed off "dirty" for another sampler to finish. denoise scales the effective noise/step window, which is what lets you say "only rework 40% of this image" without manually computing step counts.

The inputs that matter

Most of these you already know from any KSampler. The few a beginner actually touches here:

  • denoise - the headline feature. 1.0 is a full generation; lower values (0.3–0.6) keep more of the incoming latent_image for img2img and hi-res passes.
  • start_at_step / end_at_step - the step window. Pair these across two samplers to split a generation between models.
  • add_noise and return_with_leftover_noise - the two booleans that make hand-offs work. Second sampler in a chain: add_noise off, first sampler: return_with_leftover_noise on.

Everything else is standard: model, positive, negative, latent_image, steps, cfg, noise_seed, plus the full sampler_name (44 choices) and scheduler (9 choices) dropdowns. The single output is a LATENT, which you wire into the next sampler or a VAE Decode.

Installing it

Through ComfyUI Manager, search for antrobots ComfyUI Nodepack and install. Or clone it directly:

cd ComfyUI/custom_nodes
git clone https://github.com/antrobot1234/antrobots-comfyUI-nodepack

Restart ComfyUI afterward. There are no model downloads and no unusual dependencies - it's built on ComfyUI's own sampling code, so if your KSampler works, this works.

Common issues

The one that trips people is the hand-off booleans. If your two-sampler split comes out muddy or noisy, check that the first sampler has return_with_leftover_noise on and the second has add_noise off - otherwise you're either fully denoising too early or re-noising a latent that was already partway there. Also watch that end_at_step on the first sampler equals start_at_step on the second; a gap or overlap shows up as banding or over-smoothing.

This is a small, single-author pack with almost no community footprint, so if you hit a genuine bug, the author actively asks for GitHub issues - that's the fastest path to a fix, not Reddit.

Categoryantrobots-ComfyUI-nodepack/sampling

Inputs (14)

NameTypeDefaultDescription
modelMODEL
add_noiseBOOLEANtrue
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_noiseBOOLEANfalse
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
LATENTLATENT