Geekatplay HyperTile Resize Image
The boring resize node that keeps your upscale on-plan
- image
- image
Let's not oversell it: HyperTileResizeImage is a resize node. One image in, one image out, four interpolation methods. The reason it exists inside this pack is consistency. The HyperTilePlanner computes a target size snapped to a multiple, and this node is the one that applies it exactly, so the stage-1 neural upscale result lands on precisely the geometry the tiled pass expects. You could do the same job with a stock resize node; this one just keeps the plan in one place so you never have to retype the number.
How it works
If the image is already at target_width/target_height, it passes through untouched - no pointless resampling. Otherwise:
bilinear,bicubic, andnearestgo through torch'sinterpolateon the GPU.lanczos- which torch can't do - falls back to PIL per-frame. Slower, but sharper, and it's the default.
Output is clamped to the 0–1 range ComfyUI expects.
Inputs
image- the stage-1 upscale result.target_width/target_height- default 4096. Wire these from the Planner'starget_width/target_heightoutputs rather than typing them; that's the whole point.method-lanczos(default),bicubic,bilinear,nearest.
Output
image (IMAGE). Drop it on the VAE encode for the tiled pass or a preview node.
Install
It's part of GeekatplayStudio/ComfyUI-UltimateUpsacaler: Manager → search "ComfyUI-UltimateUpsacaler", or:
cd ComfyUI/custom_nodes && git clone https://github.com/GeekatplayStudio/ComfyUI-UltimateUpsacaler
Restart afterwards. The node itself only needs numpy, Pillow, and torch - the model downloads (SDXL base, Tile ControlNet, the ESRGAN upscalers) come with the pack's installer, not with this node.
Common issues
Two things worth saying, and neither is a bug:
- It adds pixels, not detail. This is the "more pixels" rung of upscaling, not generation. Our upscaling knowledge base splits the job into three - pixels, detail, video - and this node is firmly in the pixels bucket. If you feed it a soft image you get a bigger soft image; the generative detail comes from the tiled denoise pass downstream.
nearestgets blocky at 4x. It's there for masks and pixel art, not photos. Leave it onlanczosfor general use, and reach forbicubicwhen you're resizing a batch - the GPU path is far faster than the PIL loop.
One small gotcha: the Planner snaps its target to multiples of 64, so a "4000px" plan becomes 4032. This node doesn't question it, it just does it - which is exactly the point of keeping the plan in one place.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| target_width | INT | 409664–32768 | — |
| target_height | INT | 409664–32768 | — |
| method | COMBO | 4 options: lanczos, bicubic, bilinear, nearest |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |