Nodes/XB_ToolBox/XB-BOX - 🔗 三连 LoRA 加载(仅模型)
ComfyUI Node

XB-BOX - 🔗 三连 LoRA 加载(仅模型)

For the models that don't want the text encoder touched

By wjluoxiao·Created 7 months ago·Updated a day ago· 406
XB-BOX - 🔗 三连 LoRA 加载(仅模型)
  • model
  • MODEL
◄lora_01关闭►
◄strength_011.00►
◄lora_02关闭►
◄strength_021.00►
◄lora_03关闭►
◄strength_031.00►

The version most modern stacks actually want

Here's the thing the phrase "model only" hides: on the current generation of models, it's often the correct choice rather than the compromise. The architecture shift that moved these bases off CLIP and onto a Qwen3-class LLM text encoder also killed text-encoder LoRA training - ai-toolkit ships train_text_encoder: false, and the SDXL-era habit of loading a LoRA into both halves is now mostly pointless ceremony. The LoRA changes the diffusion model. The text encoder isn't trained, so there's nothing in it to load.

Which means if you're stacking on Flux, Z-Image, Klein or a Wan video model, the model-only path is the honest one. XB_TripleLoraLoaderModelOnly gives you three slots with a single MODEL in and a single MODEL out - no CLIP wire to route, no chance of a stale CLIP reference from before the LoRA.

Mechanism

Same idea as its CLIP-touching sibling, minus a leg. Three official Load LoRA (Model Only) instances chained in slot order: model → slot 01 → slot 02 → slot 03 → output. Each slot defaults to 关闭 ("off") and is skipped completely when it's there, so an unused slot costs a boolean check and nothing else. It constructs three separate internal loader instances rather than one shared one, specifically so the official loader's single-entry cache doesn't evict slot 01 when slot 02 loads - which is the difference between three cached LoRAs and re-reading your loras folder from disk on every run.

In Python terms the call underneath is the official load_lora_model_only, which is also why nothing about the math is different from wiring the official node three times.

Inputs and outputs

model is the only required input, and it's a MODEL - so this slots in anywhere, including after a GGUF unet loader or a video model loader where no CLIP is in hand. Then lora_01/02/03, dropdowns of everything in models/loras with the off option on top, and strength_01/02/03 at 1.0 by default, ranging -100 to 100.

One output: MODEL. Wire it into the sampler - or into the next loader, if this node is the middle of a longer chain.

Two practical notes. Slot order is stacking order, and stacking is sequential, so the same three files in a different order can look different when the weights are fighting. And because there's no CLIP input at all, a LoRA that genuinely does train the text encoder - most of your older SDXL and Illustrious character LoRAs - will apply only its UNet half here and quietly lose the rest. That's not a bug, it's the point of the node, but it's a real surprise the first time you migrate an old stack forward and the likeness gets softer.

Install

Part of WJLUOXIAO's XB_ToolBox (141 nodes, aimed at ComfyUI beginners, Apache-2.0). Display name XB-BOX - 🔗 三连 LoRA 加载(仅模型), category XB_ToolBox/原版优化.

cd ComfyUI/custom_nodes
git clone https://github.com/wjluoxiao/XB_ToolBox.git

Then restart. Or let ComfyUI Manager do it - search XB_ToolBox.

No extra dependencies for this node; skip the pack's requirements.txt unless you also want its audio, OCR or local-LLM groups, because that file installs all of that at once and the README is upfront that several groups want packages that need to match your GPU build.

The three things that go wrong

The LoRA list is stale. ComfyUI caches the node definitions the frontend holds, so a file dropped into models/loras mid-session doesn't appear in the dropdown until you refresh the browser or restart.

It looks like no LoRA is applied. All three slots ship on 关闭, which is Chinese for "off", and it's easy to miss in a dropdown that also contains a hundred filenames.

The node isn't in the menu at all. Then look at the console for 🚨 [XB-BOX] FATAL ERROR: XB_ToolBox Loading Failed!. The pack registers every node inside one try block, so a single broken import in an unrelated group - the local LLM nodes want llama-cpp-python, which the README tells you to install by hand - can leave the whole menu empty. The traceback directly above the banner names what's actually missing.

CategoryXB_ToolBox/原版优化

Inputs (7)

NameTypeDefaultDescription
modelMODEL—
lora_01COMBO关闭LORA-01:选择「关闭」= 跳过该槽位
strength_01FLOAT1.00-100–100—
lora_02COMBO关闭LORA-02:选择「关闭」= 跳过该槽位
strength_02FLOAT1.00-100–100—
lora_03COMBO关闭LORA-03:选择「关闭」= 跳过该槽位
strength_03FLOAT1.00-100–100—

Outputs (1)

NameTypeDescription
MODELMODEL—