Selector In (SAMPLER)
Let the model pick which one flows
- sampler1
- sampler2
- sampler3
- sampler4
- sampler5
- sampler6
- sampler7
- sampler8
- SAMPLER
SelInSampler is the "Selector In (SAMPLER)" node from exdysa's comfyui-selector pack, and it's probably the reason you're here, because it's the one node in this pack that Google actually serves. The pitch is simple: you feed it up to eight different sampler settings, and a small integer on the model_type input decides which one passes through. Same graph, no rewiring, just a number.
The trick is how it avoids the trap most "select by number" nodes fall into. The eight input ports are marked lazy, so ComfyUI only evaluates the one port you actually selected. Wire eight SamplerCustomAdvanced-style sampler chains in, pick model type 3, and only input three gets computed - the other seven don't do any work. That's the difference between a routing node you can live with and one that silently multiplies your render time by eight. For a beginner it's worth knowing this exists, because "I plugged in eight things and now it's slow" is exactly the failure a naive version of this node would have.
How it works
The model_type integer (1–8, default 1) is the whole interface. Whatever the number, the node looks for sampler<number> and outputs it as SAMPLER. The numbers line up with the pack's standard table: 1 SD1, 2 SDXL, 3 FLUX, 4 AURAFLOW, 5 HUNYUANDIT, 6 SD3, 7 STABLE CASCADE-C, 8 STABLE CASCADE-B. You rarely type these by hand - a RecourseCkpt node upstream detects the loaded checkpoint and hands the right number to every Selector In node in the graph, so the whole thing stays in sync automatically.
The inputs that matter
- model_type (INT, required) - which sampler port to activate. It's a number because RecourseCkpt broadcasts it as an integer, not because you're meant to hand-type it.
- sampler1 through sampler8 (SAMPLER, optional) - your actual sampler objects. In practice you'll connect maybe two or three: a converging sampler like DPM++ 2M for SDXL, a flow-matching-friendly one for Flux, and whatever the current distilled model wants.
The single SAMPLER output plugs straight into SamplerCustom or SamplerCustomAdvanced (from ComfyUI's advanced sampling nodes). The relationship to samplers-and-schedulers isn't mysterious: different model families genuinely do want different samplers - guidance-distilled models like Flux are happiest on low-step samplers with conservative schedules, while SDXL fine-tunes still want something like DPM++ 2M Karras.
Installing it
Standard for this pack, which is refreshingly boring. In ComfyUI Manager, search comfyui-selector and install, then restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/exdysa/comfyui-selector
Then restart ComfyUI. There's no requirements.txt, no model files, nothing to download - pure Python speaking ComfyUI's own types, so no dependency conflicts and no network access. You'll find it under Selector_Recourse/In in the node menu.
Gotchas
- The node will happily output
Noneif the selected port has nothing plugged into it. Downstream just won't run, which is how a "selector" is supposed to behave - but if your workflow suddenly stops doing anything, check that the model_type number actually matches a connected port. - This is one of 21 nodes in a small, single-author, GPL-3.0 pack (last commits early 2025). It works fine, but it's not rgthree - no huge community, no fast fixes. For a single-sampler graph, honestly, just use a Reroute. SelInSampler earns its keep when you're juggling several model families in one workflow.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | INT | 11–8 | — |
| sampler1opt | SAMPLER | — | |
| sampler2opt | SAMPLER | — | |
| sampler3opt | SAMPLER | — | |
| sampler4opt | SAMPLER | — | |
| sampler5opt | SAMPLER | — | |
| sampler6opt | SAMPLER | — | |
| sampler7opt | SAMPLER | — | |
| sampler8opt | SAMPLER | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SAMPLER | SAMPLER | — |