Load CLIP (Dual)
The two-encoder loader behind SDXL and Flux
- CLIP
This is the text-encoder loader behind most of the models you actually run. Load CLIP (Dual) loads two text encoders and fuses them into a single CLIP object, and it's how SDXL, SD3, and Flux all get their prompts encoded. The single-encoder Load CLIP node handles the small models; this one handles the pairs, and the type dropdown is where the whole game is decided.
How it works
Three required inputs, one optional:
clip_name1andclip_name2- two files fromComfyUI/models/text_encoders. These get loaded together and their outputs combined into one conditioning stream.type- the architecture pairing. This is the important one.device(advanced) -defaultorcpu, for offloading one of the encoders when VRAM is tight.
The type dropdown encodes the recipe, and the node's own description spells out the common ones:
sdxl: clip-l + clip-gsd3: clip-l + clip-g, or clip-l + t5, or clip-g + t5flux: clip-l + t5hidream: at least one of t5 or llama (t5 + llama recommended)hunyuan_image: qwen2.5vl 7b + byt5 smallnewbie: gemma-3-4b-it + jina clip v2
The one output, CLIP, feeds the same CLIP Text Encode (Prompt) node you already know, and from there into conditioning and the sampler. Mechanically, ComfyUI loads both encoder files and merges them into a CLIP wrapper that produces combined embeddings - the dual-encoder pattern that SDXL started and Flux made famous.
The Flux case, because it's most of you
Flux runs CLIP-L plus T5-XXL, and the pairing explains a lot of modern prompting advice. CLIP-L is the small image-text alignment model, good at tags. T5-XXL is a proper language model, and it's why Flux understands a whole natural-language sentence where SD 1.5 wanted comma-separated tags. A common practical split that veterans use: keep CLIP-L for short style tags and let T5 carry the long prose prompt. The embeddings that die in this world are the CLIP-vocabulary ones - embeddings trained against a CLIP encoder have nothing to bind to a T5-encoded model, which is why the whole embedding ecosystem collapsed for Flux-era architectures.
Gotchas
- The pair must match the type, and the type must match the model. Loading clip-g as
sdxlwhen your model is Flux won't error so much as quietly misbehave. This is the #1 check when a dual-encoder workflow "works but looks wrong." - Size. T5-XXL is enormous; an fp8 build is the standard way to fit it next to a 12B model. If you're OOMing at load, quantize the encoder, not the sampler.
- SD3 has options. SD3 can run three encoders (see Load CLIP Triple) or any two-encoder subset; Dual with clip-l + t5 is a legitimate lighter config.
- Newer models keep joining the party. The type list grew to include Hidream, Hunyuan Image, and others - if a shared workflow uses a type you've never seen, trust it and match the files it names.
It ships with ComfyUI core. No install, no Manager. Load the two right files, set the type, and the hard part is remembering that the dropdown, not the files, is what makes or breaks it.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_name1 | COMBO | 0 options: | |
| clip_name2 | COMBO | 0 options: | |
| type | COMBO | 12 options: sdxl, sd3, flux, hunyuan_video, hidream, hunyuan_image, +6 | |
| deviceopt | COMBO | 2 options: default, cpu |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | — |