KSampler (Advanced/pipe)
Step-controlled sampling off a BASIC_PIPE
- basic_pipe
- latent_image
- scheduler_func_opt
- BASIC_PIPE
- LATENT
- VAE
KSampler (Advanced/pipe) is the advanced KSampler wired for Impact Pack's pipe workflow. It takes its model, prompts, and VAE from a single basic_pipe bundle, and instead of a plain denoise slider it gives you the advanced controls: exact start and end steps, whether to add noise, and whether to keep leftover noise for the next stage. If you're building multi-pass pipelines and want to hand a latent from one sampler to another mid-denoise, this is the node for it.
The everyday KSampler thinks in terms of denoise strength; the advanced one thinks in terms of which steps run. That distinction is what makes staged sampling possible - a base model runs steps 0–N, then a refiner picks up at step N and finishes. Impact Pack's version keeps that power but feeds it from a BASIC_PIPE (built with ToBasicPipe), so it slots cleanly into a graph that's already routing model/clip/vae/prompts down one wire to detailers and upscalers.
The inputs that matter
Standard advanced-KSampler controls, pipe-fed:
- basic_pipe - the bundle carrying model, clip, vae, positive, negative. Replaces four separate inputs.
- latent_image - what you're sampling.
- add_noise (default true) - whether to inject fresh noise at the start. Turn it off when you're continuing another sampler's partially-denoised latent rather than starting clean.
- start_at_step / end_at_step - the step window this sampler covers. This is the whole reason to use the advanced node: base does 0→20, refiner does 20→30, and so on.
- return_with_leftover_noise (default false) - set true when a later sampler will finish the job, so this one hands off a latent that isn't fully denoised yet.
- steps, cfg, sampler_name, scheduler, noise_seed - the usual dials.
The three controls that actually make this "advanced" - add_noise, start_at_step/end_at_step, and return_with_leftover_noise - only earn their complexity when you're chaining samplers. For a single self-contained pass, the plain KSampler (pipe) is simpler and you should use that instead.
The outputs
Same helpful trio as the basic pipe sampler: BASIC_PIPE passed straight through (keep chaining without re-wiring), LATENT (the result, possibly with leftover noise if you asked for it), and VAE pulled out for a convenient decode. Handing you the VAE directly saves a FromBasicPipe every time you want to look at the image - a small thing that adds up across a big graph.
The classic use: base + refiner
The textbook reason to reach for the advanced sampler is the two-model handoff. First instance runs start_at_step 0, end_at_step partway, return_with_leftover_noise true - it does the early, structure-defining steps and passes an unfinished latent along. Second instance runs add_noise false (don't re-noise what's already going), start_at_step where the first left off, end_at_step to the end - it finishes with the refiner. Get the step numbers to line up across the two and it's seamless; get them wrong and you'll see it immediately.
That step alignment is the single thing to be careful about. A gap or an overlap between where one sampler ends and the next begins produces mush or double-processing. Match end_at_step on the first exactly to start_at_step on the second.
Common issues
Two. First, the pipe requirement: you need an actual BASIC_PIPE from ToBasicPipe - loose model/vae wires won't connect. Second, the noise handoff: forgetting add_noise false on the continuing sampler re-noises a latent that was already partway denoised, which wrecks the result. If a base+refiner chain looks scrambled, check add_noise and the step boundaries before anything else. Outside a chaining setup, honestly, don't use this - reach for KSampler (pipe) and save yourself the extra knobs.
Installing it
The node ships with ComfyUI Impact Pack. Install via ComfyUI-Manager (search ComfyUI Impact Pack, Install, restart), or manually: cd ComfyUI/custom_nodes && git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack, then install the pack's requirements.txt in ComfyUI's Python environment (portable build: ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt), and restart. Auto-install was removed in v7.6, so a manual clone needs the requirements step or the pack won't load. Impact Pack is ltdrdata's - the same maintainer as ComfyUI-Manager - so it's well-supported, and this sampler pulls in no models or heavy libraries of its own.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| basic_pipe | BASIC_PIPE | basic_pipe input for sampling | |
| add_noise | BOOLEAN | true | Whether to add noise |
| noise_seed | INT | 00–18446744073709550000 | Random seed to use for generating CPU noise for sampling. |
| steps | INT | 201–10000 | total sampling steps |
| cfg | FLOAT | 8.000–100 | classifier free guidance value |
| sampler_name | COMBO | sampler | |
| scheduler | COMBO | noise schedule | |
| latent_image | LATENT | input latent image | |
| start_at_step | INT | 00–10000 | The starting step of the sampling to be applied at this node within the range of 'steps'. |
| end_at_step | INT | 100000–10000 | The step at which sampling applied at this node will stop within the range of steps (if greater than steps, sampling will continue only up to steps). |
| return_with_leftover_noise | BOOLEAN | false | Whether to return the latent with noise remaining if the noise has not been completely removed according to the noise schedule, or to completely remove the noise before returning it. |
| scheduler_func_optopt | SCHEDULER_FUNC | [OPTIONAL] Noise schedule generation function. If this is set, the scheduler widget will be ignored. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| BASIC_PIPE | BASIC_PIPE | passthrough input basic_pipe |
| LATENT | LATENT | result latent |
| VAE | VAE | VAE in basic_pipe |