AIHub Expose Extendable Scheduler
A scheduler dropdown you control — blacklist, extras, and model defaults
- SCHEDULER
AIHub Expose Extendable Scheduler is the scheduler dropdown for workflows where the client picks the model. Plain schedulers are just strings, and the stock behavior lets the user pick anything from ComfyUI's list. This node takes the training wheels off in the other direction: you can remove schedulers you don't want people touching (the blacklist), add custom ones (the extras), or nuke the whole list, and it inherits the exposed model's default scheduler unless you say otherwise. It's the scheduler sibling of AIHub Expose CFG and it's part of otavanopisto's ComfyUI-aihub-workflow-exposer, the pack that lets external apps drive ComfyUI as their engine.
The README has a genuinely useful warning baked in here: "differences on how the different nodes treat SCHEDULER values can cause issues within WebUI but not during actual execution." In other words, scheduler names are strings and different sampler nodes spell or handle them differently in the UI - but at execution time it resolves fine. Don't panic over cosmetic mismatches in the editor; trust the run.
How it works
Like every expose node, the client sends the chosen value over the pack's websocket (port 8111) and the node passes it through - here as a wildcard-typed output (*) that plugs into any scheduler input. The list shown to the client is assembled from the built-in schedulers, minus your blacklist, plus your extras, and the default follows the exposed model's default_scheduler unless unaffected_by_model_scheduler is set. All the list-building is client-side; the node itself is a pass-through with metadata.
The inputs that matter
- id / label / tooltip - the usual expose metadata; the id is the contract with the client.
- value - the default scheduler, any string.
- blacklist - newline-separated schedulers to remove from the selectable list. Handy for hiding options that break your specific sampler node.
- blacklist_all - if true, the whole list is disabled (you're left with whatever
value/extrasprovide). A blunt instrument, but sometimes that's what you want. - extras - newline-separated custom schedulers to add. This is how you offer schedulers ComfyUI's list doesn't include.
- unaffected_by_model_scheduler - set true to keep your value even when a model exposes a default scheduler.
- advanced / index - UI placement.
The output
- SCHEDULER - the chosen scheduler string, wire it into your sampler.
Installing it
ComfyUI Manager (search "ComfyUI-aihub-workflow-exposer"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer
# restart ComfyUI
No requirements, no downloads.
Where people get burned
People mostly get confused about who does the work. The blacklist/extras/list logic runs on the client - the stock UI will show you a plain string field, not the filtered dropdown, because there's no client building the list. Test with an actual client app, not the web UI. And if you're adding custom schedulers via extras, remember they're just strings: the sampler node on the receiving end has to actually support the name you type, or execution may fail where the UI was happy to accept it.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| id | STRING | scheduler | A unique custom id for this workflow. |
| label | STRING | Scheduler | This is the label that will appear in the field. |
| tooltip | STRING | An optional tooltip | |
| value | STRING | The default value for the scheduler, can be any string | |
| advanced | BOOLEAN | false | If set to true, this option will be hidden under advanced options for this workflow. |
| index | INT | 0 | This value is used for sorting the input fields when displaying; lower values will appear first. |
| unaffected_by_model_scheduler | BOOLEAN | false | If set to true, this scheduler value will not be affected by the model's default scheduler |
| blacklist | STRING | A newline separated list of schedulers that should not be selectable | |
| blacklist_all | BOOLEAN | false | If set to true, it will blacklist all the schedulers |
| extras | STRING | A newline separated list of extra schedulers that will be added to what is left |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SCHEDULER | * | — |