Nodes/multiGPU Upscaler/multiGPU_upscaler: Single GPU Tiled
ComfyUI Node

multiGPU_upscaler: Single GPU Tiled

The pack's quieter half — a tiled upscaler that doesn't need a second GPU

By alludus·Created 10 months ago·Updated 10 months ago· 1
multiGPU_upscaler: Single GPU Tiled
  • upscale_model
  • image
  • IMAGE
tile_size512
min_tile_size128
overlap32

The multiGPU Upscaler pack gets all the attention for its multi-card node, but this is the one you actually use if you've got a single GPU. multiGPU_upscaler: Single GPU Tiled is the same tiled-upscaling engine without any of the parallelism - one device, one model instance, and the same OOM-safe tile logic underneath.

This is the "more pixels" flavor of upscaling, not the "more detail" kind. Think RealESRGAN and the other ESRGAN-family models: deterministic, fast, no invented detail, just a bigger image. Tiled upscaling is how you get there when the target resolution would blow past your VRAM in one pass - instead of running the model on the whole image at once, it processes overlapping tiles and blends the results. That's the same approach Ultimate SD Upscale and the stock node use; the point of tiling is that 4K output fits on a modest card.

How it works

Under the hood it's the pack's shared run_tiled_on_device path. The image tensor gets reshaped to BCHW, then ComfyUI's own tiled_scale runs the model over tile_size-sized tiles with overlap pixels of feathering between them. If a pass hits an out-of-memory error, the tile size halves automatically and it retries, down to min_tile_size, at which point it gives up. Output is clamped to the 0–1 range and returned as a normal IMAGE tensor.

Inputs and output

  • upscale_model - an UPSCALE_MODEL from the pack's loader or ComfyUI's standard Load Upscale Model.
  • image - the tensor to upscale.
  • tile_size (default 512) - starting tile size. Lower to 256 if you OOM.
  • min_tile_size (default 128) - the floor before it fails; raising this just makes it give up sooner.
  • overlap (default 32) - how much adjacent tiles share, which hides seams.

Output: a single IMAGE tensor at the model's upscale factor (4x for a 4x model), ready to feed Preview, Save, or further processing.

Why this node instead of the built-in one?

Honest answer: the practical difference is small. ComfyUI's core Upscale Image (using Model) already tiles internally. What you get here is explicit control - you can set the tile size, and the OOM-halving is visible and tunable instead of being an implementation detail. If you never OOM, the stock node does the same job and you don't need this one. If you're pushing 4K+ on a 6GB card and want to see exactly where the tiling gives out, this is the friendlier tool.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/alludus/ComfyUI-multiGPU-upscaler

Then restart ComfyUI, or install via ComfyUI Manager by searching multiGPU Upscaler. The only dependencies are spandrel and typing-extensions - spandrel already ships with ComfyUI - and no model files are bundled. Drop a RealESRGAN .pth into ComfyUI/models/upscale_models and you're set.

One thing worth knowing: unlike its multi-GPU sibling, this node isn't gated on CUDA, so it's the more portable of the two if you ever run ComfyUI without NVIDIA hardware. And if things look off, the console [SingleGPU] logs show exactly what tile size actually ran.

CategorymultiGPU_upscaler

Inputs (5)

NameTypeDefaultDescription
upscale_modelUPSCALE_MODEL
imageIMAGE
tile_sizeINT51264–2048
min_tile_sizeINT12832–1024
overlapINT320–256

Outputs (1)

NameTypeDescription
IMAGEIMAGE