Nodes/ComfyLab Pack/List: Schedulers (lab)
ComfyUI Node

List: Schedulers (lab)

The scheduler sweep list, for when Karras isn't the answer

By bugltd·Created 2 years ago·Updated about a year ago· 11
List: Schedulers (lab)
  • selection
  • list
  • count

List: Schedulers (lab) is the sibling of List: Samplers (lab) with one crucial difference: it's the node for the setting people don't argue about nearly enough. Everyone has an opinion on samplers; schedulers quietly change your images just as much, and "which scheduler?" gets answered with "Karras" on autopilot. This node exists to remind you that autopilot has a price.

Here's the thing the KB hammers on: the scheduler is the noise schedule, and aggressive schedulers are not universally good. Karras concentrates denoising in the middle steps - a correction on the curved DDPM trajectory of SD 1.5/SDXL, but a distortion on straight flow-matching models where it means redistribution of denoising effort those models actively dislike. The corpus's biggest sampler/scheduler sweep on Z-Image Turbo is blunt: any scheduler but Karras or exponential. The "DPM++ 2M Karras as a safe default" advice is model-family-specific, and a scheduler sweep is how you find out whether your model is one of the exceptions.

How it works

The selection widget is populated from KSampler.SCHEDULERS - the same list the core KSampler's scheduler dropdown shows. You tick the ones you want to test, and it outputs them as a list, in order.

  • selection - the multi-select widget.
  • Outputs list (the scheduler names) and count (how many).

Same shape as the rest of ComfyLab's list nodes: wire list into XY Plot: Queue (lab), connect the queue's dim*_value to KSampler's scheduler input, and the batch runs itself. Schedulers pair naturally with samplers on the other dimension - sampler × scheduler grids are a classic combo, and that's exactly what the two list nodes plus an XY plot give you.

Inputs and outputs

Just the one input - selection - plus the standard list and count outputs. The list holds plain strings, so it plugs into anything that wants a scheduler name, and KSampler validates the name when the run reaches it.

Install

ComfyLab Pack is one install covering its whole family (the "(lab)" suffix is how you'll spot the nodes). ComfyUI Manager: search ComfyLab Pack, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/bugltd/ComfyLab-Pack.git
cd ComfyLab-Pack
pip install -r requirements.txt

Restart after. No model downloads - the pack is pure workflow tooling with light requirements (opencv-python, pyyaml, jsonschema and a few small ones).

Gotchas

  • Scheduler and sampler are a pair. A great scheduler under one sampler can be a dud under another; sweeping one without the other gives you half the picture.
  • Some schedulers ignore your shift. The KB flags that schedules like bong_tangent use their own sigma shift and ignore the shift you set in ModelSampling nodes - a real source of "I changed shift and nothing happened."
  • Watch for Karras-on-flow-matching. If your model is a newer flow-matching architecture, don't blanket-test Karras as your "control" scheduler - it may be the variable you're not measuring.

The punchline: most people install this node expecting a dropdown and instead get a small research grant. Run the sweep once on your favorite model, note which scheduler it actually likes, and keep that grid somewhere.

CategoryComfyLab/list

Inputs (1)

NameTypeDefaultDescription
selectionSELECTION_LIST

Outputs (2)

NameTypeDescription
listLISTlist of scheduler names
countINTnumber of values