GRImageSelector
GRImageSelector
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- IMAGE
A ten-way image switch. Wire up as many candidate images as you actually have - anywhere from one to ten - and it forwards a single one downstream instead of you having to rewire your graph every time you want to try a different source. It's the kind of node you keep around once you're doing anything with more than a couple of candidate images per run: A/B comparisons, picking the best of a batch, or building a graph where you swap which reference image feeds the rest of the pipeline without touching any other wire.
How it works
All ten image sockets - image_1 through image_10 - are optional, and none of them are required. That's the tell that this is a genuinely flexible switch rather than a fixed multi-input node: connect two, connect all ten, connect just one, it doesn't care. Which slot actually passes through is controlled on the node itself rather than through a separate input socket, so plug in your candidates on the canvas and use the control on the node face to choose which one goes out. That's a common pattern for switch-style nodes in ComfyUI - keeping the selector as a widget rather than a wired input means you don't need an extra node just to hold an index number.
The inputs and outputs that matter
image_1throughimage_10(IMAGE, all optional) - your candidates. Only wire what you need; leaving slots empty is expected, not an error state.IMAGE(output) - whichever slot you've got selected, ready to continue into your sampler, save node, or next processing step.
How to install it
Via ComfyUI Manager: search "GraftingRayman", install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/GraftingRayman/ComfyUI_GraftingRayman
then restart ComfyUI. This whole pack shares one non-negotiable dependency - OpenAI's original CLIP package, installed on top of whatever CLIP ComfyUI already ships with:
# portable build
.\python_embeded\python.exe -m pip install git+https://github.com/openai/CLIP.git
# system python
pip install git+https://github.com/openai/CLIP.git
Skip it and the entire pack - this node included - fails to import, even though a plain image switch has nothing to do with CLIP.
Common issues & troubleshooting
Node doesn't appear in your search at all. That's the missing CLIP dependency above, not a problem specific to the selector. The pack imports as one unit; one failed import takes all of it down.
Output is empty or wrong. Double-check which slot you've actually got selected on the node - it's easy to wire a new candidate into, say, image_3 and forget the selector is still pointed at image_1. If you're building a workflow that swaps candidates often, it's worth labeling the node or leaving a note so future-you doesn't lose track of which slot is live.
Comparing to other switch nodes in your graph. If you've also got a general-purpose "any switch" style node from another pack (rgthree's is the common one), the difference here is that GRImageSelector is typed strictly to images with ten fixed slots, versus a generic any-type switch that works across data types but usually with fewer slots. Pick whichever matches how many candidates you're actually juggling - ten dedicated image slots is overkill for a two-way A/B test, and worth it the moment you're past four or five.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — | |
| image_6opt | IMAGE | — | |
| image_7opt | IMAGE | — | |
| image_8opt | IMAGE | — | |
| image_9opt | IMAGE | — | |
| image_10opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |