Advanced FlowMatch Scheduler
The raw sigma dial when no profile fits
- sigmas
- schedule_info
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_muordirect_ratio. This is the one knob that changes the shape of the curve, not just its ends.exponential_muis the familiar exponential-mu shift used across the flow-matching world;direct_ratiois the other common parameterization. If you don't know which you want,exponential_muis the safer default to start from. - shift_value - the strength of that shift, from -20 to 20. Zero is neutral.
- terminal_policy -
append_zeroappends a zero sigma at the end (what most custom-sampling paths expect),preserveleaves 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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| domain | COMBO | 1 options: UNIT_FLOW | |
| steps | INT | 202–10000 | — |
| sigma_start | FLOAT | 1.0000–1 | — |
| sigma_end | FLOAT | 0.0500–1 | — |
| shift_mode | COMBO | 2 options: exponential_mu, direct_ratio | |
| shift_value | FLOAT | 0.00-20–20 | — |
| terminal_policy | COMBO | 2 options: append_zero, preserve | |
| start_step | INT | 00–9999 | — |
| end_step | INT | -1-1–10000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| schedule_info | STRING | — |