Multi-Model Loader
UNET, dual CLIP, VAE and an optional LoRA from one node
- MODEL
- CLIP
- VAE
Loading a model like Flux the "correct" way in ComfyUI usually means four separate nodes: a UNET loader, a dual-CLIP loader, a VAE loader, and a LoRA loader chained after all three. Multi-Model Loader is that whole chain collapsed into one node - set the four model names, the weight dtype, the CLIP type, and optionally a LoRA with its own strengths, and you get a ready-to-sample model, CLIP, and VAE out. It's the same instinct behind ComfyUI's well-known "Efficiency Nodes" pack: fewer boxes, less wire spaghetti, especially in workflows you rebuild often.
One thing worth knowing up front, because the README frames this pack around Flux: this loader isn't Flux-only. The clip_type dropdown covers SDXL, SD3, Flux, Hunyuan Video and HiDream, so it's a general dual-CLIP-architecture loader that happens to live in a Flux-heavy node pack, not a Flux-specific tool.
What matters
The required list is long because it's doing the job of four nodes, but only a handful of these you'll actually think about each time:
unet_name,clip_name1,clip_name2,vae_name- your model files, pulled from whatever's installed.clip_typeneeds to match what the model architecture actually expects (Flux wants CLIP-L + T5-XXL, for instance) - set it wrong and loading either fails outright or produces garbage.weight_dtype-default,fp8_e4m3fn,fp8_e4m3fn_fast, orfp8_e5m2. This is the precision the diffusion weights load at. fp8 roughly halves VRAM against full precision with very little visible quality loss, and native fp8 compute on 40-series cards (the_fastvariant) keeps speed consistent even with a LoRA loaded - unlike GGUF quantization, which can slow down noticeably once you stack a LoRA on top.lora_name- picknoneto skip loading a LoRA entirely (fastest, no extra VRAM). Pick an actual file and it loads and applies automatically.strength_model/strength_clip(default 1, range −100 to 100) - how hard the LoRA pulls. There's no universal safe number here; what counts as "normal" strength varies a lot by base architecture (older SDXL-era advice hovers around 0.5–0.8, while some newer architectures run LoRAs at 1.0 or higher without issue), so check what the LoRA's own page recommends rather than assuming a default is right.bypass_lora- turns LoRA application off without unloading it. This is the one to reach for when A/B-testing with and without a LoRA: flippinglora_nametononeand back forces a reload every time, whilebypass_lorajust toggles application on an already-loaded LoRA, which is much faster to flip back and forth.clip_device-defaultorcpu, for offloading CLIP off the GPU if you're VRAM-constrained.
Three outputs: MODEL, CLIP, VAE - wire straight into your conditioning and sampler as usual.
Installing it
Search ComfyUI-TkNodes in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/TensorKaze/ComfyUI-TkNodes
cd ComfyUI-TkNodes
pip install -r requirements.txt
Restart ComfyUI. No dependencies specific to this node, but obviously you need the actual model files - UNET, both CLIP encoders, VAE, and any LoRA you want - already downloaded into their usual ComfyUI model folders. This node doesn't fetch anything; it only loads what's already on disk.
Common issues
Dropdowns are empty. Same story as any ComfyUI loader - the enum lists are populated from your local model folders. If unet_name or a CLIP dropdown is empty, you haven't got a file in the right directory yet.
Wrong output, or a load error. Almost always a clip_type mismatch. If you loaded a Flux UNET but left clip_type on sdxl, you'll get an error or nonsense output - match the type to the architecture you're actually loading.
LoRA seems to do nothing. Check bypass_lora isn't accidentally left on, and that lora_name isn't set to none. Also worth remembering GGUF-quantized checkpoints (not what weight_dtype here covers, but relevant if you're chaining a GGUF loader elsewhere) apply LoRAs slower because each layer has to be dequantized, patched, and requantized - that's a general Flux/GGUF quirk, not something this node introduces.
No real community footprint on this pack - it's a small personal toolkit, not something with a following. But this particular node is a solid, honest labor-saver: it's four loaders' worth of setup you'd otherwise rebuild in every workflow, in one place.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | The name of the diffusion model (UNET) to load. | |
| weight_dtype | COMBO | The weight dtype for the diffusion model. | |
| clip_name1 | COMBO | The name of the first CLIP text encoder to load. | |
| clip_name2 | COMBO | The name of the second CLIP text encoder to load. | |
| clip_type | COMBO | The type of CLIP configuration (e.g., flux: clip-l, t5). | |
| clip_device | COMBO | Device for loading CLIP models. | |
| vae_name | COMBO | The name of the VAE model to load. | |
| lora_name | COMBO | The name of the LoRA to load (select 'none' to skip loading). | |
| strength_model | FLOAT | 1.00-100–100 | Strength of the LoRA applied to the diffusion model. |
| strength_clip | FLOAT | 1.00-100–100 | Strength of the LoRA applied to the CLIP model. |
| bypass_lora | BOOLEAN | false | Bypass LoRA application to MODEL and CLIP if yes, but keep it loaded. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | The diffusion model (modified by LoRA if loaded and not bypassed). |
| CLIP | CLIP | The CLIP model (modified by LoRA if loaded and not bypassed). |
| VAE | VAE | The VAE model used for encoding/decoding latents. |