Nodes/ComfyCollectorNodes/LoRA Pair Loader (CCN)
ComfyUI Node

LoRA Pair Loader (CCN)

LoRA Pair Loader (CCN)

By valkymaera·Created 4 months ago·Updated 10 days ago· 1
LoRA Pair Loader (CCN)
  • model_high
  • model_low
  • lanes
  • model_high
  • model_low
  • lora_lanes
  • info

Here's the thing about Wan 2.2 that breaks people's LoRA habits: it isn't one model, it's two. Alibaba's 14B video family routes denoising through a high-noise expert and a low-noise expert, and each has its own checkpoint - and, in the fine-tune ecosystem, its own LoRA file. Most Wan LoRA releases ship as a _high_noise / _low_noise pair, one file per expert. Loading them properly means patching model A with file A and model B with file B, which the stock loaders don't understand at all. LoRA Pair Loader (CCN) is built exactly for that.

You feed it model_high and model_low (the two experts, however you loaded them) plus a stack of rows, and each row holds one LoRA selection with two weights: H for the high-noise expert and L for the low-noise one. The clever part is partner resolution: select a file named style_high_noise.safetensors and the node looks for its low_noise counterpart by conservative filename-token swapping - high_noise↔low_noise and a long table of variants (_high/_low, -h/-l, and so on) - but only treats a swap as real if the swapped filename actually exists in your LoRA folder. No guessing, no false positives. If a pair is found, the high file patches the high expert at H and the low file patches the low expert at L. If no partner exists (single-file 2.1-era or single-file 2.2 LoRAs), the selected file applies to both experts at their respective weights. A weight of 0 skips that side, which is also your manual escape hatch for exotic routing.

Two output modes matter, and they're mutually exclusive per row:

  • Baked rows (default): patch the models at load, exactly like a normal LoRA loader. The model_high / model_low outputs are your patched experts.
  • Lane rows: don't patch anything - instead they're emitted on the lora_lanes output for MoE Sampler Dual (CCN) to schedule over the run, with an optional per-row curve. This is where the pair loader becomes a scheduling tool rather than a static one: a speed or style LoRA that should ramp in only after the high-noise phase can ride a curve instead of being baked in flat.

Application is model-only (no text-encoder patching), matching how Wan LoRAs ship and how core LoraLoaderModelOnly behaves. Patches are additive, so row order doesn't affect the result. Outputs: model_high, model_low, lora_lanes, and an info string describing what each row resolved to.

Install

This one ships in the pack's WIP folder, so use git clone rather than assuming a registry build:

cd ComfyUI/custom_nodes
git clone https://github.com/valkymaera/ComfyCollectorNodes

Restart ComfyUI; find it in the "CCN" category as "LoRA Pair Loader (CCN)". No extra Python deps beyond stock ComfyUI. No model downloads (you bring your own Wan checkpoints and LoRA pairs), MIT license. Note it's labeled WIP in the repo - expect occasional rough edges and API changes.

Common issues

The partner-resolution is the thing to verify first: check the info output, which tells you whether each row resolved to a pair or fell back to single-file-both-experts. If your filenames use a convention the token table doesn't know (style_v2_hi.safetensors and style_v2_lo.safetensors won't match), the pair silently won't resolve - rename to _high/_low or use two rows with opposite zero weights to force it. And remember the boundary itself: which expert gets which file matters at the boundary sigma, and that split is configurable - the community has established the official Wan boundary values (0.875 t2v / 0.900 i2v), but the ideal split for your scheduler and shift is genuinely not a settled question, so don't over-trust a preset.

CategoryCCN

Inputs (3)

NameTypeDefaultDescription
model_highMODELHigh-noise expert model.
model_lowMODELLow-noise expert model.
lanesoptCCN_LORA_LANESChain lanes from another LoRA Pair Loader; prepended to this node's lane rows.

Outputs (4)

NameTypeDescription
model_highMODEL
model_lowMODEL
lora_lanesCCN_LORA_LANES
infoSTRING