Upscale Model Selector
Pick the model without loading it
- model_name
A loader node does two things at once: it decides which model and it goes and loads the thing. That's fine when you're swapping a weight file occasionally, and annoying when what you actually want is to vary a name - in a grid test, a bundle, a filename, or a sweep across every upscaler you own.
This node does the first half only. It's a dropdown of everything in upscale_models and it outputs the filename as a string. Nothing gets loaded.
What it's for
Three uses, and they compound:
- Keep the loader clean. Your upscale node (including the pack's own Nifty Upscale Image) points at one place, and the "which model" decision lives in a node you can move, bypass or swap without rewiring anything.
- Sweep every upscaler you have. Feed this selector into a downstream node that accepts a model name and put Combo Auto List in front of it - that's a one-click comparison of 4x-UltraSharp vs Remacri vs whatever else is sitting in your folder.
- Route on "none". The dropdown includes
none, and when you pick it the node outputsNonerather than a name. That pairs with the pack's None Input Switch to branch: model chosen, do an upscale pass; model none, skip straight to saving.
Inputs and outputs
model_name- a dropdown listingnonefollowed by every file in theupscale_modelsfolder. This is the only input; there's nothing to configure.- Output
model_name- the selected filename as a string, orNoneif you selectednone.
That's the whole node, and it's the point. The string goes into a loader or upscale node's model input - anything that accepts a filename, including by wire. It's also handy dropped into a filename suffix or a bundle, so your outputs record which upscaler produced them.
One difference from its siblings in the pack: the Diffusion Model and CLIP selectors also output an is_gguf boolean so you can route quantized files to a different loader. This one doesn't, because upscale models don't come in GGUF - don't go looking for it.
Installing it
ComfyUI Manager → search Nifty Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Stibo/comfyui-nifty-nodes
Restart. This is a selector - it needs no dependencies of its own, though the pack declares color-matcher and imageio-ffmpeg for other nodes. It was added in the pack's 2.2.0 release alongside the upscale node it's designed to pair with. The pack is authored on ComfyUI's V3 node API and the README says it's tested against frontend 1.39, untested against Nodes 2.0 - worth flagging for selector nodes specifically, since they depend on widget plumbing.
Where people get burned
- The list is read when the node is built. Drop a new
.pthintoupscale_modelswhile ComfyUI is running and it may not appear until you refresh the node definitions (reload the page) - the same "why isn't my new model in the list" moment every ComfyUI loader has. - Empty list, no error. With an empty
upscale_modelsfolder the dropdown only offersnone, so you can build a whole workflow that upscales nothing. If the output image is the same size as the input, check here. - A string is not a model. Everything downstream of this must accept a filename. Wire it into a slot expecting an UPSCALE_MODEL tensor and you get a type error - the selector deliberately doesn't load anything, so it can't hand you weights.
nonefails downstream rather than here. TheNoneoutput is intended for a switch. If you connect it straight into a loader, you get whatever that loader does with an invalid name.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 1 options: none |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_name | * | — |