All Parameters Loop (Sampler Custom Advanced)
The kitchen-sink loop, but with SAMPLER objects for custom sampler nodes
- steps
- cfg
- shift
- sampler
- scheduler
- current_index
- total_combinations
- current_combination
Take the kitchen-sink All Parameters Loop - steps, CFG, shift, sampler, and scheduler sweeping together - and swap its sampler output from a string to a genuine SAMPLER object, and you have All Parameters Loop (Sampler Custom Advanced). It's the node you reach for when your sampling setup is built around custom nodes - SamplerCustom, SamplerCustomAdvanced, Kijai's wrapper stack, that crowd - because those nodes refuse plain sampler names and demand a real object on the sampler input.
This is also the natural pairing for WanVideo tuning, and not by accident: this pack grew out of the WanVideo scheduler-loop work by tankenyuen-ola. Wan workflows almost always run through a custom sampler node rather than the stock KSampler, they need the shift output this node provides, and the CFG landscape is exactly the kind of thing you want to sweep (CFG 1.0 with speed LoRAs like lightx2v/CausVid, 3.5+ without - the KB's Wan notes are the reference here). For a Wan parameter hunt, this is arguably the most relevant node in the whole pack.
Mechanism
Same counter-driven looping as its sibling: one combination per queue run, advancing only on a new execution. Combination order is steps → CFG → shift → sampler → scheduler, so the scheduler changes fastest. Modes are sequential, random (seeded via seed + step), and ping_pong.
When it lands on a sampler name, it resolves the object via comfy.samplers.sampler_object(), with a fallback to the samplers dict and - last resort - a raw string plus a console warning. If you ever see that warning, your custom sampler node will likely choke on it; normally the object path just works.
Inputs that matter
The same five ranges as the standard version, in _start / _end / _interval form:
- steps_start/end/interval - integers, defaults 20/50/10.
- cfg_start/end/interval - floats, defaults 1/8/1.
- shift_start/end/interval - floats, defaults 1/3/0.5.
shiftis the WanVideo flow-shift parameter (lightx2v setups commonly sit around shift 8); on pure SD graphs there's nowhere for it to go, so leave it unplugged. - mode, seed, reset - the usual controls.
- skip_samplers / skip_schedulers - comma-separated, exact-match skip lists. Skip everything in one and it silently reverts to the full list, so check the console if behavior looks weird.
Outputs: steps (INT), cfg (FLOAT), shift (FLOAT), sampler (SAMPLER type - the point of this variant), scheduler (string, one of nine), then current_index, total_combinations, and current_combination for labeling.
The math warning, louder
Five ranges multiply. Defaults alone give you a big product, and with 44 samplers × 9 schedulers in the mix you can hit tens of thousands of combinations without trying. The total_combinations output will happily tell you the number - it won't tell you that you can't afford it. Skip lists and narrow ranges are not optional; they're the whole workflow. My habit: lock sampler/scheduler to a shortlist, sweep steps/CFG/shift, then flip the sweep.
Install
Nothing exotic - no pip dependencies, no model downloads, just ComfyUI's own sampler machinery. ComfyUI Manager → search comfyui-ksampler-tester-loop ("Sampler Scheduler Loop" also finds it) → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/KY-2000/comfyui-ksampler-tester-loop
Restart, done. The pack prints verbose per-run logging to the console - annoying at volume, but genuinely handy for confirming which combination the current run is on.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 3 options: sequential, random, ping_pong | |
| steps_start | INT | 201–1000 | — |
| steps_end | INT | 501–1000 | — |
| steps_interval | INT | 101–100 | — |
| cfg_start | FLOAT | 1.00–30 | — |
| cfg_end | FLOAT | 8.00–30 | — |
| cfg_interval | FLOAT | 1.00.1–10 | — |
| shift_start | FLOAT | 1.00–10 | — |
| shift_end | FLOAT | 3.00–10 | — |
| shift_interval | FLOAT | 0.50.1–5 | — |
| seed | INT | 00–18446744073709550000 | — |
| reset | BOOLEAN | false | — |
| skip_samplersopt | STRING | — | |
| skip_schedulersopt | STRING | — |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| steps | INT | — |
| cfg | FLOAT | — |
| shift | FLOAT | — |
| sampler | SAMPLER | — |
| scheduler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | — |
| current_index | INT | — |
| total_combinations | INT | — |
| current_combination | STRING | — |