Nodes/Prompt Helpers/EZ Upscale (Tiled)
ComfyUI Node

EZ Upscale (Tiled)

EZ Upscale (Tiled)

By Pauan·Created 8 months ago·Updated 5 months ago· 3
EZ Upscale (Tiled)
  • image
  • IMAGE
image_weight0.6
multiplier2.00
tile_size1024
tile_overlap64

Tiled upscaling is the old reliable trick for making images bigger when your card can't handle the full resolution at once: split the image into overlapping tiles, re-diffuse each one, blend the seams back together. Usually that means wiring up Ultimate SD Upscale or a custom tile graph with a dozen nodes and a ControlNet pass. EZ Upscale (Tiled) is the version that hides all of that inside a settings node - you set five numbers and the rest happens for you.

The catch, and the first thing to understand: this node doesn't produce an image. It produces an EZ_IMAGE_SETTINGS object that you feed into the pack's EZ Generate (or EZ Generate Save) node, which does the actual work. If you drop EZ Upscale (Tiled) onto a fresh canvas and look for an image output, you'll be confused - the output socket is labeled IMAGE but it's a bundle of instructions, not pixels. That's the pattern of this whole pack: settings nodes describe a job, EZ Generate executes it.

How it works

Under the hood EZ Generate takes your image, resizes it up by the multiplier, cuts it into square tiles of tile_size pixels with tile_overlap pixels of shared margin, and runs the sampler on each tile as img2img at denoise = 1 - image_weight. The tiles get feathered masks so the seams disappear, then they're composited back onto the full-size canvas. That's exactly the tiled diffusion upscaling described in the upscaling KB - arbitrary output sizes on limited VRAM - just with the node salad removed.

Because each tile is sampled at whatever size you set tile_size to, the model always works in its comfort zone even as the total image grows. A 2x upscale of a 1024px image to 2048px with 1024px tiles is really just four img2img passes the model is built for.

The inputs that matter

  • image - the IMAGE you're upscaling.
  • image_weight (default 0.6) - how much the source image steers each tile. Higher means it hugs the original, lower means the sampler gets more creative. This is your denoise control in disguise: denoise = 1 - image_weight. For a clean upscale keep it at or above 0.5.
  • multiplier (default 2.0, range 0.01–8) - the scale factor. 2x is the sweet spot for this kind of pass; going much beyond that in one shot is where quality starts to fall apart.
  • tile_size (default 1024) and tile_overlap (default 64) - smaller tiles are more VRAM-friendly, more overlap means smoother seams at the cost of re-sampling the same pixels repeatedly.

Install

This ships in the Prompt Helpers pack by Pauan. Easiest path is ComfyUI Manager - search "Prompt Helpers" and install. Manual way:

cd ComfyUI/custom_nodes
git clone https://github.com/Pauan/comfyui-prompt-helpers

Then restart ComfyUI. The pack's only Python dependencies are PyYAML and desktop-notifier - no model downloads, no heavy backend. One real requirement: it's built on the new Nodes 2.0 extension API, so you need a current ComfyUI (0.8.0+). If the nodes don't show up in your menu after install, that's the reason.

Where people get burned

  • Batch size must be 1. The node errors if you feed it a batched image, so don't try to upscale a batch in one go.
  • It won't combine with EZ Detail - the pack refuses both at once, by design.
  • No built-in ControlNet Tile. The classic tiled-upscale failure is tiles diverging from the source and producing a patchwork. EZ Upscale handles seams for you, but it doesn't add a ControlNet Tile guide, so push image_weight high (low denoise) and keep multiplier modest - that's your anti-patchwork insurance.
  • It's diffusion upscaling, not a pixel upscaler, so it invents detail rather than just sharpening. That's the point, but don't expect it to preserve exact textures.

This isn't the ultimate quality upscaler - SeedVR2-class models still win on detail. It's the one you reach for when you want a clean 2x with no extra machinery and no VRAM explosion.

Categoryprompt_helpers/image

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
image_weightFLOAT0.60–1How much the image should influence the result. Higher number means it closely matches the image, lower number means more random.
multiplierFLOAT2.000.01–8Scale factor (e.g., 2.0 doubles size, 0.5 halves size).
tile_sizeINT102416–16384The pixel width and height of each tile.
tile_overlapINT640–16384Amount of pixels that overlap between each tile.

Outputs (1)

NameTypeDescription
IMAGEEZ_IMAGE_SETTINGS