XY Input: Refiner On/Off
Refiner On/Off
- X or Y
The everlasting SDXL question: is the refiner actually helping, and when should it take over? XY Input: Refiner On/Off plots exactly that - it varies the point in the denoising process where the SDXL refiner kicks in, so you can compare handoff timings and judge whether the second stage is earning its keep. It's part of the Efficiency Nodes XY Plot system.
How it works
SDXL was designed as two models: a base that does the composition and a refiner meant to polish the final details. The handoff happens at some fraction of the total sampling - run the base up to, say, 80%, then let the refiner finish the last 20%. refine_at_percent is that switch point, and this node sweeps it across a grid so you can see the base-only look next to various refiner-handoff timings in one shot.
refine_at_percent(default 0.8) - where the refiner takes over, as a fraction of the process. The node plots a range around this.
That single value is the whole node. Its X or Y output goes to the XY Plot node, which drives an SDXL Efficient KSampler.
Why this plot is worth running
Here's the honest framing from the KB: SDXL's base-plus-refiner design is the part the community "promptly ignored half of." Loads of people run the base alone and never touch the refiner, and often the results are just as good. So rather than take a side, plot it - this node lets you see, for your checkpoint and prompt, whether handing off at 0.8 beats 0.7, or whether skipping the refiner entirely is fine. That's a much better answer than following someone else's dogma.
Installing it
ComfyUI Manager → search Efficiency Nodes for ComfyUI, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/jags111/efficiency-nodes-comfyui
Restart ComfyUI. No downloads - you supply base and refiner checkpoints through your loaders.
Common issues
It's SDXL base+refiner-only by definition - you need both models loaded (typically via a packed SDXL tuple into the SDXL Efficient KSampler) for the handoff to mean anything. On a base-only workflow there's no refiner to switch on.
One quirk to keep in mind if you also use LoRAs: the community found that in the Efficiency SDXL flow, a LoRA stack reaches the base but not the refiner. So a refiner-handoff plot on a LoRA'd workflow is comparing "base with LoRA" against "refiner without LoRA," which can make the refiner look worse than it is. If that's your setup, inject the LoRA into the refiner branch manually (unpack the tuple) before trusting the comparison.
Standard XY Input rule: the output does nothing until it flows through the XY Plot node into an Efficient KSampler's script input.
Pack-wide: IMPORT FAILED at startup (the recurring pip freeze non-zero exit) drops the whole pack. Update ComfyUI, update the node, check the environment.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| refine_at_percent | FLOAT | 0.800–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| X or Y | XY | — |