XY Input: Steps
Steps
- X or Y
"How many steps do I actually need?" is one of the first questions everyone asks and one of the last they answer well, because the honest response is "depends on your sampler and model, so test it." XY Input: Steps does the testing - it sweeps a range of step counts and grids the results, so you can watch the image converge and spot the point where more steps stop buying you anything. It's part of the Efficiency Nodes XY Plot system.
How it works
Step count is how many denoising iterations the sampler runs. Too few and the image is undercooked; past a certain point it just converges and extra steps are wasted compute. Where that point sits depends heavily on the sampler - a modern dpmpp_2m converges fast, while distilled Turbo/Lightning models are done in 4-8 - so a plot is the right tool.
target_parameter decides which step value you sweep, because the advanced sampler has more than one:
steps- total step count. The everyday choice.start_at_step/end_at_step- for multi-stage sampling, where a pass runs only part of the schedule. These control where a stage begins and ends.refine_at_step- the step where an SDXL refiner takes over (the step-count equivalent of the refiner handoff).
Whichever you pick, the matching first_/last_ pair sets the range - first_step/last_step for total steps, first_start_step/last_start_step for the start point, and so on. batch_count sets how many values to test.
The inputs and outputs
target_parameter- which step value to sweep.batch_countplus the relevantfirst_/last_pair - resolution and range.
Output is X or Y (type XY) into the XY Plot node, which plugs into an Efficient KSampler's script input. The start_at_step/end_at_step/refine_at_step targets only mean something on the advanced or SDXL Efficient samplers.
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.
Common issues
Match the target to the sampler. Plotting steps works anywhere, but start_at_step, end_at_step, and refine_at_step are multi-stage / advanced concepts - sweep them against a plain Efficient KSampler and nothing happens. Use the advanced or SDXL variant.
The interpretation trap: a step plot that looks identical across the whole range usually means your sampler already converged at the low end (common with dpmpp_2m or a distilled model), so you're testing a range that's all past the useful point. Drop first_step lower to actually see the undercooked-to-converged transition.
And the universal XY Input rule: no plot renders unless the output reaches the XY Plot node and, through it, an Efficient KSampler - a stock KSampler won't run it.
Pack-wide: IMPORT FAILED at startup (the recurring pip freeze non-zero exit) drops the whole pack and this node with it. Update ComfyUI, update the node, verify the Python environment.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| target_parameter | COMBO | 4 options: steps, start_at_step, end_at_step, refine_at_step | |
| batch_count | INT | 30–50 | — |
| first_step | INT | 101–10000 | — |
| last_step | INT | 201–10000 | — |
| first_start_step | INT | 00–10000 | — |
| last_start_step | INT | 100–10000 | — |
| first_end_step | INT | 100–10000 | — |
| last_end_step | INT | 200–10000 | — |
| first_refine_step | INT | 100–10000 | — |
| last_refine_step | INT | 200–10000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| X or Y | XY | — |