ComfyUI Node Runs on cloud

KSampler SDXL (Eff.)

KSampler SDXL (Eff.)

By jags111·Created 3 years ago·Updated 4 months ago· 1,485
KSampler SDXL (Eff.)
  • sdxl_tuple
  • latent_image
  • optional_vae
  • script
  • SDXL_TUPLE
  • LATENT
  • VAE
  • IMAGE
noise_seed0
steps20
cfg7.00
sampler_name
scheduler
start_at_step0
refine_at_step-1
preview_method
vae_decode

This is the Efficiency pack's sampler built specifically for the SDXL base-plus-refiner setup. Back when SDXL shipped with a separate refiner model, the "proper" way to run it was two samplers handing a partially-denoised latent between them - base does most of the work, refiner polishes the last few steps. This node does that whole handoff internally, so you don't have to wire two KSamplers and split latents by hand.

It's designed to sit right after the Eff. Loader SDXL node, which bundles your base and refiner checkpoints into a single SDXL_TUPLE.

How it works

The sdxl_tuple input carries the base model, the refiner, and their conditioning together - that's the bundle from Eff. Loader SDXL. Inside, the node samples with the base, then at a step you choose it swaps to the refiner for the remaining steps. Everything else - preview, VAE decode, script execution - works like the other Efficient KSamplers.

The inputs that matter

  • sdxl_tuple - the base+refiner bundle from Eff. Loader SDXL. This is the whole point; without it the node has nothing to sample.
  • refine_at_step - the step where control passes from base to refiner. Default is -1, which means don't hand off - base only, no refiner. Set it to something like the last 20% of your steps to actually engage the refiner. This is the dial people miss.
  • start_at_step - where sampling begins; useful when you're feeding in an already-partly-denoised latent.
  • steps, cfg, sampler_name, scheduler - the usual. Note the sampler list is large (44 options) and SDXL-family models want the classic DDPM-friendly samplers; the exotic flow-matching solvers in the list aren't meant for SDXL.
  • preview_method and vae_decode - live preview and whether to emit a finished IMAGE directly (true, true (tiled), false, or output-only variants).

Outputs are SDXL_TUPLE (pass the bundle onward), LATENT, VAE, and IMAGE. The optional_vae and script inputs let you supply a VAE or attach an XY Plot / HiRes-Fix script.

Installing it

ComfyUI Manager → search Efficiency Nodes for ComfyUI, or:

cd ComfyUI/custom_nodes
git clone https://github.com/jags111/efficiency-nodes-comfyui

Restart afterward. No extra models for the sampler itself.

Common issues

Honest take: the base+refiner era is mostly behind us. A lot of modern SDXL finetunes are trained to run refiner-free, and plenty of people get better results running base only and doing a hires pass instead. If you're not deliberately using a refiner, refine_at_step = -1 (the default) is fine and you might not need this node over the plain KSampler (Efficient) at all.

There's also a long-standing, documented quirk in this pack: on SDXL, a LoRA applied through the stack has historically only affected the base model and not the refiner. If your LoRA looks weaker than expected on an SDXL base+refiner run, that's likely why - test it against a base-only setup to confirm.

And the pack-wide ones: IMPORT FAILED on startup (often a pip freeze error) means an environment problem - update ComfyUI, packages and the node. Breakage after a ComfyUI update usually clears by updating the node to the latest commit.

CategoryEfficiency Nodes/Sampling

Inputs (13)

NameTypeDefaultDescription
sdxl_tupleSDXL_TUPLE
noise_seedINT00–18446744073709550000
stepsINT201–10000
cfgFLOAT7.000–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO13 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +7
latent_imageLATENT
start_at_stepINT00–10000
refine_at_stepINT-1-1–10000
preview_methodCOMBO4 options: auto, latent2rgb, taesd, none
vae_decodeCOMBO5 options: true, true (tiled), false, output only, output only (tiled)
optional_vaeoptVAE
scriptoptSCRIPT

Outputs (4)

NameTypeDescription
SDXL_TUPLESDXL_TUPLE
LATENTLATENT
VAEVAE
IMAGEIMAGE