Wan Sigma Scheduler
Every Wan schedule in one node, experts on you
- sigmas
- boundary_step
- schedule_info
Wan 2.1 and 2.2 are where open-source video consolidated - a 14B diffusion transformer with a two-expert MoE that Alibaba then froze behind an API. The catch is that "Wan" is not one schedule. T2V, I2V, TI2V, FLF2V, VACE, S2V, Animate - every task ships with its own official step count and shift, and 720P I2V wants different numbers than 480P. Most workflow authors hardcode one combination and it silently under-delivers on everything else. Sigmax.WanSigmaScheduler turns that whole mess into a menu.
How it works
You drive it with four selectors:
generation- Wan 2.1, Wan 2.2, or Wan Animate 2.task- the big one: 13 options covering T2V, I2V, TI2V, the A14B tasks, FLF2V, VACE (1.3B and 14B), S2V, Animate, and the Animate Base/Distilled/Optimized lanes.source- ComfyUI native, Official native, or Diffusers reference. For the official recipe, pick "Official native"; the Diffusers lanes describe scheduler construction only.resolution- None, 480P, or 720P. This matters for I2V (480P wants shift 3.0 at 40 steps, 720P wants 5.0).
The selectors resolve to an explicit profile and the node builds the sigma schedule with the correct shift baked in. strict_source gates you to the source-qualified recipe; steps, start_step/end_step, and already_shifted are the usual utilities (leave end_step at -1).
The boundary_step output - read this before A14B
This node returns sigmas (SIGMAS), schedule_info (STRING), and one thing you won't see on most schedulers: boundary_step (INT). Wan's A14B models are a two-expert MoE - high-noise and low-noise weights that you switch between partway through sampling. Sigmax computes where that boundary falls and hands it to you as caller-owned metadata, but it will not switch experts for you: the schedule_info explicitly marks model_dispatch: false, routing_owner: caller. In practice people load both A14B checkpoints (the high-noise/low-noise GGUF split is the standard community setup) and route on the boundary yourself. The node tells you where; the switching is on you.
Wire sigmas straight into the custom-sampling path for video. Do not add a second scheduler or another time shift - the shift is in the schedule.
Install
Same pack as the other Sigmax nodes - ComfyUI Manager, search ComfyUI-Sigmax, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/rookiestar28/ComfyUI-Sigmax comfyui-sigmax
Restart. No model downloads (Wan checkpoints are yours to bring), no pip dependencies.
Where people get burned
The node errors out on unsupported generation/task/source/resolution combinations rather than guessing - that's a feature, but it means you must pick a real pairing (Wan 2.1 I2V requires 480P or 720P, for instance). And remember the boundary caveat: if you're on A14B and skip the expert switch, you'll get half a model's output and blame the wrong node. One more: the "Animate Optimized" lane reproduces Comfy's first-party recipe (LCM + simple schedule, 6 steps, CFG 1.0, shift 5.0) and expects the matching step-distilled LoRA - it's not a free lunch.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| generation | COMBO | 3 options: Wan 2.1, Wan 2.2, Wan Animate 2 | |
| task | COMBO | 13 options: T2V, I2V, TI2V, T2V A14B, I2V A14B, FLF2V, +7 | |
| source | COMBO | 3 options: ComfyUI native, Official native, Diffusers reference | |
| resolution | COMBO | 3 options: None, 480P, 720P | |
| steps | INT | 501–10000 | — |
| strict_source | BOOLEAN | false | — |
| start_step | INT | 00–9999 | — |
| end_step | INT | -1-1–10000 | — |
| already_shifted | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| boundary_step | INT | — |
| schedule_info | STRING | — |