Nodes/ComfyUI-Practical-Tools/Upscale Model Selector
ComfyUI Node

Upscale Model Selector

A dropdown of every upscale model you own, ready to wire in

By wenchengxiang·Created about a month ago·Updated a day ago· 1
Upscale Model Selector
    • model_name
    model_name

    Upscale Model Selector is a dropdown that lists every upscale model in your upscale_models folder and outputs the one you picked as a string. That's the whole node, and if you upscale at all, you can feel the itch it scratches: model names are fiddly, they live deep in dropdown menus, and when you want to switch from 4x-UltraSharp to Remacri you're clicking through a list you've seen a thousand times.

    The wider frame matters more than the widget, though. In the upscaling world there's a hard distinction worth keeping straight: adding pixels (ESRGAN-family models, Lanczos - fast, can't invent detail) versus adding detail (generative restorers like SUPIR or SeedVR2). This node only ever hands you the filename of a model sitting in your upscale_models folder - it doesn't run anything, doesn't know what kind of upscaler the model is. What it gives you is a data-driven way to swap between them, which is exactly what you want when you're A/B testing 4x-UltraSharp against 4x-AnimeSharp on the same workflow without touching a widget.

    The real payoff is when the selection is part of the graph rather than a manual click. Wire the model_name output into a node that accepts a model-name string and you can drive your upscaler from a preset system, a CSV row, a random pick, or a text box - same "one source, many consumers" trick that runs through the whole plumbing layer. One selector, one place to change which model the whole graph uses.

    How it works

    At load time the node calls ComfyUI's own path manager (folder_paths.get_filename_list("upscale_models")), so the dropdown is built from whatever .safetensors/.pt/.pth files you actually have installed - it's your real library, not a hardcoded list. Pick one, and model_name (output) returns that filename as a plain STRING.

    • model_name - the only input, the dropdown itself. If your upscale_models folder is empty, the list is empty and there's nothing to select.
    • model_name (output) - the chosen filename as a STRING, for wiring into any node that takes a model-name string.

    How to install it

    Part of ComfyUI-Practical-Tools by wenchengxiang. ComfyUI Manager → search ComfyUI-Practical-Tools → install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/wenchengxiang/ComfyUI-Practical-Tools
    

    No extra requirements and nothing this pack downloads - but it's only as useful as your ComfyUI/models/upscale_models/ folder, so make sure you actually have upscale models installed (4x-UltraSharp, 4x-AnimeSharp, RealESRGAN variants are the usual starters).

    Common issues

    • Empty dropdown. It enumerates your local folder at load time. Nothing in upscale_models/ means nothing to select - the node isn't broken, your library is empty.
    • The output is a filename, not a model. This node does no upscaling itself. You still need an upscaler node downstream that loads and runs the model - this just supplies the name.
    • Combo sockets. The output is a plain STRING. If your target upscaler expects a combo (dropdown) socket, you may need to pair this with the pack's String To Combo node so the wire is accepted. If it takes a normal string, wire it straight in.
    CategoryPractical-Tools/utils

    Inputs (1)

    NameTypeDefaultDescription
    model_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    model_nameSTRING