MoE Sampler Breakout
MoE Breakout for Wan 2.2
- plan
- model_high
- model_low
- model_high
- model_low
- steps
- shift
- boundary
- plan
The standard way to sample Wan 2.2 in ComfyUI is two KSamplers in series - one for the high-noise expert, one for the low-noise expert, stitched at the boundary sigma. MoE Sampler Breakout is for when you'd rather hand that job to a single-node MoE sampler instead. It takes your Sampling Plan and translates it into the exact values a sampler like WanMoeKSampler (from stduhpf's pack, the one that comes up in every "must-have nodes for Wan 2.2" thread) expects: two models, a step count, a shift, and the boundary.
How it works
Wan 2.2's MoE sampler works differently from the two-KSampler approach. It rebuilds a native scheduler curve from steps and shift, then hands off between the experts where that curve crosses the boundary sigma. It never needs to reproduce your plan's exact sigma list - it just needs the right shift so its own curve lands the handoff where your plan intended.
That's the key difference from this pack's KSampler Breakout, which will reject a plan it can't represent exactly. MoE Breakout never rejects: for plans whose curve is a piecewise resample, it applies the best-effort approximation at the planned shift and notes it in the node's summary output instead of erroring out. You'll see that note if you connect an output node to it.
The node also patches both expert models with the plan's shift before handing them over (the same ModelSamplingSD3 patch the other breakouts use), so model shift and sampling curve can't drift apart.
What goes in and out
Inputs are minimal: plan (from Sampling Plan (Wan 2.2)), model_high and model_low (the two Wan experts - typically from Acceleration Model Pair if you're running speed LoRAs).
Outputs, in the order you'll wire them:
- model_high / model_low → the MoE sampler's
model_high_noise/model_low_noiseinputs - steps → the sampler's
steps - shift → the sampler's
sigma_shift - boundary → the sampler's
boundary(0.875 for T2V, 0.900 for I2V - the plan already picked it from your task) - plan → passes the plan through unchanged so you can keep the chain going
Drive the MoE sampler's sampler_name and scheduler from the same Sampler Selector and Scheduler Selector helpers that feed the Sampling Plan, and its internally-generated curve will match what you planned. That consistency matters - mismatched sampler/scheduler between the planner and the MoE node is the usual way this setup drifts.
Install and gotchas
Same as the rest of the pack - ComfyUI Manager (search Sampling Planner) or:
cd ComfyUI/custom_nodes
git clone https://github.com/boobkake22/ComfyUI-SamplingPlanner
then restart. The MoE sampler itself is a separate install (ComfyUI-WanMoeKSampler); this node only produces the values for it. No extra Python dependencies in this pack.
One honest caveat: for piecewise plans the split can land a step away from the plan's allocation, and Step Split Override and priority choices influence this path only through the solved shift. If you need bit-exact control over the high/low step counts, that's what KSampler Breakout or Sigma Breakout are for. If you just want one node doing both experts' sampling and you're fine with "best effort at the planned shift," this is the tidy path.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| plan | WAN22_SAMPLING_PLAN | — | |
| model_high | MODEL | Wan 2.2 high-noise expert model. | |
| model_low | MODEL | Wan 2.2 low-noise expert model. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| model_high | MODEL | — |
| model_low | MODEL | — |
| steps | INT | — |
| shift | FLOAT | — |
| boundary | FLOAT | — |
| plan | WAN22_SAMPLING_PLAN | — |