XB-BOX - 📦 模型加载大全V2
Two models, one loader — high-noise and low-noise in a single node
- Model High
- Model Low
- CLIP
- VAE
Some of the most interesting local video setups don't use one model - they use two. A high-noise model for the early, structure-forming steps and a low-noise model for the fine detail at the end. That's the refiner pattern, and XB_ModelLoaderV2 is the one-node way to set up both sides: two UNets (high + low), each with its own LoRA stack, its own SageAttention preset, and its own block-swap setting, plus the shared CLIP and VAE.
It exists because this pattern is fiddly to wire by hand and even fiddlier to keep consistent - two UNET loaders, two sets of LoRA loaders, and the whole time you're praying the refiner switch in the sampler is pointing at the right model. This collapses the loader half into a single node where the "high" and "low" are visually paired and can't be cross-wired by accident.
How it works
Same shell philosophy as V1 - it calls the official UNETLoader, CLIPLoader, VAELoader, and LoraLoader - but split in half:
- High side -
model_high, itsmodel_high_weight_dtype, four LoRA slots (lora_high_1..4with_on/_strength),sage_high, andblockswap_high. - Low side -
model_low,model_low_weight_dtype, four LoRA slots (lora_low_*),sage_low,blockswap_low. - Shared -
clip+clip_type+clip_device, andvae.
Both models get their LoRAs applied, then their attention patched and block-swap applied independently, and everything comes out as four outputs: Model High, Model Low, CLIP, VAE.
The model_type keyword filter works exactly like V1: type a keyword and the dropdowns only show files in matching subfolders. Same folder rule applies - models in a bare directory won't appear.
The inputs that matter
- model_high / model_low - the two UNets. The classic pairing is a full model for high-noise and a distilled or lighter checkpoint for low-noise, but the node doesn't care - it just loads two.
- clip_type - shared, and it has to be right for both models, so pair checkpoints that use the same text encoder family.
- lora_high_1 / lora_low_1 - note the defaults: high slot 1 is
on, low slot 1 ison, and everything else starts off. If your low-noise model gets a LoRA it shouldn't have, check these toggles first. - blockswap_high / blockswap_low - offload N blocks to RAM per model, set independently. You can run the heavy model with 20 blocks swapped and the light model with 0.
Where it fits
The refiner/high-low noise pattern shows up in Wan and video distillation workflows where you run most steps on the full model and finish on a distilled one for speed and detail. If your sampler doesn't natively split high/low denoise, the two models feed a custom sampling setup (like the pack's sampler nodes) that calls one for the first phase and the other for the last. This loader is the plumbing that makes that graph legible.
Install & notes
cd ComfyUI/custom_nodes
git clone https://github.com/WJLUOXIAO/XB_ToolBox.git
# or: ComfyUI Manager → "XB_ToolBox"
No extra deps for the loader. Real caveats: loading two UNets means two sets of weights resident (or being swapped), so this node is a VRAM hog by construction - if you don't actually need two models, V1 is the lighter choice. And SageAttention presets that silently fall back when sageattention isn't installed (the pack logs it but keeps going) apply here twice over: check both sage_high and sage_low are doing what you think.
Inputs (37)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | STRING | — | |
| model_high | COMBO | 1 options: (请先输入模型类型) | |
| model_high_weight_dtype | COMBO | default | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
| lora_high_1 | COMBO | 1 options: 无 | |
| lora_high_1_on | BOOLEAN | true | — |
| lora_high_1_strength | FLOAT | 1.00-100–100 | — |
| sage_high | COMBO | 关闭 | 9 options: 关闭, 自动, 内置模式 A (128x128x32), 内置模式 B (128x64x96), 内置模式 C (128x16x16), 内置模式 D (64x64x16), +3 |
| blockswap_high | INT | 00–200 | — |
| model_low | COMBO | 1 options: (请先输入模型类型) | |
| model_low_weight_dtype | COMBO | default | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
| lora_low_1 | COMBO | 1 options: 无 | |
| lora_low_1_on | BOOLEAN | true | — |
| lora_low_1_strength | FLOAT | 1.00-100–100 | — |
| sage_low | COMBO | 关闭 | 9 options: 关闭, 自动, 内置模式 A (128x128x32), 内置模式 B (128x64x96), 内置模式 C (128x16x16), 内置模式 D (64x64x16), +3 |
| blockswap_low | INT | 00–200 | — |
| clip | COMBO | 1 options: (请先输入模型类型) | |
| clip_type | COMBO | stable_diffusion | 28 options: stable_diffusion, stable_cascade, sd3, stable_audio, mochi, ltxv, +22 |
| clip_device | COMBO | default | 2 options: default, cpu |
| vae | COMBO | 1 options: (请先输入模型类型) | |
| lora_high_2 | COMBO | 1 options: 无 | |
| lora_high_2_on | BOOLEAN | false | — |
| lora_high_2_strength | FLOAT | 1.00-100–100 | — |
| lora_high_3 | COMBO | 1 options: 无 | |
| lora_high_3_on | BOOLEAN | false | — |
| lora_high_3_strength | FLOAT | 1.00-100–100 | — |
| lora_high_4 | COMBO | 1 options: 无 | |
| lora_high_4_on | BOOLEAN | false | — |
| lora_high_4_strength | FLOAT | 1.00-100–100 | — |
| lora_low_2 | COMBO | 1 options: 无 | |
| lora_low_2_on | BOOLEAN | false | — |
| lora_low_2_strength | FLOAT | 1.00-100–100 | — |
| lora_low_3 | COMBO | 1 options: 无 | |
| lora_low_3_on | BOOLEAN | false | — |
| lora_low_3_strength | FLOAT | 1.00-100–100 | — |
| lora_low_4 | COMBO | 1 options: 无 | |
| lora_low_4_on | BOOLEAN | false | — |
| lora_low_4_strength | FLOAT | 1.00-100–100 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| Model High | MODEL | — |
| Model Low | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |