RES4LYF Scheduler Loop
One queue run per scheduler — the painless RES4LYF A/B test
- scheduler
- current_index
- total_combinations
- current_combination
- sampler_mode
- label
Scheduler choice is where flow-matching models actually live or die. On a rectified-flow architecture like Flux or Z-Image, Karras and exponential schedules don't just underperform - they fail outright, while beta57 (RES4LYF's signature schedule) is what a growing share of the community names as its default. Yet the scheduler is also the setting people tune by feel, one rerun at a time. RES4LYFSchedulerLoop is the node that turns that grind into a sweep: every time you queue, it hands you the next scheduler, so a single batch gives you the comparison on a plate.
It comes from KY-2000's RES4LYF-tester-loop pack, a loop-helper companion to ClownsharkBatwing's RES4LYF sampler pack. Like its sibling RES4LYFSamplerLoop, it doesn't add schedulers - it steps through the ones you already have, which keeps you honest about what your setup can actually do.
How it works
At import time the node pulls the scheduler list from your RES4LYF install's helper.py (the get_res4lyf_scheduler_list() function), so you get whatever's current upstream - right now that's the eleven entries: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, kl_optimal, bong_tangent, and beta57. If it can't reach RES4LYF, it falls back to that same eleven-item built-in list and logs Using FALLBACK_SCHEDULERS to the console. Each run advances a counter and selects by mode - sequential, random (seeded), or ping_pong bouncing through the list.
The inputs that matter
mode- sequential / random / ping_pong.seed- makes random mode reproducible.reset- true restarts the sweep from the top.skip_schedulers- exclude names with a comma/newline list, e.g.karras, exponentialif you're on flow-matching and already know those are dead ends.loop_sampler_modewithsampler_mode_methodandskip_sampler_modes- optionally cycle RES4LYF'sunsample/standard/resamplesampler modes at the same time.
Outputs: scheduler (wired straight into ClownsharKSampler_Beta.scheduler), current_index, total_combinations, current_combination, sampler_mode, and a label like beta57 | standard for captioning or filenames.
Install
RES4LYF first, then the loop pack, both in custom_nodes/:
cd ComfyUI/custom_nodes/
git clone https://github.com/ClownsharkBatwing/RES4LYF.git
git clone https://github.com/KY-2000/RES4LYF-tester-loop.git
Restart ComfyUI. That's the whole install - no Python dependencies beyond the standard library, no models to fetch. ComfyUI Manager finds both by title if you prefer point-and-click.
Where people get burned
One genuinely useful heads-up from the community sampler sweep lore: bong_tangent applies its own sigma shift and ignores the workflow's, so if you're sweeping with a shift set, results from that scheduler will look "off" relative to the rest - it's the scheduler, not the shift. Also worth knowing: every instance of this node class shares one counter, so two Scheduler Loops in one graph advance in lockstep. And if you see the fallback console message, your sweep is running against the built-in list, not your RES4LYF install - same names today, but it'll drift as RES4LYF adds schedules.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 3 options: sequential, random, ping_pong | |
| seed | INT | 00–18446744073709550000 | — |
| reset | BOOLEAN | false | — |
| skip_schedulersopt | STRING | — | |
| loop_sampler_modeopt | BOOLEAN | false | — |
| sampler_mode_methodopt | COMBO | 3 options: sequential, random, ping_pong | |
| skip_sampler_modesopt | STRING | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| scheduler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal,bong_tangent,beta57 | — |
| current_index | INT | — |
| total_combinations | INT | — |
| current_combination | STRING | — |
| sampler_mode | unsample,standard,resample | — |
| label | STRING | — |