Select Scheduled WAN Model Pair From Conditioning
Schedule WAN's high and low expert models together, per generation
- high_model_bank
- low_model_bank
- positive
- negative
- high_model
- low_model
- positive
- negative
- generation_index
- report
WAN 2.2's architecture splits the model into high and low experts (the "two-expert MoE" - a high-capacity path for detail, a lightweight path that does the grunt work), and a lot of the interesting community fine-tunes come as high/low pairs: LightX2V High and Low, distill versions, the 4-step variants. If you're scheduling those per generation, you need to select both members of the pair together, and that's exactly what IAMCCS_SelectScheduledWanModelPairFromConditioning does.
It's the two-bank version of IAMCCS_SelectScheduledWanModelFromConditioning. Same idea - read the generation index from conditioning metadata, look up prebuilt models from banks, pass conditioning through - but it resolves two banks against the same index and returns both models, so the high/low pairing can never drift out of step.
How it works
It takes a high_model_bank and a low_model_bank (both IAMCCS_WAN_MODEL_BANK type, built once by IAMCCS_BuildScheduledWanModelBank). It extracts the generation index from positive/negative conditioning the same way as the single selector - scanning for _iamccs_generation_index, _iamccs_segment_index, generation_index, or segment_index metadata keys, defaulting to 0 - then looks up the index in each bank independently. Both lookups use the same generation index, so the high and low experts always correspond to the same scheduled generation. Like the single version, a missing fingerprint or model for an index is a hard error rather than a quiet fallback.
Inputs and outputs
Inputs: high_model_bank, low_model_bank, positive, negative (lazy).
Outputs:
high_modelandlow_model- the two selected prebuilt models, ready for your samplerpositive/negative- passed through untouchedgeneration_index- the shared index used for both lookupsreport- shows which always-on and scheduled entries were active on each bank
Installing
Same pack: ComfyUI Manager → search "IAMCCS", or
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart. No extra downloads beyond the WAN models and LoRAs already in your workflow.
Gotchas
Two things to keep straight. First, the two banks are resolved against the same generation index - if you want the high and low schedules to differ (say, high LoRA only on generations 2–4 while low runs everywhere), that distinction lives in how you built each bank, not in this node. Second, the same conditioning-metadata caveat as its single-bank sibling: if nothing upstream stamps a generation index into the conditioning, it reads 0 and the whole loop uses generation 0's pair. The report output tells you what index it actually resolved, and it's worth trusting over your memory.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| high_model_bank | IAMCCS_WAN_MODEL_BANK | — | |
| low_model_bank | IAMCCS_WAN_MODEL_BANK | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| high_model | MODEL | — |
| low_model | MODEL | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| generation_index | INT | — |
| report | STRING | — |