Upscale model selector
An upscaler picker that remembers your last few and can randomize the rest
- ui_widget
- combo
- string
Picking an upscaler in ComfyUI means opening a dropdown full of model names you've half-forgotten. UpscaleModelSelector is the LF Nodes answer: a dropdown that remembers which upscalers you've used recently, shows them as a clickable history, and - the genuinely weird trick - can randomize among them for you.
Let's be clear about what it's not. This node doesn't upscale anything; it's a selector, so it picks a model name and hands it to the node that does the work. The two outputs are the giveaway: combo (typed as your upscale-model list, for nodes that want the exact enum) and string (the model name, for wiring into an UpscaleModelLoader). It enumerates everything in your upscale_models folder, so any .pt/.safetensors ESRGAN-style model you drop in shows up here.
The inputs that matter:
upscale_model- the dropdown; your pick.enable_history(default true) - saves every model you use with its date, shown as clickable history for quick swaps.randomize(default false) - picks an upscaler at random on each run.filter- when randomizing, restrict the pool by wildcard (e.g.*UltraSharp*), so it only draws from the family you mean.seed- controls the random pick so you can reproduce a choice.
The randomization is the part that's either a feature or a trap depending on how you use it. In the "which upscaler do I actually like?" mode, it's great for batch A/B testing - randomize across your models, look at the output grid, keep the winner. But remember the upscaling lesson the community keeps relearning: "upscaler" covers three different jobs. A 4x ESRGAN model (4x-UltraSharp, Remacri) only adds pixels - it can't invent detail - while a generative restorer is a different beast entirely. Randomizing across categories will make you compare apples to oranges. If you randomize, filter down to one family first.
Installing LF Nodes - same pack, same steps:
- ComfyUI Manager → search "LF Nodes" → install → restart, or
cd ComfyUI/custom_nodes && git clone https://github.com/lucafoscili/comfyui-lfthen restart.
Notes for the road. The repo is in legacy mode - frozen at its last release while development moved to lucafoscili/lf-nodes; this selector carries over unchanged. It downloads no models - it only reads your folder. One subtlety: the model list is snapshotted when the pack loads, so if you drop a new upscaler into models/upscale_models you may need to restart ComfyUI before it appears in the dropdown. And if randomization errors out with "Not found a model with the specified filter," your wildcard matched nothing - double-check the filter string.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| enable_history | BOOLEAN | true | Enables history, saving the execution value and date of the widget. |
| randomize | BOOLEAN | false | Selects a scheduler randomly. |
| filter | STRING | When randomization is active, this field can be used to filter upscale models names. Supports wildcards (*). | |
| seed | INT | 420–18446744073709550000 | Seed value for when randomization is active. |
| ui_widgetopt | KUL_HISTORY | [object Object] | — |
| upscale_modelopt | COMBO | None | Upscale model used to upscale the image. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| combo | — | |
| string | STRING | — |