Nodes/ComfyUI-aihub-workflow-exposer/AIHub Expose Extendable Scheduler
ComfyUI Node

AIHub Expose Extendable Scheduler

A scheduler dropdown you control — blacklist, extras, and model defaults

By otavanopisto·Created about a year ago·Updated 23 days ago· 7
AIHub Expose Extendable Scheduler
    • SCHEDULER
    idscheduler
    labelScheduler
    tooltip
    value
    advancedfalse
    index0
    unaffected_by_model_schedulerfalse
    blacklist
    blacklist_allfalse
    extras

    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/extras provide). 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.

    Categoryaihub/expose

    Inputs (10)

    NameTypeDefaultDescription
    idSTRINGschedulerA unique custom id for this workflow.
    labelSTRINGSchedulerThis is the label that will appear in the field.
    tooltipSTRINGAn optional tooltip
    valueSTRINGThe default value for the scheduler, can be any string
    advancedBOOLEANfalseIf set to true, this option will be hidden under advanced options for this workflow.
    indexINT0This value is used for sorting the input fields when displaying; lower values will appear first.
    unaffected_by_model_schedulerBOOLEANfalseIf set to true, this scheduler value will not be affected by the model's default scheduler
    blacklistSTRINGA newline separated list of schedulers that should not be selectable
    blacklist_allBOOLEANfalseIf set to true, it will blacklist all the schedulers
    extrasSTRINGA newline separated list of extra schedulers that will be added to what is left

    Outputs (1)

    NameTypeDescription
    SCHEDULER*