KSampler (Advanced) with Denoise
KSampler (Advanced) with Denoise
- model
- positive
- negative
- latent_image
- LATENT
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_imagefor 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_noiseoff, first sampler:return_with_leftover_noiseon.
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.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| add_noise | BOOLEAN | true | — |
| noise_seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.00–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| start_at_step | INT | 00–10000 | — |
| end_at_step | INT | 100000–10000 | — |
| return_with_leftover_noise | BOOLEAN | false | — |
| denoise | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |