Selective LoRA Loader (Wan)
Per-block control for Wan 2.2 LoRAs
- model
- clip
- model
- clip
- info
What it is
Wan 2.2 LoRAs - character LoRAs especially - have a known failure mode in the community: stack more than one or two and quality collapses, or a single LoRA drags in more style and motion baggage than you wanted alongside the identity it's supposed to carry. This node gives you a lever against that: instead of one strength value for the whole LoRA, you get 40 individual toggles and sliders, one per transformer block, so you can keep the blocks doing useful work and mute the ones that aren't.
The pack's author found the same pattern on Wan's sibling architecture, Z-Image - character likeness concentrates in later blocks, style spreads earlier - and the presets here (Late Only, Mid-Late, Skip Early, Mid Only, Early Only) are built for exactly that kind of split. If a Wan character LoRA is fighting your prompt on style or motion, isolating the late blocks and muting the early ones is the first thing worth trying.
How it works
Same underlying idea as every selective loader in this pack: a LoRA's weights are spread across the target model's blocks (40 of them for Wan 2.2), and this node loads the file, then lets you disable or reweight each block's contribution individually before patching it onto your model and CLIP. Connect analysis_json from LoRA Loader + Analyzer and the block checkboxes get color-coded by measured impact, so you're working from data rather than trial and error.
Inputs and outputs that matter
model,clip,lora_name- standard loader inputs.strength- the overall multiplier (-5 to 5) on top of your per-block choices.preset- All Blocks, All Off, Late Only (30–39), Mid-Late (20–39), Skip Early (10–39), Mid Only (15–25), Early Only (0–19), Evens/Odds Only, or Custom for full manual control.block_0throughblock_39, each with a paired_strstrength slider.other_weights/other_weights_str- a catch-all for weights that don't map cleanly to a numbered block; worth checking if disabling blocks isn't producing the change you expect.- Optional
lora_path_opttakes a direct file path, overriding the dropdown - handy chained straight offMusubiWanLoraTrainer's output. Optionalanalysis_jsonenables the impact-colored checkboxes.
Outputs: model, clip, and info - a text summary of what actually got applied.
Installing it
No external training backend needed for this node - it works the moment the pack is installed. ComfyUI Manager (search "Realtime LoRA Trainer") or:
cd ComfyUI/custom_nodes
git clone https://github.com/ShootTheSound/comfyUI-Realtime-Lora
Restart ComfyUI.
Common issues
Not sure which blocks to touch. Don't guess across 40 toggles - run LoRA Loader + Analyzer first and wire its analysis_json output into this node. The checkboxes will color themselves by measured weight magnitude so you can see, at a glance, which blocks the LoRA actually did anything with.
Motion looks flat after disabling early blocks. Early blocks tend to carry composition and motion information on Wan; if you're chasing a clean identity and losing the motion quality that made you pick Wan in the first place, back off the preset and re-enable a few early blocks at reduced strength rather than fully muting them.
LoRA feels weaker after selective loading. Expected side effect of removing blocks - raise strength or the surviving blocks' individual sliders to compensate rather than assuming the base LoRA was undertrained.
Multi-LoRA stacking still collapses. Selective loading helps but doesn't fully solve Wan's known multi-LoRA quality collapse; keeping each LoRA's contribution to its most-relevant blocks reduces the interaction surface, but stacking more than two or three Wan LoRAs is still a genuine limit of the model, not something this node can fully engineer around.
Inputs (89)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_name | COMBO | Wan 2.2 LoRA file to load | |
| strength | FLOAT | 1.00-5–5 | Overall LoRA strength |
| preset | COMBO | All Blocks | Quick preset selection. Choose 'Custom' to use individual toggles below. |
| block_0 | BOOLEAN | true | — |
| block_0_str | FLOAT | 1.00-5–5 | — |
| block_1 | BOOLEAN | true | — |
| block_1_str | FLOAT | 1.00-5–5 | — |
| block_2 | BOOLEAN | true | — |
| block_2_str | FLOAT | 1.00-5–5 | — |
| block_3 | BOOLEAN | true | — |
| block_3_str | FLOAT | 1.00-5–5 | — |
| block_4 | BOOLEAN | true | — |
| block_4_str | FLOAT | 1.00-5–5 | — |
| block_5 | BOOLEAN | true | — |
| block_5_str | FLOAT | 1.00-5–5 | — |
| block_6 | BOOLEAN | true | — |
| block_6_str | FLOAT | 1.00-5–5 | — |
| block_7 | BOOLEAN | true | — |
| block_7_str | FLOAT | 1.00-5–5 | — |
| block_8 | BOOLEAN | true | — |
| block_8_str | FLOAT | 1.00-5–5 | — |
| block_9 | BOOLEAN | true | — |
| block_9_str | FLOAT | 1.00-5–5 | — |
| block_10 | BOOLEAN | true | — |
| block_10_str | FLOAT | 1.00-5–5 | — |
| block_11 | BOOLEAN | true | — |
| block_11_str | FLOAT | 1.00-5–5 | — |
| block_12 | BOOLEAN | true | — |
| block_12_str | FLOAT | 1.00-5–5 | — |
| block_13 | BOOLEAN | true | — |
| block_13_str | FLOAT | 1.00-5–5 | — |
| block_14 | BOOLEAN | true | — |
| block_14_str | FLOAT | 1.00-5–5 | — |
| block_15 | BOOLEAN | true | — |
| block_15_str | FLOAT | 1.00-5–5 | — |
| block_16 | BOOLEAN | true | — |
| block_16_str | FLOAT | 1.00-5–5 | — |
| block_17 | BOOLEAN | true | — |
| block_17_str | FLOAT | 1.00-5–5 | — |
| block_18 | BOOLEAN | true | — |
| block_18_str | FLOAT | 1.00-5–5 | — |
| block_19 | BOOLEAN | true | — |
| block_19_str | FLOAT | 1.00-5–5 | — |
| block_20 | BOOLEAN | true | — |
| block_20_str | FLOAT | 1.00-5–5 | — |
| block_21 | BOOLEAN | true | — |
| block_21_str | FLOAT | 1.00-5–5 | — |
| block_22 | BOOLEAN | true | — |
| block_22_str | FLOAT | 1.00-5–5 | — |
| block_23 | BOOLEAN | true | — |
| block_23_str | FLOAT | 1.00-5–5 | — |
| block_24 | BOOLEAN | true | — |
| block_24_str | FLOAT | 1.00-5–5 | — |
| block_25 | BOOLEAN | true | — |
| block_25_str | FLOAT | 1.00-5–5 | — |
| block_26 | BOOLEAN | true | — |
| block_26_str | FLOAT | 1.00-5–5 | — |
| block_27 | BOOLEAN | true | — |
| block_27_str | FLOAT | 1.00-5–5 | — |
| block_28 | BOOLEAN | true | — |
| block_28_str | FLOAT | 1.00-5–5 | — |
| block_29 | BOOLEAN | true | — |
| block_29_str | FLOAT | 1.00-5–5 | — |
| block_30 | BOOLEAN | true | — |
| block_30_str | FLOAT | 1.00-5–5 | — |
| block_31 | BOOLEAN | true | — |
| block_31_str | FLOAT | 1.00-5–5 | — |
| block_32 | BOOLEAN | true | — |
| block_32_str | FLOAT | 1.00-5–5 | — |
| block_33 | BOOLEAN | true | — |
| block_33_str | FLOAT | 1.00-5–5 | — |
| block_34 | BOOLEAN | true | — |
| block_34_str | FLOAT | 1.00-5–5 | — |
| block_35 | BOOLEAN | true | — |
| block_35_str | FLOAT | 1.00-5–5 | — |
| block_36 | BOOLEAN | true | — |
| block_36_str | FLOAT | 1.00-5–5 | — |
| block_37 | BOOLEAN | true | — |
| block_37_str | FLOAT | 1.00-5–5 | — |
| block_38 | BOOLEAN | true | — |
| block_38_str | FLOAT | 1.00-5–5 | — |
| block_39 | BOOLEAN | true | — |
| block_39_str | FLOAT | 1.00-5–5 | — |
| other_weights | BOOLEAN | true | — |
| other_weights_str | FLOAT | 1.00-5–5 | — |
| lora_path_optopt | STRING | Optional: Connect from LoRA Analyzer to use its selected LoRA | |
| analysis_jsonopt | STRING | Optional: Connect from LoRA Analyzer for impact-colored checkboxes |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| info | STRING | — |