π₯ DualCLIP Download
Load two text encoders for Flux, SD3 and friends
- CLIP
Flux, SD3, HunyuanVideo and a pile of other modern models don't ship a text encoder inside the checkpoint - they expect you to load two of them separately and glue them together. Classic example: Flux wants clip_l plus a T5-XXL. This node is SDVN's version of the DualCLIP loader, with the nice twist that it downloads the encoder files for you if they're missing, and it makes you declare which architecture you're loading for so it wires them up correctly.
What it's actually doing
The text encoder is a separate network that turns your prompt into the vectors the diffusion model reads. Older models used one. The Flux/SD3 generation uses two - typically a small CLIP for the punchy keyword sense and a big T5 for the "actually read the sentence" part - and they have to be combined in the exact way that architecture expects. Get the pairing or the mode wrong and you get gibberish, not a warning. That's the whole reason a dedicated dual loader exists instead of you hand-wiring two encoders and hoping.
The inputs and outputs that matter
CLIP_name1andCLIP_name2- the two encoder files, each from a dropdown of curated options (the clip_l / clip_g variants, the T5 builds, the LLM encoders). For Flux the standard pairing isclip_l+ at5xxl.type- and this is the one people skip at their peril. It's a dropdown of architectures:flux,sd3,sdxl,hunyuan_video,hidream,ltxv, and more. This tells ComfyUI how to fuse the two encoders. Set it to match your diffusion model, not to whatever was left there.device(optional) -defaultorcpu. Push the encoders onto CPU if you're scraping the bottom of your VRAM barrel and need the GPU headroom for the diffusion model itself. It's slower but it frees memory.
Output is a single CLIP that plugs into your text-encode node like any other.
Installing it
Via ComfyUI Manager, search SDVN_Comfy_node and install. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/StableDiffusionVN/SDVN_Comfy_node
Then, from the ComfyUI root, pip install -r custom_nodes/SDVN_Comfy_node/requirements.txt and restart. Windows and macOS users need to install aria2c manually - it's what powers the auto-download when a selected encoder isn't on disk.
Where people get burned
Mismatched type. This is the number-one silent failure. If you load Flux encoders but leave type on sdxl, your generations come out as noise and there's no error to tell you why. Match type to your model first, debug second.
The T5 is the VRAM hog. t5xxl_fp16 is a big file. If you're on a 12β16GB card and things are tight, grab the t5xxl_fp8_e4m3fn build instead - fp8 is half the size of fp16 with quality loss that's basically invisible for inference. The community consensus is genuinely just "use fp8 unless fp16 comfortably fits." Between that and the cpu device option, you've got two levers before you're forced onto GGUF encoders.
Missing file, no download. If an encoder won't fetch, it's almost always the missing aria2c on Windows/macOS, or a gated Hugging Face repo that needs a token. Watch the console - the node prints what it's pulling.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| CLIP_name1 | COMBO | 22 options: clip_l.safetensors, t5xxl_fp16.safetensors, t5xxl_fp8_e4m3fn.safetensors, mistral_3_small_flux2_fp8.safetensors, flux-2_qwen_3_4b.safetensors, flux-2_qwen_3_4b_fp4.safetensors, +16 | |
| CLIP_name2 | COMBO | 22 options: clip_l.safetensors, t5xxl_fp16.safetensors, t5xxl_fp8_e4m3fn.safetensors, mistral_3_small_flux2_fp8.safetensors, flux-2_qwen_3_4b.safetensors, flux-2_qwen_3_4b_fp4.safetensors, +16 | |
| type | COMBO | 12 options: sdxl, sd3, flux, hunyuan_video, hidream, hunyuan_image, +6 | |
| deviceopt | COMBO | default | 2 options: default, cpu |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | β |