⬡ Polyhedron Load Upscale Model
An upscale-model loader that tells you which one is which
- upscale_model
- info
Core ComfyUI's upscale-model loader has a small, annoying blind spot: it passes on a bare descriptor with no filename in it. Put two upscalers on the canvas - a 4x ESRGAN for stills and a small detail model for video - and nothing on the wire tells you which model is actually going to run until the run is already under way. ⬡ Polyhedron Load Upscale Model fixes that by loading the model and saying what it loaded.
That's the whole pitch, and for a loader it's a real one. The dropdown shows the file's size so you can tell a heavy 4x ESRGAN from a compact model at a glance before picking. Once loaded, the info output spells out file, architecture ×N, parameter count, precision and size - the same model card the pack's Power Upscale node shows. If you're debugging "why does this upscale look different," the answer is usually "because it's a different model than you thought," and this node makes that impossible to miss.
How it works
It's a thin, honest loader: pick a pixel upscale model from models/upscale_models, and the node loads it and hands over the spandrel descriptor - the exact same type core's loader produces, so it drops into any upscale node (ImageUpscaleWithModel, this pack's Fast Upscale, Power Upscale) without a converter in between. The output is a genuine UPSCALE_MODEL, not a string. The info output is a STRING readout you can wire into a ⬡ Polyhedron Note for a standing label on the canvas.
A quick sanity anchor from the KB's upscaling essay: the ESRGAN family is the workhorse for "more pixels, source already sharp" - clean enlargements that can't hallucinate detail (4x-UltraSharp for general, the anime variants for illustration). Generative refiners are a different tool; knowing which of your models is which is exactly what this loader is for.
What you set and get
model_name- the upscale model file. Size shown inline.upscale_model(out) - the loaded spandrel descriptor, into any upscaler.info(out, STRING) - file | architecture ×N | parameters | precision | size.
Installing it
Part of the ⬡ Polyhedron Suite pack. ComfyUI Manager → "Polyhedron Suite", or:
cd ComfyUI/custom_nodes
git clone https://github.com/PolyhedronAI/ComfyUI-PolyhedronLoRAStack.git
# restart ComfyUI
No extra dependencies; model files live in ComfyUI/models/upscale_models and download separately, as usual.
Gotchas
The info readout only exists after a run - like any output, it's populated when the graph executes, so the first time you wire it into a note it'll show empty until you queue once. And remember this is a loader for pixel upscalers: the ESRGAN/spandrel family. If you're trying to load a diffusion refiner or a SuperResolution model that isn't a spandrel descriptor, that's the wrong slot. Blank node under Nodes 2.0? Same as every Polyhedron node - disable Modern Node Design in Settings.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | Pixel upscale model (models/upscale_models). The size is shown so a 4x ESRGAN is not confused with a small Compact model at a glance; the factor itself is on the info output once it is loaded. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| upscale_model | UPSCALE_MODEL | The loaded upscale model (spandrel descriptor -- the exact type core's loader hands over). |
| info | STRING | Readout: file | architecture xN | parameters | precision | size. |