Selector In (CLIP)...
Let the model pick its own text encoder
- clip1
- clip2
- clip3
- clip4
- clip5
- clip6
- clip7
- clip8
- CLIP
SelInClip ("Selector In (CLIP)") is the CLIP-flavored member of the pack's Selector In family: eight CLIP input ports, one model_type integer, one CLIP output. Feed it a handful of text encoders and it hands you the one that matches the current model, decided by a number broadcast from a RecourseCkpt node up the graph. It's a routing node for the part of the pipeline most people never think about - the text encoder - and it earns its place specifically because different model families genuinely use different encoders.
That's the insight this node is built on. SDXL loads a dual CLIP (CLIP-L + CLIP-G). Flux needs a T5-XXL text encoder. HunyuanDiT and SD3 use their own encoders. If you're juggling several checkpoints in one workflow, the CLIP that leaves a Load Checkpoint node is different hardware depending on what you loaded. SelInClip lets you pre-wire several encoders and have the model_type number choose which one flows into your CLIP Text Encode.
How it works
The mechanism is the pack standard, with one trick worth calling out: the input ports are lazy. ComfyUI only evaluates the port you actually selected - so if you've got three text encoders connected but model_type says 2, only encoder 2 gets loaded and ran, and the others cost nothing. That matters here more than with most nodes, because text encoders are real models with real VRAM. A naive version of this node would load every encoder you plugged in; this one loads only the winner.
model_type (INT, required, 1–8) selects clip<number>, and the winning CLIP comes out the single output, straight into a CLIP Text Encode (or CLIP Set Last Layer, if you're pairing it with clip-skip logic).
Inputs & outputs that matter
- model_type (INT, required) - which CLIP port to activate. Usually fed by RecourseCkpt's MODEL_TYPE output.
- clip1 … clip8 (CLIP, optional) - your candidate text encoders. Most people use two or three: SDXL's dual CLIP, Flux's T5, and whatever the third family in your workflow needs.
- CLIP output - the winner, wired into your text encoder.
Installing it
The pack standard, which is genuinely boring in the good way. ComfyUI Manager → search comfyui-selector → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/exdysa/comfyui-selector
Restart and it's under Selector_Recourse/In. No requirements.txt, no model files, no network access.
Gotchas
- If the selected port is empty, the output is
Noneand everything downstream just won't run. A workflow that "stopped working" after a model swap is often just a SelIn node pointing at an empty port - check the model_type number against what's actually connected. - The lazy-loading is per selection, so if you change model_type mid-session, the newly selected encoder loads then. First run after a switch can be slower than steady-state.
- It's a routing node, not a loader - the CLIP objects still come from your checkpoint loaders. The value is picking between them cleanly, not loading them.
- Small single-author pack (GPL-3.0) quiet since early 2025; the text-encoder angle is real, but if you only ever run one model family, this node is overkill - a plain Reroute does the same job.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | INT | 11–8 | — |
| clip1opt | CLIP | — | |
| clip2opt | CLIP | — | |
| clip3opt | CLIP | — | |
| clip4opt | CLIP | — | |
| clip5opt | CLIP | — | |
| clip6opt | CLIP | — | |
| clip7opt | CLIP | — | |
| clip8opt | CLIP | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | — |