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

List: Samplers (lab)

The sampler sweep list that ends the 'which one is best?' argument

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

List: Samplers (lab) hands you a multi-select of every sampler ComfyUI knows and turns your picks into a LIST. On paper that's a dropdown in a box. In practice it's the node that ends the most useless argument in this hobby - "which sampler is best?" - by letting you run the actual experiment.

Sampler choice is genuinely model-dependent, and the KB's material is blunt about it. Converging samplers like Euler, DPM++ 2M and DDIM settle into a stable image and are predictable - same seed, same result. Ancestral samplers like Euler A and DPM++ SDE inject noise each step, so they wander more and reward more steps. The community's own workflow - "DPM++ 2M at 10 steps to evaluate, then try all samplers at various steps" - is a sampler sweep, and this node is the "try all" part.

How it works

The selection widget is populated from KSampler.SAMPLERS - the exact list the core KSampler's sampler dropdown uses, so every entry here is one you could type in there. You tick the ones to test, and the node outputs them in order.

One input (selection), two outputs:

  • list - the sampler names as a LIST, ready for a queue.
  • count - INT, how many you're sweeping.

Wire list into XY Plot: Queue (lab) on dim1 or dim2, connect the queue's dim*_value output to the KSampler's sampler input, and let it chew through all of them. The queue is untyped, so the string flows straight into KSampler, which validates it at execution time - an invalid name raises there, not in this node.

Why a sweep beats advice

For SD 1.5 and SDXL, DPM++ 2M Karras is the community default and a fine place to start. But that default is not universal - the KB documents how aggressive schedulers actively distort straight flow-matching trajectories, and that different sampler families reward different step counts. The honest answer is always "benchmark it on your model," and a 62-sampler × 16-scheduler sweep from the corpus is exactly the kind of thing this node makes manageable (if slightly less extreme). One grid, all combinations, done.

Install

ComfyLab Pack installs as one package (nodes display with "(lab)" suffixes). 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 files, light requirements (opencv-python, pyyaml, jsonschema and friends) - the whole pack is tooling.

Gotchas

  • Same sampler, different names. ComfyUI's list includes aliases (dpmpp_2m vs dpmpp_2m_sde etc.) - read them before assuming you're comparing distinct algorithms.
  • Steps interact. A sampler that's great at 30 steps can be mush at 8. If you're not varying steps too, run the sweep at the step count you actually intend to ship.
  • count output is handy for feeding pagination math into XY Plot: Queue's max_dim*_per_page if you're feeling fancy.

It's a checkbox list. But it's a checkbox list that converts "I heard Euler A is better" into "here are eight grids, judge for yourself." That's the best thing a tool can do.

CategoryComfyLab/list

Inputs (1)

NameTypeDefaultDescription
selectionSELECTION_LIST

Outputs (2)

NameTypeDescription
listLISTlist of sampler names
countINTnumber of values