Nodes/ComfyUI Impact Pack/KSampler (pipe)
ComfyUI Node Runs on cloud

KSampler (pipe)

A KSampler that runs off a single BASIC_PIPE

By ltdrdata·Created 3 years ago·Updated 4 months ago· 3,242
KSampler (pipe)
  • basic_pipe
  • latent_image
  • scheduler_func_opt
  • BASIC_PIPE
  • LATENT
  • VAE
seed0
steps20
cfg8.00
sampler_name
scheduler
denoise1.00

KSampler (pipe) is a normal KSampler that takes its model, prompts, and VAE from a single basic_pipe bundle instead of five separate wires. Everything else is the sampling you already know - seed, steps, cfg, sampler, scheduler, denoise - but the four connections that usually clutter a KSampler (model, positive, negative, and the latent) collapse into one tidy pipe input plus the latent. If your graph uses Impact Pack's pipe convention, this is the sampler that fits it.

The reason it exists is pure ergonomics, and in a big workflow that's not nothing. Impact Pack bundles model/clip/vae/positive/negative into a BASIC_PIPE (you build one with ToBasicPipe) so you can route a whole generation context down a single wire. Once you've done that, you don't want to unpack it just to sample - you want a KSampler that eats the pipe directly. That's this node. It keeps the pipe intact so you can keep chaining: sample here, pass the same context to a detailer, then an upscaler, all off one bundle.

The inputs

Mostly the standard KSampler set, so nothing exotic:

  • basic_pipe - the bundle carrying model, clip, vae, positive, and negative. This replaces four separate inputs.
  • latent_image - what you're sampling (an empty latent for txt2img, an existing one for img2img).
  • seed, steps, cfg, sampler_name, scheduler, denoise - the usual dials. Defaults are 20 steps, cfg 8, denoise 1.0. For a first pass leave denoise at 1.0; for a second (hi-res) pass drop it to 0.3–0.5 so you add detail without redrawing the image.

That denoise control is the one that changes what the node does: at 1.0 it's a from-scratch generation, at low values it's a refinement pass on an existing latent. Same node, both jobs.

What comes out

Three outputs, and this is where the pipe design earns its keep:

  • BASIC_PIPE - the same pipe passed straight through, so you can keep feeding it to the next node without re-wiring the context.
  • LATENT - the sampled result. Decode it with a VAE, or feed it to another sampler.
  • VAE - pulled out of the pipe for convenience, so you can wire a VAEDecode right off this node without unpacking the whole bundle.

Getting the VAE handed to you directly is a small thing that saves a FromBasicPipe every single time you want to see your image. It's the kind of quality-of-life detail that makes the pipe workflow pleasant instead of tedious.

Why use it over a stock KSampler

If you're not using pipes, don't - a plain ComfyUI KSampler is fine and more familiar. The moment you are using BASIC_PIPE (because you're leaning on Impact Pack's detailers and upscalers, which all want pipes), this node keeps everything consistent: one bundle, one context, no chance of accidentally wiring a different model or VAE into your sampling than into your detailing. Consistency across a multi-stage pipeline is the whole selling point. Bonus: it also supports the AYS/GITS-style schedulers Impact Pack adds, via the optional scheduler_func_opt input, if you're chasing those.

Common issues

The usual pipe caveat applies: BASIC_PIPE is an Impact-Pack type, so you have to actually build one with ToBasicPipe (or get one from another Impact node) - you can't feed loose model/clip/vae wires straight in. If the basic_pipe input has nothing to connect to, that's the missing step. Beyond that, it samples exactly like a KSampler, so any "my image looks wrong" issue is ordinary sampler tuning - steps, cfg, sampler choice, denoise - not something peculiar to this node.

Installing it

KSampler (pipe) ships inside ComfyUI Impact Pack. Install through 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 into ComfyUI's Python environment (portable build: ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt), and restart. Auto-install was dropped in v7.6, so a manual clone needs the requirements step to load. Impact Pack is ltdrdata's - the ComfyUI-Manager author - so it's dependable, and this sampler adds no models or heavy dependencies beyond the pack itself.

CategoryImpactPack/sampling

Inputs (9)

NameTypeDefaultDescription
basic_pipeBASIC_PIPEbasic_pipe input for sampling
seedINT00–18446744073709550000Random seed to use for generating CPU noise for sampling.
stepsINT201–10000total sampling steps
cfgFLOAT8.000–100classifier free guidance value
sampler_nameCOMBOsampler
schedulerCOMBOnoise schedule
latent_imageLATENTinput latent image
denoiseFLOAT1.000–1The amount of noise to remove. This amount is the noise added at the start, and the higher it is, the more the input latent will be modified before being returned.
scheduler_func_optoptSCHEDULER_FUNC[OPTIONAL] Noise schedule generation function. If this is set, the scheduler widget will be ignored.

Outputs (3)

NameTypeDescription
BASIC_PIPEBASIC_PIPEpassthrough input basic_pipe
LATENTLATENTresult latent
VAEVAEVAE in basic_pipe