KSampler w/ Sampler Info
One settings node, wired to as many samplers as you want
- model
- sampler_info
- positive
- negative
- latent_image
- latent
This is a normal KSampler with one deliberate change: steps, CFG, sampler name, scheduler, and seed aren't widgets on this node at all. They live on a separate "Sampler Info" node upstream, and you plug that single output into this one. It sounds like a small reshuffle, but it solves a real annoyance - normally if you want your saved PNG to record the exact sampler settings you used, you either retype them into a metadata node by hand (and they drift out of sync the moment you tweak the KSampler) or write custom logic to read widget values off the sampler. Sage Utils just breaks the settings off into their own node so you wire it once to the sampler and to a metadata-construction node, and both always agree.
The other trick: you can hook the same Sampler Info node into more than one KSampler. Base pass and a hires-fix pass sharing identical steps/CFG/sampler? One Sampler Info node, two wires out. Change the sampler once, both passes update.
Worth knowing going in: Sage Utils is arcum42's own toolkit, built primarily for their own workflows and shared afterward - by their own account on Reddit, adoption outside their own use is thin. That's not a knock; the nodes work and the pack is actively maintained. It just means you're not going to find a thousand YouTube tutorials for this specific one. The design choices are clearly made by someone using this daily, and the KSampler/Sampler-Info split is a good example of that kind of practical, if slightly unusual, thinking.
Inputs and outputs
The node itself is almost bare:
model- the diffusion model, same as any KSampler.sampler_info- theSAMPLER_INFObundle from Sage's separate Sampler Info node. This is the whole point of the node; without it wired up you don't have steps, CFG, sampler, or scheduler set anywhere.positive/negative- standard conditioning.latent_image- the latent to denoise.denoise- the one setting that does live directly on this node, 0–1, default 1. Lower it for img2img-style partial denoising.
Output is a single latent, same as a stock KSampler - feed it to a VAE Decode, or to one of Sage's own decoder variants if you want the VAE step folded in (see Sage_KSamplerTiledDecoder).
Installing it
Through ComfyUI Manager: search Sage Utils, install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/arcum42/ComfyUI_SageUtils
cd ComfyUI_SageUtils
pip install -r requirements.txt
Restart ComfyUI. The pack ships a real requirements.txt - don't skip that step, it's not a zero-dependency drop-in like some smaller node packs. You'll also notice a couple of new sidebar tabs (LLM Chat, Prompt Builder) appear automatically; they're unrelated to this node and you can ignore them entirely if you're only here for the sampler split.
Where people get tripped up
The most common mistake is dragging this node in expecting a normal KSampler and then hunting for the steps/CFG widgets that aren't there. They're on the Sampler Info node - add that one too, it's the required pairing, not an optional extra. If sampler_info isn't connected, the node has nothing to sample with and will error out rather than fall back to defaults.
Second thing: because this is a small, single-maintainer pack rather than something with a large user base stress-testing every combination, if you hit an edge case (an unusual sampler/scheduler combo, a model type the author hasn't personally used), it's worth checking the GitHub issues before assuming it's you. That's the honest tradeoff of a focused personal-toolkit pack versus something like the stock KSampler that's been battle-tested by the entire ComfyUI userbase.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The model used for denoising. | |
| sampler_info | SAMPLER_INFO | Sampler configuration for the KSampler. | |
| positive | CONDITIONING | Positive conditioning for generation. | |
| negative | CONDITIONING | Negative conditioning for generation. | |
| latent_image | LATENT | The latent image to denoise. | |
| denoise | FLOAT | 1.000–1 | The denoising strength. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | The denoised latent output. |