Model Switch (JPS)
Pick one of up to five loaded models with a single number
- model_1
- model_2
- model_3
- model_4
- model_5
- model_out
Once a workflow has more than one checkpoint loaded - a base model here, a specialized fine-tune there, maybe a distilled variant for fast previews - you need a way to pick which one actually feeds the sampler without rewiring the graph every time. That's this node's entire job: a five-way router for MODEL connections, driven by one integer.
Connect up to five model sources to the optional model_1 through model_5 inputs (you don't need to fill all five - leave the ones you're not using empty), set select to a number, and whichever model sits in that slot comes out the single model_out port. Nothing about the models themselves changes; this is pure routing, not merging or blending. It's the ComfyUI equivalent of a rotary selector switch: five inputs, one output, pick the position.
This "N-to-1 switch" pattern is one of the pack's most-used building blocks - the README lists a matching switch for nearly every connection type (image, latent, conditioning, VAE, ControlNet, model), and people build around them enough that they occasionally hit the ceiling and go modify the node file directly. One ComfyUI user documented exactly that with the pack's Integer Switch, hacking their local copy to support more than the default handful of slots because five wasn't enough for what they were building - and then got stuck because ComfyUI doesn't just pick up a renamed class from an edited file without more plumbing than expected. If five model slots isn't enough for your case, know that you're not the first person to want more, and that patching the source is a real (if fiddly) path people have actually taken, not just a theoretical one.
Where it fits. A common pattern: run the same prompt and seed through two or three checkpoints to compare output quality, switching select to flip between them without touching any other wire in the graph. Or wire it downstream of a workflow-mode selector, so a "fast preview" branch loads a distilled model while a "final render" branch loads the full one, and one number decides which actually reaches the KSampler.
Installing it. Through ComfyUI Manager - search "JPS Custom Nodes for ComfyUI" - or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
Restart ComfyUI, find it under JPS Nodes/Switches. If you're replacing an older copy of the pack, delete it first - the author explicitly warns that two installs of the same node set collide on class names. No models bundled, no extra dependencies to install; the node just holds references to whatever you've already loaded elsewhere.
Troubleshooting. The most common gotcha with any of these switches: forgetting that select is 1-indexed against whichever inputs you actually connected, not against how many total slots exist. If you only wired model_1 and model_3 and set select to 2, you'll get nothing, because slot 2 was never connected - ComfyUI will typically error rather than silently pass through a null. Double-check that the number in select matches an input you've actually populated. Beyond that, this pack's whole custom node ecosystem carries the usual dependency-conflict risk on install (Manager handles most of it, but a stale install after a ComfyUI update is always worth a re-check if the node vanishes from the menu).
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| select | INT | — | |
| model_1opt | MODEL | — | |
| model_2opt | MODEL | — | |
| model_3opt | MODEL | — | |
| model_4opt | MODEL | — | |
| model_5opt | MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_out | MODEL | — |