đź’€Prepack Model DualCLIP
Load UNet + two CLIPs + VAE in one node — the all-in-one model loader
- model
- clip
- vae
The modern ComfyUI model stack is rarely one file. SDXL wants a UNet plus two text encoders. SD3 and Flux do the same. Hunyuan Video adds a third encoder into the mix. So the canonical graph opens with three or four separate loader nodes - UNetLoader, DualCLIPLoader, VAELoader - each with its own dropdowns and wires. The đź’€Prepack Model DualCLIP node collapses that opening sequence into a single node: pick a diffusion model, a VAE, two CLIP encoders, and a type, and it hands you model, clip, and vae all at once.
It's the pack's flagship convenience node - if you're loading SDXL, SD3, Flux, or Hunyuan Video, this replaces the loader cluster at the top of your workflow with one box.
How it works
The loaders are all still ComfyUI's own under the hood - comfy.sd.load_diffusion_model for the UNet, comfy.sd.load_clip for the encoder pair, and the standard VAELoader for the VAE - this node just sequences them and packages the results. The dropdowns populate from your existing model folders:
unet_name- from yourdiffusion_modelsfolder (the UNet/DiT checkpoints).vae_name- from yourvaefolder.clip_name1/clip_name2- the two text encoders, from yourtext_encodersfolder.type- the CLIP configuration:sdxl,sd3,flux, orhunyuan_video. This tells the loader how to interpret the encoder pair.
The weight_dtype dropdown is where the memory tuning lives: default, plus fp8_e4m3fn, fp8_e4m3fn_fast, and fp8_e5m2 for the FP8 quantization options. FP8 roughly halves VRAM for the model weights at a small quality cost - it's the classic "make Flux fit on your card" lever, and fp8_e4m3fn_fast is the popular middle ground for speed.
The three outputs are the whole opening package: model (MODEL, for the sampler), clip (CLIP, for text encoding), and vae (VAE, for encode/decode). One note from the tooltips: the VAE output "can be None if loading fails" - the node warns and continues rather than hard-failing, which is friendlier but means you should keep an eye on the console.
Where people get burned
The type must match your encoders. Flux wants flux; SD3 wants sd3; SDXL wants sdxl. Mixing, say, an SDXL pair with the flux type produces garbage text embeddings that show up as scrambled prompt handling - the node won't stop you. And the two CLIP slots are both from the same text_encoders folder, so it's easy to pick two that don't pair (e.g. two of the same encoder); check the model's docs for what its encoder pair actually is.
FP8 also has an honest caveat: the fp8_e5m2 option is lower precision than fp8_e4m3fn and shows more quality loss. If it fits, fp8_e4m3fn/_fast is the one you want.
Installing it
It ships in the Prepack pack:
cd ComfyUI/custom_nodes
git clone https://github.com/S4MUEL-404/ComfyUI-Prepack.git
pip install -r ComfyUI-Prepack/requirements.txt
Or search "Prepack" in ComfyUI Manager. Dependencies: PyTorch, NumPy, Pillow. Restart, find it under đź’€Prepack. No downloads here - but you do need the actual model files in your diffusion_models, text_encoders, and vae folders, exactly as the official loaders would expect.
If a dropdown is empty, the folder is empty or misnamed - the node reads whatever ComfyUI's own file lists see. If you get "Failed to load CLIP models", double-check both encoder names and that the type matches them.
Inputs (7)
| 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. | |
| vae_name | COMBO | The VAE to load. | |
| clip_name1 | COMBO | The name of the first CLIP model to load. | |
| clip_name2 | COMBO | The name of the second CLIP model to load. | |
| type | COMBO | The type of CLIP configuration to use. | |
| deviceopt | COMBO | Device override for CLIP loading/offloading. Use 'cpu' to force CPU; 'default' lets Comfy manage devices. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | The loaded diffusion model (UNET) used for denoising latents. |
| clip | CLIP | The loaded dual CLIP model used for encoding text prompts. |
| vae | VAE | The loaded VAE for encoding/decoding latents (can be None if loading fails). |