Upscale Image GPU (using Model)
A one-node ESRGAN upscale that only tiles when it has to
- image
- image
What this node is
The TBG ETUR pack is famous for its heavy tiled refiner machinery - neuro-generative tile fusion, per-tile prompts, PiD upscaling, the whole 100MP pipeline. This node is the opposite: a single-trick utility that does the boring, dependable rung of upscaling. You hand it an image and an ESRGAN-style model, it hands back a bigger image. No Patreon key, no tile grid to configure, no generative rewrite.
Worth being clear about what it does not do. This is a pixel upscaler - the "more pixels" category, not "more detail." An ESRGAN model like RealESRGAN or 4x-UltraSharp interpolates and cleans; it won't invent pores, lashes, or fabric weave the way a generative restorer (SeedVR2, or ETUR's own refiner path) will. If the source is already sharp and you just want it bigger, this is the right tool and it's nearly instant. If the source is soft or damaged and you want it better, you want a generative pass instead. Choose your job before you reach for the node.
How it works
The "GPU" in the name is the whole design. It loads the model from your models/upscale_models folder, estimates the VRAM the job needs, and runs the model directly on the GPU, one batch at a time. Only when that would blow up your card does it fall back to tiling - roughly: 4× scale on a ≥1MP input, a ≥16MP output, any side ≥2048px, or an actual out-of-memory error. In fallback mode it upscales each tile and color-matches them before compositing, which is what the Color_Match dropdown is for: it's applied per-tile only when tiling happens. The direct GPU pass ignores it entirely.
The inputs (all three of them)
- upscale_model - a dropdown populated from your
ComfyUI/models/upscale_modelsfolder. RealESRGAN_x4plus, 4x-UltraSharp, Remacri, NMKD-Siax all work. - image - what you're scaling.
- Color_Match / Color_Match_Str - tile color correction for the fallback path. The default, "TBG Detail-Preserving Color Stabilizer" at strength 1.0, is usually fine to leave alone.
Output: a single image. One thing in, one thing out - which is refreshing in a pack where every other node has twelve sockets.
Installing it
Whole-pack install again:
cd ComfyUI/custom_nodes
git clone https://github.com/Ltamann/ComfyUI-TBG-ETUR
cd ComfyUI-TBG-ETUR
pip install -r requirements.txt
or ComfyUI Manager → search "TBG" → install TBG Enhanced Upscaler and Refiner, then restart. You also need an upscale model on disk - the README links RealESRGAN_x4plus, 4x-UltraSharp, 4x_NMKD-Siax and friends; they go in ComfyUI/models/upscale_models/.
One honest caveat: if this is the only node you want from the pack, the requirements (opencv, timm, kornia, bitsandbytes, optimum...) are a lot of machinery for a simple ESRGAN wrapper, and ComfyUI's native upscale nodes might serve you as well. This one earns its keep when you're already in the TBG ecosystem and want a color-consistent tiled fallback without building one by hand.
Troubleshooting
- It's slow on big images - that's the tiled fallback doing per-tile color matching. Not a bug; the alternative was an out-of-memory crash.
- Model missing from the dropdown → it's not in
upscale_models/. The node reads that folder at startup. - Expecting detail the image never had → wrong tool. This just makes it bigger; pair it with a low-denoise generative refine if you want both more pixels and more detail.
- Pack won't load → update ComfyUI. The pack is migrated to the v3 node API and needs a current build.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| upscale_model | COMBO | 0 options: | |
| image | IMAGE | — | |
| Color_Match | COMBO | TBG Detail-Preserving Color Stabilizer | Applied per upscaled tile before stitch/composite when the GPU node falls back to tiled processing. |
| Color_Match_Str | FLOAT | 1.000–2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |