Nodes/ComfyUI-Sigmax/Wan Sigma Scheduler
ComfyUI Node

Wan Sigma Scheduler

Every Wan schedule in one node, experts on you

By rookiestar28·Created 2 months ago·Updated 24 days ago· 10
Wan Sigma Scheduler
    • sigmas
    • boundary_step
    • schedule_info
    generation
    task
    source
    resolution
    steps50
    strict_sourcefalse
    start_step0
    end_step-1
    already_shiftedfalse

    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.

    CategorySigmax/scheduling

    Inputs (9)

    NameTypeDefaultDescription
    generationCOMBO3 options: Wan 2.1, Wan 2.2, Wan Animate 2
    taskCOMBO13 options: T2V, I2V, TI2V, T2V A14B, I2V A14B, FLF2V, +7
    sourceCOMBO3 options: ComfyUI native, Official native, Diffusers reference
    resolutionCOMBO3 options: None, 480P, 720P
    stepsINT501–10000
    strict_sourceBOOLEANfalse
    start_stepINT00–9999
    end_stepINT-1-1–10000
    already_shiftedBOOLEANfalse

    Outputs (3)

    NameTypeDescription
    sigmasSIGMAS
    boundary_stepINT
    schedule_infoSTRING