Upscale Model Loader
The upscaler loader for the 'just give me more pixels' job
- upscale_model
Upscaling is three different jobs that all get called "upscaling": adding pixels, adding detail, and adding pixels to video. TMMUpscaleModelLoader is firmly in the first camp - the classic ESRGAN-family path where the image already has the detail you want and you just need it bigger. No hallucination, no invented faces, runs in milliseconds.
What it does
model_name(dropdown) - every file inComfyUI/models/upscale_models.upscale_model(UPSCALE_MODEL) - wire intoImageUpscaleWithModel, then a scale factor, then on your way.
That's the whole node. You pick a model, you get a socket. In a normal graph it looks like:
UpscaleModelLoader → ImageUpscaleWithModel → (upscale factor) → upscaled IMAGE
The models this loads are the 4x ESRGAN family - 4x-UltraSharp, Remacri, 4x_NMKD-Siax, the anime variants - the workhorses that "can't invent anything" and therefore can't ruin anything. If your source is sharp and you want a bigger print, this is the honest tool, and it's still the right answer even in the era of generative restorers like SeedVR2. Those fancier tools belong to the "more detail" job, which this loader is not for.
How it works
comfy.utils.load_torch_file loads the weights with safe_load=True, then comfy_extras.chainner_models.load_state_dict turns the state dict into a model and calls .eval(). Same calls as ComfyUI's own UpscaleModelLoader - it's a straight wrapper, nothing custom under the hood. If the dashboard's "+" button on an upscaler card inserted this node for you, you're getting the core loader with the pack's file picker attached.
Install & gotchas
Same one-time install as every node in this suite:
cd ComfyUI/custom_nodes
git clone https://github.com/Zellione/comfyui-tiny-model-manager
cd comfyui-tiny-model-manager
pip install -r requirements.txt
or search Tiny Model Manager in ComfyUI Manager, then restart.
Two things to know before you blame the node:
- The file has to be a real ESRGAN-style upscaler. The chainner loader expects a specific state-dict layout. If a
.pthyou grabbed from some random repo fails to load here, it's almost certainly not that layout - check the source (it should be a Real-ESRGAN/chainner-format model), not the loader. - Wrong folder = invisible model. It only lists
ComfyUI/models/upscale_models. Drop files anywhere else and they won't appear until you move them and refresh.
And one expectation check: this node gives you pixels, not detail. If you're looking at a soft image and hoping the upscaler will conjure pores and eyelashes, you're using the wrong rung of the ladder - that's the generative-restorer job, and no model this loader reads will do it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 0 options: |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| upscale_model | UPSCALE_MODEL | — |