Nodes/ComfyUI-AusBoss/Tiled Upscale πŸ†Ž
ComfyUI Node

Tiled Upscale πŸ†Ž

Redraw at the megapixels you asked for, tile by tile

By ausbossΒ·Created 3 months agoΒ·Updated about 11 hours agoΒ· 107
Tiled Upscale πŸ†Ž
  • image
  • upscale_model
  • tiles
  • stitcher
  • before
  • width
  • height
  • report
β—„megapixels4.00β–Ί
β—„tile_megapixels2.00β–Ί
β—„overlap128β–Ί
β—„multiple32β–Ί
β—„max_growth8.0β–Ί

Tiled upscaling has been the standard answer to "my model can't render that big" since Ultimate SD Upscale: cut the picture into overlapping tiles, let the model redraw each one, blend the joins. Tiled Upscale is the first half of that pipeline, and what makes it worth a look is how much arithmetic the author did before touching a tensor. It decides your redraw size for you, and - this is the part I'd buy it for - it tells you in plain words what it decided.

How it works

You set one thing: megapixels, the size of the finished picture. 0 keeps the source size, which is the setting for a light cleanup pass over something already big enough.

Everything after that is planning, and the planning is where the opinions live. The finished size isn't simply redrawn at full size. The node computes a redraw size that is your target, but capped at max_growth (default 8) times the source's own megapixels, never smaller than one tile. So a 0.4 MP phone snapshot asked for 16 MP isn't hallucinated into existence - it's redrawn up to about 3.2 MP and enlarged the plain Lanczos way from there. The code is blunt about why: a picture of a megapixel or more barely changes unless it grows roughly 1.6Γ— per side. If the growth cap still gets you to 90% of the size you asked for, it redraws at your size rather than resample away the last 5%.

The redraw is then cut into equal k Γ— k tiles, each at most tile_megapixels (default 2, with a little slack for grid snapping), and shaped like the picture itself. Anything up to about tile_megapixels stays as one tile. Cap is 144 tiles, past which it stops and tells you to ask for fewer megapixels or a bigger tile rather than quietly melting your VRAM.

The optional inputs:

  • tile_megapixels - the most your model redraws at once. The tooltip gives you the numbers to start from: 2 for Qwen Image 2.1 and Krea 2, 1 for SDXL.
  • overlap - pixels neighbouring tiles share (default 128). That strip is what the stitch blends across.
  • multiple - every tile edge snaps to a multiple of this. Keep it at 32, which the tooltip says works with every model tried and which Qwen Image 2.1 needs.
  • max_growth - raise it if you deliberately want a tiny source redrawn at a big size.
  • upscale_model - optional. Plug a 4x ESRGAN-family model in and the picture is enlarged with it before being cut into tiles; unplugged, it's Lanczos. It calls ComfyUI's own Upscale Image (using Model) under the hood.

Outputs: tiles is a list, so whatever you wire next - your sampler chain - runs once per tile. stitcher is the object Tiled Upscale Stitch needs, and it's not optional; without it the second node can't place anything. before is your picture enlarged the plain way to the finished size, which is the honest A/B against what the redraw actually did. width and height are the real numbers. And report tells you whether you got a genuine redraw or a resample after the fact - check it first when results look soft, because it will say what it did.

Install

The pack comes from ComfyUI Manager (search AusBoss) or:

cd ComfyUI/custom_nodes
git clone https://github.com/ausboss/ComfyUI-AusBoss.git

Restart afterwards; comfy node install ausboss-nodes does the same via comfy-cli. No pip dependencies beyond what ComfyUI already ships. The pack wants ComfyUI 0.27.1 or newer, and the optional upscale_model path needs a core recent enough to have Upscale Image (using Model) - an old core gives you a specific message telling you to update or unplug the model.

Where people get burned

Low denoise is not optional. On tiled diffusion the tile keeps its own content, so 0.3–0.4 denoise is the range that preserves the picture; above about 0.5 the composition starts changing per tile and your joins look like different photographs. And if you're not conditioning the tiles on the source (ControlNet Tile's whole job), tiles drift apart and you get exactly the patchwork artifact the upscaling literature warns about. The before output exists so you can see that drift instead of guessing.

Wiring the tiles list wrong. Because tiles is a list, a node that only accepts one image will either error or silently process the first tile. Send the whole list through the same operations, then give Tiled Upscale Stitch the tiles in the same order and count.

Treating it as a restorer. This is the "more pixels, and let the model sharpen what's there" rung. Inventing detail that was never there is a restoration model's job, and tiled redrawing at high denoise is how you get invented texture on a photo that only needed cleaning.

CategoryπŸ†Ž AusBoss/Image

Inputs (7)

NameTypeDefaultDescription
imageIMAGEThe picture to enlarge and cut into tiles.
megapixelsFLOAT4.000–64Size of the finished picture, in megapixels. 0 keeps the picture's own size.
upscale_modeloptUPSCALE_MODELOptional. Enlarges the picture with an upscale model before it is cut into tiles. Unplugged, it is enlarged the plain way (lanczos).
tile_megapixelsoptFLOAT2.000.25–16The most your model redraws at once. A picture up to about this size stays in one tile. 2 suits Qwen Image 2.1 and Krea 2; use 1 for SDXL.
overlapoptINT1280–1024How many pixels neighbouring tiles share. The join is blended across this strip.
multipleoptINT321–256Every tile's width and height is a multiple of this. 32 works with every model tried; Qwen Image 2.1 needs it.
max_growthoptFLOAT8.01–64A small picture is redrawn at no more than this many times its own megapixels, and enlarged the plain way from there. Raise it to redraw a tiny picture at a big size anyway.

Outputs (6)

NameTypeDescription
tilesIMAGEThe tiles, one after another. Nodes after this run once per tile.
stitcherAUSBOSS_TILE_STITCHERWhat Tiled Upscale Stitch πŸ†Ž needs to put the tiles back together.
beforeIMAGEYour picture enlarged the plain way to the finished size: the before picture.
widthINTWidth of the finished picture in pixels.
heightINTHeight of the finished picture in pixels.
reportSTRINGWhat was done with your picture, in one or two sentences.