Nodes/ComfyUI-Sigmax/Advanced FlowMatch Scheduler
ComfyUI Node

Advanced FlowMatch Scheduler

The raw sigma dial when no profile fits

By rookiestar28·Created 2 months ago·Updated 24 days ago· 10
Advanced FlowMatch Scheduler
    • sigmas
    • schedule_info
    domain
    steps20
    sigma_start1.000
    sigma_end0.050
    shift_mode
    shift_value0.00
    terminal_policy
    start_step0
    end_step-1

    Most of the Sigmax pack hands you a pinned, fingerprint-checked schedule for a specific model - FLUX.1-schnell, Krea 2, Lumina-Image 2.0, that crowd. The Advanced FlowMatch Scheduler is the opposite: it's the pack's generic constructor, the one you reach for when you're experimenting with a flow-matching model that has no dedicated profile, or when you want to see what a custom sigma curve does to a model you already own. It's experimental, it makes no promises about any specific checkpoint, and that's exactly its job.

    If you're new to this: a sigma schedule is just the list of noise levels the sampler walks down, from pure noise (sigma ~1) to near-clean (sigma ~0). On flow-matching models, the shape of that curve and the shift that redistributes denoising effort between composition and detail do most of the work that scheduler choice used to do on SD 1.5/SDXL. Sigmax's philosophy is that these schedules should be explicit and traceable instead of emergent. This node is the purest expression of that.

    What you actually set

    The inputs are few and they're the interesting ones:

    • steps - how many noise levels to build (default 20, minimum 2).
    • sigma_start (default 1.0) and sigma_end (default 0.05) - the endpoints of the schedule. Keep them sane; these are the same units ComfyUI's own sigmas use.
    • shift_mode - exponential_mu or direct_ratio. This is the one knob that changes the shape of the curve, not just its ends. exponential_mu is the familiar exponential-mu shift used across the flow-matching world; direct_ratio is the other common parameterization. If you don't know which you want, exponential_mu is the safer default to start from.
    • shift_value - the strength of that shift, from -20 to 20. Zero is neutral.
    • terminal_policy - append_zero appends a zero sigma at the end (what most custom-sampling paths expect), preserve leaves the schedule as-is.

    domain is fixed to UNIT_FLOW, which is just the pack's way of labeling flow-matching (unit-flow) schedules. The start_step/end_step pair slices the result, same as every other Sigmax scheduler.

    Outputs and wiring

    You get sigmas (a SIGMAS tensor) and schedule_info (a JSON string describing the recipe). Feed sigmas into a custom-sampling path that accepts an external sigma tensor - think SamplerCustom or your favorite custom sampler's sigmas input - and leave the scheduler's own sigma generation alone.

    One rule from the pack's README that applies to every Sigmax scheduler and doubly so here: connect the result directly, and don't stack a second scheduler or model time shift on top of it. Double-shifting is the pack's most common support question, and this node gives you a shift knob plus the freedom to misuse it.

    Installing it

    Sigmax is one pack, and every node in it arrives together:

    cd ComfyUI/custom_nodes
    git clone https://github.com/rookiestar28/ComfyUI-Sigmax comfyui-sigmax
    

    Restart ComfyUI, search the node menu for Sigmax, and you'll find all 24 namespaced nodes. You can also install via ComfyUI Manager by searching "ComfyUI-Sigmax". Requirements are light - Python 3.10+, ComfyUI 0.29.0+, and no mandatory third-party dependencies beyond what ComfyUI already ships. No model downloads, because this node builds numbers, not weights.

    Where it bites

    Because it's a constructor rather than a profile, nothing stops you from building a schedule that's wrong for your model. That's the point - but treat any result as an experiment, and use schedule_info to keep a record of what you actually generated with. When you find something that works, that JSON is your reproducibility receipt. If you'd rather start from a known-good curve, use the dedicated model schedulers instead and come back here once you know what you're changing.

    CategorySigmax/scheduling

    Inputs (9)

    NameTypeDefaultDescription
    domainCOMBO1 options: UNIT_FLOW
    stepsINT202–10000
    sigma_startFLOAT1.0000–1
    sigma_endFLOAT0.0500–1
    shift_modeCOMBO2 options: exponential_mu, direct_ratio
    shift_valueFLOAT0.00-20–20
    terminal_policyCOMBO2 options: append_zero, preserve
    start_stepINT00–9999
    end_stepINT-1-1–10000

    Outputs (2)

    NameTypeDescription
    sigmasSIGMAS
    schedule_infoSTRING