RecourseCheck...
The node that tells your whole graph what model you loaded
- model_opta
- model_optb
- clip_opta
- clip_optb
- clip_optc
- vae_opta
- vae_optb
- MODEL
- CLIP
- VAE
- MODEL_TYPE
RecourseCkpt (displayed as "RecourseCheck...") is the brain of the comfyui-selector pack. Every other node that routes "by model" waits on a number from this one. It does two jobs at once: it passes through your first active MODEL, CLIP and VAE (so a missing or failed model doesn't kill the graph), and it detects what kind of checkpoint you loaded and broadcasts that as an integer - the MODEL_TYPE signal that the whole Selector In/Out family keys off.
That second part is the part you can't get from stock ComfyUI. When you swap a checkpoint, ComfyUI doesn't tell your nodes "this is now SDXL." This node looks at the loaded model's class name and maps it to a number you can route on:
| MODEL_TYPE | Family | |---|---| | 1 | SD 1.x | | 2 | SDXL / SDXL Refiner / instruct-pix2pix | | 3 | Flux | | 4 | AuraFlow | | 5 | HunyuanDiT | | 6 | SD 3 | | 7 | Stable Cascade C (also the fallback for anything unmapped) | | 8 | Stable Cascade B |
Every SelIn node in the pack watches the same numbering, so one RecourseCkpt up top keeps an entire multi-model workflow in sync - change the checkpoint and every downstream selector follows automatically.
How it works
The inputs are model_opta/model_optb (MODEL), clip_opta/clip_optb/clip_optc (CLIP) and vae_opta/vae_optb (VAE). For each type it picks the lowest-numbered port with a live signal - "recourse" in action, so a blank port never breaks the chain. It then inspects the winning model and looks up its class name in the mapping table. Every run it prints a line to the console:
Model configuration Flux, Selected output 3
That console line is genuinely handy for debugging: it tells you exactly what class name it detected, so if you're getting MODEL_TYPE 7 (the fallback) when you expected 3, you can see why.
The inputs & outputs that matter
- model_opta - your primary MODEL. Connect the Load Checkpoint output here.
- clip_opta / vae_opta - your primary CLIP and VAE. The b/c ports are backups for when the first is empty.
- MODEL / CLIP / VAE outputs - the first active one of each, ready to wire into conditioning or the sampler.
- MODEL_TYPE (INT) - the crown jewel. Feed this into the
model_typeinput of any SelIn or SelOut node.
Installing it
Boring and dependency-free, like the rest of this pack. ComfyUI Manager → search comfyui-selector → install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/exdysa/comfyui-selector
Restart ComfyUI; the node lives under Selector_Recourse. No requirements.txt, no models to download, no network access.
Gotchas
- It needs at least one MODEL connected. The code reads the model's class name unconditionally, so with both model ports empty it throws an error instead of gracefully skipping. If you want a CLIP-only failsafe, use RecourseAny instead.
- Detection is by class name, and ComfyUI names are stable across families but not identical everywhere - a GGUF-quantized Flux or an unusual fine-tune can land on the fallback value 7. When that happens you'll see it in the console line, and you can override
model_typeon the downstream SelIn nodes by hand. - Small pack, single author, GPL-3.0, last touched in early 2025. It's clever and it works, but treat it as a convenience layer on top of a workflow you still understand without it.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model_optaopt | MODEL | This port requires MODEL to send the MODEL_TYPE to other nodes. | |
| model_optbopt | MODEL | This port is activated in case MODEL_1 has no signal. | |
| clip_optaopt | CLIP | The lowest number port with an active signal is used. | |
| clip_optbopt | CLIP | The lowest number port with an active signal is used. | |
| clip_optcopt | CLIP | The lowest number port with an active signal is used. | |
| vae_optaopt | VAE | The lowest number port with an active signal is used. | |
| vae_optbopt | VAE | The lowest number port with an active signal is used. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | The lowest number port with an active signal is used. |
| CLIP | CLIP | The lowest number port with an active signal is used. |
| VAE | VAE | The lowest number port with an active signal is used. |
| MODEL_TYPE | INT | — |