Scheduler Selector From String
Turn a text value into a real KSampler scheduler
- scheduler
The scheduler counterpart to this pack's Sampler Selector From String, solving the same problem: ComfyUI's scheduler input is a fixed dropdown, and a loop variable or a text string can't drive that connection directly without something converting it first.
What it does
One input, scheduler_str, a plain STRING defaulting to "normal". One output, scheduler, typed as the real scheduler enum ComfyUI's own sampling nodes use - simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, kl_optimal. Give it a matching string and it comes out as a proper, wireable scheduler connection. Give it something unrecognized, and it falls back to normal rather than erroring out.
Pair it with the Dynamic Scheduler Selector's LIST output inside a loop, and you can sweep through several schedulers on the same graph without duplicating your sampling node once per option.
It's the direct counterpart to this pack's Sampler Selector From String - same mechanism, same fallback-on-bad-input behavior, just pointed at the scheduler enum instead of the sampler one. If you're building a comparison loop that varies both sampler and scheduler at once, you'll typically use both of these side by side, each fed from its own generator node's list.
Installing it
ComfyUI Manager: search DemonAlone-nodes-ComfyUI, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/DemonAlone/SimpeStringGenerator_ComfyUI
No dependencies or model downloads beyond core ComfyUI.
Where people get burned
Same trap as its sampler sibling: an unrecognized string doesn't error, it silently becomes normal. Typo "karas" instead of "karras" and your comparison run will quietly use normal for that entry instead of what you meant - worth double-checking spelling if a sweep result doesn't match what you expected to test.
And the choice of which schedulers to actually put in your sweep matters more than it looks. karras and exponential are the safe default on SD 1.5 / SDXL checkpoints and a known bad pick on flow-matching models - the community's explanation is that those architectures want a balanced sigma schedule and fall apart under the aggressive mid-step redistribution those two schedulers apply. If you're testing a Flux or Z-Image-family model, beta, simple, and linear_quadratic are where you'll actually see meaningful differences.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| scheduler_str | STRING | normal | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| scheduler | simple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal | — |