WanVideo Scheduler
Build the Wan noise schedule outside the sampler
- sigmas
- sigmas
- steps
- shift
- scheduler
- start_step
- end_step
If you've ever wanted to see or tweak the actual noise schedule Wan is going to denoise along - instead of just picking a scheduler name in the sampler and hoping - this is the node for that. WanVideoScheduler pulls the scheduling decision out of Kijai's giant WanVideoSampler and makes it its own box. You set the scheduler, steps, and shift here, and it hands the sampler a ready-made set of sigmas.
Why bother splitting it out? Because the sampler node in the WanVideoWrapper has grown into a wall of inputs, and because once the schedule is its own node you can do things you couldn't before: preview the sigma curve, feed in a hand-crafted schedule from a res4lyf/ClownsharkBatwing node, or reuse one schedule across a couple of sampler passes without re-typing the settings each time.
How it works
A flow-matching model like Wan doesn't denoise on the same fixed timestep grid as the old SD-era samplers. It walks a continuous set of sigma values from noisy to clean, and the scheduler decides the spacing of those steps. This node computes that sigma list from your settings and passes it downstream. The two knobs that actually change your output are the scheduler choice and shift; everything else is bookkeeping.
The inputs and outputs that matter
scheduler(defaultunipc) - 21 options, and they range from the safe defaults to some very Wan-specific ones.unipc,euler,dpm++, and their/betavariants are the general-purpose picks. Then there are the distilled/specialty ones -flowmatch_causvid,flowmatch_distill,lcm,longcat_distill_euler,res_multistep- which exist to match specific speed-LoRA or model setups. If you're running a CausVid or lightx2v graph, use the scheduler that matches it rather than fightingunipc.shift(default 5) - the flow-matching timestep shift, and the one worth experimenting with. Higher shift spends more of the schedule up in the high-noise region where motion and composition get decided; lower shift pushes effort toward detail. 5 is a sane Wan default.steps(default 30) - full-quality territory. On a speed-LoRA graph you'll drop this to 4–8.start_step/end_step- slice the schedule if you're doing multi-stage sampling; leave them at 0 and -1 otherwise.
Optionally, sigmas lets you inject a custom schedule from another node, and enhance_hf toggles a high-frequency tweak.
On the output side it emits the sigmas plus passthroughs of steps, shift, scheduler, start_step, and end_step - so you can wire them straight into the matching sampler inputs and keep everything consistent.
How to install it
It ships in Kijai's WanVideoWrapper, the de-facto third-party way to run Wan in ComfyUI. ComfyUI Manager: search ComfyUI-WanVideoWrapper, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt
then restart. The wrapper is the code, not the weights - you still need the Wan diffusion model, its VAE, and a T5 text encoder (Kijai's fp8 packs at huggingface.co/Kijai/WanVideo_comfy are the usual download) in your models folders before any of this runs.
Common issues & troubleshooting
You're overthinking it. For most people the scheduler dropdown inside the sampler is enough. Reach for this node when you specifically want to preview, reuse, or override the schedule - not by default.
Scheduler/model mismatch. Pointing a distilled scheduler (flowmatch_causvid, lcm) at a full-quality run, or unipc at a CausVid graph, gives you mush or blur. Match the scheduler to how the model was set up.
Newer than you. There's a v2 of this node that bundles all these outputs into a single connection; if you're building fresh, WanVideoSchedulerv2 is tidier. This one's still perfectly valid, just noodly.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| scheduler | COMBO | unipc | 21 options: unipc, unipc/beta, dpm++, dpm++/beta, dpm++_sde, dpm++_sde/beta, +15 |
| steps | INT | 30 | Number of steps for the scheduler |
| shift | FLOAT | 5.000–1000 | — |
| start_step | INT | 0 | Starting step for the scheduler |
| end_step | INT | -1 | Ending step for the scheduler |
| sigmasopt | SIGMAS | — | |
| enhance_hfopt | BOOLEAN | false | Enhanced high-frequency denoising schedule |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| steps | INT | — |
| shift | FLOAT | — |
| scheduler | unipc,unipc/beta,dpm++,dpm++/beta,dpm++_sde,dpm++_sde/beta,euler,euler/beta,longcat_distill_euler,deis,lcm,lcm/beta,res_multistep,er_sde,flowmatch_causvid,flowmatch_distill,flowmatch_pusa,multitalk,sa_ode_stable,rcm,vibt_unipc | — |
| start_step | INT | — |
| end_step | INT | — |