Clip Switch
Stop rewiring the text encoder
- input1
- input2
- CLIP
The CLIP is the text encoder - the part that turns your prompt into the conditioning the sampler understands. Modern workflows juggle more than one of them: the clip from your checkpoint, a dual-clip loader for Flux, a triple-clip for SD3, a separate clip just for a LoRA. Clip Switch is the two-slot router for exactly that. One integer widget picks which CLIP flows to your conditioning node, so swapping text encoders becomes a click instead of a cable-yank.
How it works
Exactly like every other RvTools switch: the Input widget (default 1, range 1–2) selects between input1 and input2, and the chosen CLIP comes out the single CLIP output. Set 1, get input1; set 2, get input2. No caching, no merging - a straight router.
The classic ComfyUI gotcha applies here hard: the CLIP and the model must agree. You can't casually feed a Flux clip into an SDXL sampler setup; the conditioning has to match the model architecture. So the realistic use isn't "mix and match clips" - it's "let me pick which complete, matching setup drives this run." Same checkpoint family, two clip sources, one switch.
Bypass behavior is also worth remembering: bypass the node and ComfyUI passes input1 straight through. That's the author's whole philosophy with these switches - the bypass becomes an on/off for a branch, which is why they're so handy in group-heavy graphs where you toggle branches rather than delete them.
The inputs that matter
- Input - the 1-or-2 selector. The only widget you'll actually touch.
- input1 / input2 - the two CLIP sources, both
forceInput. Common wiring: input1 gets the checkpoint's clip, input2 gets a dedicated clip loader (or vice versa).
The CLIP output feeds a CLIP Text Encode (or CLIP Set Last Layer, or any node that takes a clip). Wire one switch between your clip sources and your conditioning, and every prompt-encoding node downstream can share the same selector.
Why you'd reach for it
If your workflow is strictly one checkpoint, one clip, you don't need this. The payoff appears when you're A/B testing text encoders (two clip variants for the same model) or when a shared workflow must survive both "use the checkpoint clip" and "use the dedicated dual-clip loader" modes. It also plays nicely in front of the multi-switch pattern - this is the manual two-slot version; the pack's multi-switches auto-pick the first connected input for three or more options.
Installing it
Part of the RvTools v2 pack - no model files. ComfyUI Manager → search RvTools → install ComfyUI-RvTools_v2, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI-RvTools_v2
Restart and look for RvTools v2: Version 2.5.x in the console. Extra deps (opencv-python, pilgram, pynvml, piexif) come through Manager automatically.
Troubleshooting
- Missing input → None downstream. Switch to an unwired slot and the CLIP Text Encode gets nothing. Check both inputs are connected.
- Wrong-clip architecture errors. If you switch to a CLIP that doesn't match your model, you'll get a mismatch error at the sampler or encoding stage. The switch won't catch that - it's a dumb router.
- Old v1 RvTools references fail in Manager because the original repo was deleted; v2 renamed everything to fix it. The author's successor, ComfyUI_Eclipse, supersedes this pack.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| Input | INT | 11–2 | — |
| input1opt | CLIP | — | |
| input2opt | CLIP | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CLIP | CLIP | — |