Scheduler Selector (Eff.) (Citron Image Saver)
The Efficiency Nodes schedule list as a proper value node
- scheduler
- scheduler_name
Efficiency Nodes is one of the packs that made large ComfyUI graphs readable - its whole premise is collapsing KSampler-plus-loaders-plus-conditioning chains into a single wide node. If you build with those, your scheduler dropdown has a few extra entries that core ComfyUI doesn't know about, and this node is the value node for that list. Same shape as the standard scheduler selector: one choice, two wires, honest metadata.
How it works
One input, scheduler, with thirteen names: the nine core ones (simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, kl_optimal) plus AYS SD1, AYS SDXL, AYS SVD and GITS.
Outputs: scheduler, typed against that thirteen-name list ("scheduler (ComfyUI + Efficiency Pack Schedulers)"), and scheduler_name as a STRING. Feed the typed one into your sampler's scheduler socket, the string one into the Citron save node's scheduler_name input. Neither output does any computation - it's a value node with a type adapter in the middle.
The practical win is that AYS SDXL and friends are now wire-able and record-able in one move. Type them into a save node by hand and you get a metadata string that says AYS SDXL while your sampler might be sitting on karras from a previous experiment; drive both from one dropdown and the two can't diverge.
Two things to watch. The list is hardcoded in this pack and doesn't verify what you've installed - pick GITS without the Efficiency pack and queue against a stock KSampler and you'll get a validation failure, because core Comfy's scheduler list doesn't contain it. And note this list is narrower than the Inspire one: no OSS schedules here, and GITS appears without the [coeff=1.2] suffix that Inspire uses. If you're mixing packs, use the selector that matches the sampler you're actually running, not the one with the longest list.
On which of these to reach for: AYS schedules are step-by-step hand-tuned schedules for their named model families, and they want the step counts their authors tuned for - going to 40 steps isn't the point. GITS is the implicit-timestep family; interesting at low step counts, less predictable than simple. On anything flow-matching and recent, I'd still try simple first as the baseline and treat these as variants to compare against, not upgrades.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/citronlegacy/ComfyUI-CitronNodes
# restart ComfyUI
Manager search is unreliable for this pack - the README lists support as "coming soon" and the repo metadata is placeholder - so use the clone. piexif is the only pip dependency, and a missing copy stops the entire pack importing:
pip install piexif
The Efficiency Nodes pack itself is a separate install, and this node neither requires nor ships it - it just offers the names.
Common issues
- "Value not in list" at queue time. An Efficiency-only schedule went into the stock KSampler. Either use the Efficiency sampler or stay in the nine core names.
- Metadata says one scheduler, sampler another. The sampler's widget is authoritative. Convert it to an input and wire this node into both sockets.
GITS[coeff=1.2]won't validate. That spelling belongs to the Inspire variant. This list uses bareGITS.- Nothing appears in the saved parameters. The
scheduler_namestring output isn't wired into the saver - the combo output doesn't carry over on its own.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| scheduler | COMBO | scheduler |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| scheduler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal,AYS SD1,AYS SDXL,AYS SVD,GITS | scheduler (ComfyUI + Efficiency Pack Schedulers) |
| scheduler_name | STRING | scheduler name (STRING) |