Nodes/comfyui-selector/Selector In (CLIP)...
ComfyUI Node

Selector In (CLIP)...

Let the model pick its own text encoder

By exdysa·Created 2 years ago·Updated about a year ago· 6
Selector In (CLIP)...
  • clip1
  • clip2
  • clip3
  • clip4
  • clip5
  • clip6
  • clip7
  • clip8
  • CLIP
model_type1

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.
  • clip1clip8 (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 None and 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.
CategorySelector_Recourse/In

Inputs (9)

NameTypeDefaultDescription
model_typeINT11–8
clip1optCLIP
clip2optCLIP
clip3optCLIP
clip4optCLIP
clip5optCLIP
clip6optCLIP
clip7optCLIP
clip8optCLIP

Outputs (1)

NameTypeDescription
CLIPCLIP