Combo Selector
Pick a dropdown value by number, and drive it from a wire
- COMBO
- STRING
ComfyUI's dropdowns are stubborn. A combo widget - the one that lists your checkpoints, samplers, schedulers - is a value baked into the node; you can't wire a number into it the way you can convert a seed to an input. Combo Selector exists to break that open. It lets you pick a COMBO value by its numeric index, and since the index is a real INT input, you can drive it from a Slider, a loop counter, a seed, anything that produces a number.
Here's the part that makes it feel like magic: you don't type the option list in anywhere. The node's COMBO output is designed to plug into a dropdown input on another node, and the moment you connect it, the frontend reads the target node's combo options and shows them to you as a preview dropdown right on the selector. That's the "auto-discovery" in the README - no manual lists, no keeping two dropdowns in sync by hand. The options get serialized into the node's hidden hidden_list field, and the backend just does math.
The inputs and outputs are minimal:
index(INT, default 0, min 0) - which item to select. The node wraps with modulo, so index 12 on a 4-item list gives you item 0. Out-of-range never errors, it loops.hidden_list(STRING, default"[]") - the JSON option list, filled in automatically by the frontend. You can type a comma-separated list here too if you want a hard-coded set.COMBOoutput - the raw selected value, for connecting to dropdown-style inputs.STRINGoutput - the same value as a plain string, for prompts, filenames, or anything that wants text.
The genuinely useful pattern: a batch run where each pass should use a different sampler or checkpoint. Wire a loop counter into index, run the queue, and every pass steps through the dropdown. Or drop a Slider next to it and flip between three models by dragging instead of reopening the node menu. When index is connected, the preview dropdown disables itself - a small touch that stops you from fighting the wire with your mouse.
It ships in ComfyUI-XENodes, the same one-author pack as Multi-Switch and the save nodes. Install the usual way:
cd ComfyUI/custom_nodes
git clone https://github.com/xeinherjer-dev/ComfyUI-XENodes.git xenodes
or search "ComfyUI-XENodes" in ComfyUI Manager, then restart. No models, no dependencies to install for this node - the pack's requirements.txt is empty.
Fair warnings, both real. First, the auto-discovery depends on the COMBO output being connected to a dropdown input; unplugged, the node just shows "(No list connected)" and outputs nothing useful. Second, and this is the one that bites: this only works where the receiving node actually accepts a COMBO wire for that field - some combo widgets can't be driven by an incoming connection at all. If your target node's dropdown won't take the wire, the selector has nothing to feed. And since the whole pack loads as one unit, if you see no XENodes at all after install, check the console - a sibling node's missing dependency (SaveAudio imports PyAV's av) can keep the entire pack menu from appearing.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| index | INT | 0 | — |
| hidden_list | STRING | [] | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| COMBO | * | — |
| STRING | STRING | — |