Sampling Plan (Wan 2.2)
The node that stops you guessing on Wan 2.2 split-expert sampling
- model
- step_budget
- sigma_override
- plan
- acceleration_state
If you've hand-built a Wan 2.2 workflow, you know the ritual: two KSamplers - one for the high-noise expert, one for the low-noise expert - a shift you copied from someone's screenshot, and a boundary sigma you've never actually verified. Sampling Plan (Wan 2.2) is the node that retires that ritual. It's the brain of boobkake22's Sampling Planner pack, and it turns a handful of choices into one coordinated, validated plan: the shift, the high/low step split, and the exact sigma curve your two samplers will run.
Why Wan 2.2 needs a planner in the first place
Wan 2.2 is the last open Wan (Alibaba froze the numbered series there), and it's a 27B MoE that splits denoising between two experts: the high-noise model owns motion and composition, the low-noise model owns detail. Every real workflow is two schedules stitched together at a boundary sigma - 0.875 for T2V, 0.900 for I2V - and the community's standard trick is speed LoRAs (LightX2V's 4-step pair, mostly) on one or both stages. The whole game is keeping shift, step split, and sigma curves in agreement across that boundary. Miss by one knob and you get the classic "speed LoRA kills everything good" degradation the community's been warning about since launch.
That coordination is exactly what this node computes for you.
What it actually does
You feed it six things and it does the math, then validates every result:
- model - connect either Wan expert; it's used only to calculate the real sigma schedule from your installed scheduler
- task - T2V or I2V, which selects the official expert boundary
- acceleration - None, High only, Low only, or High + Low (which stages get a compatible speed LoRA)
- step_budget - a
SAMPLING_STEP_BUDGETfrom the pack's Step Budget node - scheduler - the live list from your installed core KSampler
- priority - Balanced, 50/50 Split, Motion / Structure, or Detail / Refinement
- sigma_override (optional) - a side-channel from Progressive 50/50 Sigma Control, deliberately kept out of the required plan chain
The Auto logic picks an evidence-backed profile: no acceleration gets Wan's native shift (12 T2V / 5 I2V), acceleration with 4 or fewer accelerated steps gets the LightX2V 4-step profile (shift 5, 50/50 split), and anything bigger gets the ComfyUI/YAW profile (shift 8). Then it validates the curve - finite, descending sigmas, terminal zero, usable stage lengths, a shared handoff - and if your scheduler can't cross the boundary at the anchor shift, it adjusts shift within a safe range or builds a validated piecewise curve instead of emitting garbage.
Outputs are the two things everything else in the pack hangs off: plan (WAN22_SAMPLING_PLAN) and acceleration_state (SAMPLING_ACCELERATION_STATE). The plan feeds any breakout node (KSampler, MoE, Sigma, Model Pair); the acceleration state feeds Acceleration Model Pair.
The two knobs a beginner actually sets
Don't sweat the whole form. Set task right for your generation type, and decide acceleration honestly - if you're not running speed LoRAs, leave it on None and let the planner give you the full-quality native profile. Step budget and priority are worth a play after that; Balanced is a sane default for both.
Install
Via ComfyUI Manager (search Sampling Planner), or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/boobkake22/ComfyUI-SamplingPlanner
Restart ComfyUI. No model downloads, no pip requirements - it's pure Python and computes everything from your existing KSampler's scheduler. The nodes appear under sampling / Sampling Planner / Wan 2.2.
Where people get burned
- The model input is only for sigma math - it doesn't need to be the accelerated one, and nothing you connect changes generation speed.
- Some schedulers (looking at you,
bong_tangent) apply their own shift and ignore the plan's. If shift seems to do nothing, that's the scheduler, not this node. Keep the scheduler identical across the plan and both samplers - that's what the pack's Scheduler Selector helper is for. - If you're using LightX2V acceleration, use the matched rank-64 LoRA pair at strength 1.0. Don't feed a full distilled checkpoint through a LoRA loader; the planner can validate your sigma curve but it can't fix an incompatible model pair.
The plan node is the one I'd reach for first in this pack - everything else is a breakout that reads its output. If your two-KSampler Wan 2.2 workflow has ever fought you on shift and split, this is the upgrade.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | A Wan 2.2 model used only to calculate the sigma schedule. Connect either the high- or low-noise model. | |
| task | COMBO | T2V | Selects the official Wan 2.2 expert boundary. |
| acceleration | COMBO | High + Low | Which expert stages receive a compatible acceleration LoRA or distilled model. Single-stage modes reserve more steps for the unaccelerated stage. |
| step_budget | SAMPLING_STEP_BUDGET | Accelerated/full range-equivalent budgets from Step Budget. | |
| scheduler | COMBO | simple | Runtime scheduler list accepted by the installed core KSampler. Use Scheduler Selector to share this choice across sampler branches. |
| priority | COMBO | Balanced | Balanced uses the profile allocation. Motion / Structure allocates more of the budget above the expert boundary. Detail / Refinement allocates more below it. 50/50 Split uses equal high/low steps regardless of the profile. |
| sigma_overrideopt | SAMPLING_SIGMA_BUDGET_OVERRIDE | Optional side-channel override. This is intentionally not part of the required plan chain, so a muted group can disable it without severing the plan wire. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| plan | WAN22_SAMPLING_PLAN | — |
| acceleration_state | SAMPLING_ACCELERATION_STATE | — |