Triple CLIP Selector
Pick three text encoders, get one reusable clip reference
- clip
- clip_name1
- clip_name2
- clip_name3
Most diffusion models need one text encoder, and this pack's CLIP Selector covers that. Some need two - SDXL-class dual-encoder setups, Flux's T5 + CLIP-L pairing - and that's Dual CLIP Selector. And a smaller set needs three, which is exactly what Triple CLIP Selector is for: pick three CLIP/text-encoder files from dropdowns and get them back as a single IPT-Clip value.
Why would a model need three text encoders? The SD3/SD3.5 family is the canonical case - it conditions on CLIP-L, CLIP-G, and T5-XXL simultaneously, each encoding a different semantic slice of the prompt. Other multi-encoder architectures exist too. If your model needs three CLIPs and you hand-wire them the stock way, that's three separate loaders and three places for the workflow to drift. This node makes the whole triple a single named value that flows through the pack's model-loading machinery.
Inputs and outputs
- clip_name1, clip_name2, clip_name3 - the three dropdowns, populated from the CLIP/text-encoder files ComfyUI sees. Order matters: the encoder slot each fills depends on how the downstream loader consumes the bundle, so keep them consistent.
- sha256_1, sha256_2, sha256_3 (optional, all display-only socketless fields) - cached SHA256 hashes for each selection. These power the right-click View Model Info... action, which uses the selected file's SHA256 as a key to fetch metadata from Civitai. You don't set them by hand; they're populated automatically as a fallback for the info window.
Outputs: clip - the IPT-Clip bundle carrying all three names (this is what you wire into Load New Model / the pack's model loading) - plus individual clip_name1 / clip_name2 / clip_name3 outputs so individual names stay available for anything that wants them loose.
The neat bit: if any of the three selections is invalid or unselected, the bundle degrades gracefully rather than erroring - the clip output reflects whatever subset is actually valid.
Why the selector idiom
This node is part of the pack's broader "choices as first-class values" design. Instead of a CLIP loader living inline in your graph, a selector centralizes the choice - one dropdown per encoder - and the pack's Load New Model handles actually loading. That separation is what lets choices persist into metadata (save an image, reload, and the same three CLIPs come back) and what keeps multi-encoder setups from becoming a tangle of loader nodes. If you're on a single-encoder model, this is overkill - use CLIP Selector. If you're on a triple-encoder model, this is the clean way to express it.
Install
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/kinorax/comfyui-info-prompt-toolkit.git
cd comfyui-info-prompt-toolkit
pip install -r requirements.txt
Or ComfyUI Manager → search "ComfyUI-Info-Prompt-Toolkit" → install → restart. The CLIP/text-encoder files themselves are separate downloads for the model you're running - this node just selects among what you already have.
Where people get burned
Order and completeness. If your model genuinely needs three encoders and one dropdown is left blank, you'll get a partial bundle and downstream errors that don't obviously point at "missing third CLIP." And it's easy to swap encoder slots across sessions - the bundle has no way to know CLIP-L belongs in slot 1, so keep a consistent convention. If you only need one or two encoders, don't force this node; the single and dual selectors are the right size.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_name1 | COMBO | Select first CLIP | |
| clip_name2 | COMBO | Select second CLIP | |
| clip_name3 | COMBO | Select third CLIP | |
| sha256_1opt | STRING | Cached SHA256 for clip_name1 used by View Model Info fallback | |
| sha256_2opt | STRING | Cached SHA256 for clip_name2 used by View Model Info fallback | |
| sha256_3opt | STRING | Cached SHA256 for clip_name3 used by View Model Info fallback |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| clip | IPT-Clip | — |
| clip_name1 | * | — |
| clip_name2 | * | — |
| clip_name3 | * | — |