Qwen Image Sigma Scheduler
Qwen Image's original schedule, in both official flavors
- sigmas
- schedule_info
The original Qwen Image text-to-image model has two official-ish scheduling regimes, and they're not interchangeable: ComfyUI's fixed shift of 1.15, and Diffusers' dynamic shift that depends on the actual image sequence length. The Qwen Image Sigma Scheduler builds both, explicitly, and it's the pack's answer to the classic Qwen failure mode - running a fixed schedule where the model wants a sequence-aware one, or vice versa.
The distinction is worth actually understanding because it's the input you'll set. Flow-matching models like Qwen Image get a shift that redistributes denoising effort; a fixed shift applies the same redistribution regardless of output size, while a dynamic shift scales with how many image tokens you're generating. For big or unusually-shaped outputs, that difference stops being academic.
The two modes
- Comfy Fixed - mirrors the pinned ComfyUI fixed shift of 1.15. This is the mode most people will run: 50 steps, no extra inputs, done. It matches what ComfyUI's own Qwen Image path does, which is why the pack calls it the "Comfy Fixed" lane.
- Diffusers Dynamic - the dynamic shift, and it requires
image_seq_lento be set explicitly (the field defaults to 0, which is a placeholder).image_seq_lenis the number of image tokens your sequence resolves to - for Qwen Image that's a function of resolution and the VAE's patch size. If you don't know the number, this mode will not save you; the pack's README is explicit that dynamic mode needs the explicitimage_seq_len.
Plus the usual: steps (default 50), strict_official (keep on), and start_step / end_step for slicing. Outputs are sigmas and schedule_info.
Scope, stated like a contract
Original Qwen Image text-to-image only. The pack is blunt: later Qwen variants and image-quality parity are outside scope. If you're on Qwen Image Edit or a newer Qwen generation, this node's schedule is not built for you - read it as a reference, not a prescription. Also note the host's recommended guidance for the original model is a true CFG around 4.0; the node supplies the schedule, not the guidance.
Installing
The whole Sigmax pack, one install:
cd ComfyUI/custom_nodes
git clone https://github.com/rookiestar28/ComfyUI-Sigmax comfyui-sigmax
Restart, search Sigmax. ComfyUI Manager lists "ComfyUI-Sigmax". Python 3.10+, ComfyUI 0.29.0+, no extra dependencies, no model downloads.
Where people get burned
Running Diffusers Dynamic without an image_seq_len and getting confused when it's not dynamic - the field exists for a reason; set it. And the reverse: running Comfy Fixed on a workflow that came from a Diffusers-based reference and wondering why the shift feels different. Pick the lane matching where your workflow came from, and read the schedule_info line to confirm which recipe actually applied. And the pack-wide rule: connect sigmas once, don't stack a second scheduler or time shift.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 2 options: Comfy Fixed, Diffusers Dynamic | |
| steps | INT | 501–10000 | — |
| image_seq_len | INT | 00–1000000 | — |
| strict_official | BOOLEAN | true | — |
| start_step | INT | 00–9999 | — |
| end_step | INT | -1-1–10000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| schedule_info | STRING | — |