Icy DualCLIPLoader
Two text encoders are better than one
- CLIP
IcyDualCLIPLoader is the ComfyUI-IcyHider Icy wrapper of core DualCLIPLoader - same node, renamed so the privacy extension can hide its widgets. If you've read any other article in this pack, the framing is identical: install the pack or use the core node, the functionality doesn't change.
The node's job is to load two text encoders at once. It exists because SDXL, Flux, SD3 and friends condition on pairs of text encoders, not one: SDXL uses CLIP-L plus OpenCLIP-G, Flux uses CLIP-L plus the big T5-XXL, SD3/HiDream/etc. have their own combos. The KB's concepts doc explains why this matters - the two encoders process your prompt in parallel and their outputs are combined, which is a big part of why these models understand language the way they do.
Inputs
- clip_name1 / clip_name2 (enums) - two text-encoder files, picked from
ComfyUI/models/text_encoders/. Order matters less than picking the right pair; ComfyUI's dropdown lists whatever you've dropped in there. - type (enum) - the architecture selector, and the input that actually decides how the two files get wired together:
sdxl,sd3,flux,hunyuan_video,hidream,hunyuan_image,hunyuan_video_15,kandinsky5,kandinsky5_image,ltxv,newbie,ace. Pick the one matching your base model. Get this wrong and the loader either errors or produces conditioning the model can't use. - device (optional enum,
default/cpu) - force the encoder onto CPU. Genuinely useful on low-VRAM rigs where the text encoder is the memory bottleneck; the KB's encoder-budget section makes the case that the encoder is often the component that decides whether a model fits at all. It'll be slower, but it frees VRAM for the diffusion model.
Output: a single CLIP object, wired into your CLIPTextEncode (or its Flux/Icy equivalent).
Which files do you need?
- SDXL:
clip_l.safetensors+clip_g.safetensors, typesdxl. - Flux:
clip_l.safetensors+t5xxl_fp8_e4m3fn.safetensors(or the fp16 version if you have the VRAM), typeflux. - SD3 / others: check your model's requirements - the dropdown enumerates the supported combos.
These files live in models/text_encoders/ and ComfyUI scans them at startup.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider
Restart, or use ComfyUI Manager (search "IcyHider"). No pip dependencies; the encoder files themselves are separate downloads.
Common issues
- Missing node in shared workflows - install the pack or swap in core
DualCLIPLoader. - "Wrong type" or garbled output. You picked a
typethat doesn't match the files you loaded. A Flux model with typesdxlwon't work, and neither will a mismatched encoder pair. - T5 missing. Flux workflows that error on a missing text encoder usually just haven't downloaded
t5xxlintomodels/text_encoders. The loader is telling the truth - the file isn't there.
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 | — |