XY Input: Sampler/Scheduler
Sampler/Scheduler
- X or Y
This is the ammo node that makes the single most useful XY plot: samplers and schedulers, side by side, same seed, same everything else. If you've ever wondered whether dpmpp_2m really beats euler for your model, or what karras does versus exponential, this is how you answer it with your own eyes instead of trusting a forum post. Feed it into an XY Plot node and you get a grid of every sampler/scheduler combo you listed.
By itself it does nothing - it's an input generator for the plot.
Why this is the plot to run
The sampler-and-scheduler choice is treated by the community as a single decision, which is why names like "DPM++ 2M Karras" fuse the two. And the honest situation in 2026 is that there's no universal default anymore. DPM++ 2M Karras was the safe pick for years, but it belongs to DDPM-style models (SD1.5, SDXL and their finetunes). On newer flow-matching architectures, Karras and exponential schedules distort rather than help. So the right sampler genuinely depends on your model - which makes actually plotting them on your specific checkpoint more valuable than ever.
The inputs and outputs
target_parameter-sampler,scheduler, orsampler & scheduler. The last one is the good one: it lets each axis entry set both at once, so you can compare full combos rather than one dimension at a time.input_count- how many entries to expose. Default3; bump it to line up more options.sampler_1…N/scheduler_1…N- the actual picks for each cell. Each dropdown includesNoneplus the pack's full sampler list (44 samplers) and scheduler list. SetNoneto skip a slot.
The output is labelled X or Y and carries the XY type - wire it into the X or Y input of an XY Plot node. Put samplers on one axis and, say, CFG on the other (via a different XY Input) for a proper 2D comparison.
Installing it
ComfyUI Manager → search Efficiency Nodes for ComfyUI, or:
cd ComfyUI/custom_nodes
git clone https://github.com/jags111/efficiency-nodes-comfyui
Restart after. No extra downloads.
Common issues
The sampler list is enormous because the pack bolts on solvers from elsewhere, and not all of them suit every model. If some cells come out as garbage while others look fine, you've probably plotted a sampler that doesn't match your architecture - that's the plot doing its job, telling you which ones to drop. Match the shortlist to your model family; take the model card's recommended pair as your starting point.
Second, this only works through an XY Plot feeding an Efficient KSampler. Alone, or into a stock sampler, it does nothing.
Pack-wide: a missing node usually means an IMPORT FAILED at startup (often a pip freeze error) - update ComfyUI, packages and the node. Breakage after a ComfyUI update generally clears by updating the node to the latest commit.
Inputs (102)
| Name | Type | Default | Description |
|---|---|---|---|
| target_parameter | COMBO | 3 options: sampler, scheduler, sampler & scheduler | |
| input_count | INT | 30–50 | — |
| sampler_1 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_1 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_2 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_2 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_3 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_3 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_4 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_4 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_5 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_5 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_6 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_6 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_7 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_7 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_8 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_8 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_9 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_9 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_10 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_10 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_11 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_11 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_12 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_12 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_13 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_13 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_14 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_14 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_15 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_15 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_16 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_16 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_17 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_17 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_18 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_18 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_19 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_19 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_20 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_20 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_21 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_21 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_22 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_22 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_23 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_23 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_24 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_24 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_25 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_25 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_26 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_26 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_27 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_27 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_28 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_28 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_29 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_29 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_30 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_30 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_31 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_31 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_32 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_32 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_33 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_33 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_34 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_34 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_35 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_35 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_36 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_36 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_37 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_37 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_38 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_38 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_39 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_39 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_40 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_40 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_41 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_41 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_42 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_42 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_43 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_43 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_44 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_44 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_45 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_45 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_46 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_46 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_47 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_47 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_48 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_48 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_49 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_49 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 | |
| sampler_50 | COMBO | 45 options: None, euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, +39 | |
| scheduler_50 | COMBO | 14 options: None, simple, sgm_uniform, karras, exponential, ddim_uniform, +8 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| X or Y | XY | — |