Nodes/Sampling Planner/MoE Sampler Breakout
ComfyUI Node

MoE Sampler Breakout

MoE Breakout for Wan 2.2

By boobkake22·Created 2 months ago·Updated 2 months ago· 0
MoE Sampler Breakout
  • 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_noise inputs
  • 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.

Categorysampling/Sampling Planner/Wan 2.2

Inputs (3)

NameTypeDefaultDescription
planWAN22_SAMPLING_PLAN
model_highMODELWan 2.2 high-noise expert model.
model_lowMODELWan 2.2 low-noise expert model.

Outputs (6)

NameTypeDescription
model_highMODEL
model_lowMODEL
stepsINT
shiftFLOAT
boundaryFLOAT
planWAN22_SAMPLING_PLAN