ComfyUI Node Runs on cloud

Tiled Upscaler Script

Tiled Upscaler Script

By jags111·Created 3 years ago·Updated 4 months ago· 1,485
Tiled Upscaler Script
  • script
  • SCRIPT
upscale_by1.25
tile_size512
tiling_strategy
tiling_steps30
seed0
denoise0.40
use_controlnetfalse
tile_controlnet
strength1.00

Upscaling a big image on a modest GPU means tiling - splitting it into overlapping chunks, running diffusion on each, and blending them back. Tiled Upscaler Script packs that whole dance into one node that plugs into an Efficient KSampler. Per the pack's own README, it "attempts to encompass BlenderNeko's ComfyUI_TiledKSampler workflow into 1 node," which is a fair description: it's the Efficiency Nodes take on tiled diffusion upscaling.

How it works

Tiled upscaling belongs to the "more pixels, arbitrary size, limited VRAM" branch of the upscaling family - the same territory as Ultimate SD Upscale and Tiled Diffusion. The image gets divided into tiles of tile_size, each tile is re-diffused at low denoise to add detail, then they're stitched together. Because only one tile is on the GPU at a time, you can push to 4K on 6-8GB of VRAM.

As a Script node, it doesn't run by itself - its SCRIPT output connects to the script input of an Efficient KSampler, and the sampler does the work with these settings applied. Script nodes in this pack can be chained, so you can stack this with the Noise Control script on the same sampler.

The settings that matter

  • upscale_by (default 1.25) - the multiplier. 1.5–2x is the usual sweet spot; going bigger in one pass invites seams.
  • denoise (default 0.4) - the single most important dial. Around 0.3–0.5 adds coherent detail without repainting; too high and each tile invents its own content and they stop agreeing at the seams.
  • tile_size (default 512) and tiling_strategy (random, random strict, padded, simple, none) - bigger tiles mean fewer seams but more VRAM; the randomized strategies help hide the grid.
  • use_controlnet - flip this on to feed each tile a Tile ControlNet condition, which is what keeps tiles faithful to the source. This is the difference-maker for photoreal work, and the KB backs it up: tile ControlNet plus tiled diffusion is one of the most reliable realistic upscalers going. It needs a tile ControlNet model available (the tile_controlnet dropdown is empty until you have one installed).

There's also tiling_steps, seed, and strength (the ControlNet strength when use_controlnet is on).

Installing it

ComfyUI Manager → search Efficiency Nodes for ComfyUI, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/jags111/efficiency-nodes-comfyui

Restart ComfyUI. For the ControlNet-guided path you'll need a tile ControlNet model in models/controlnet, plus comfyui_controlnet_aux if you want the preprocessing side.

Common issues

The README's own advice, and it's real: set your KSampler's preview_method to vae_decoded_only when running this script. Live-previewing every tile is slow and noisy, and this keeps the run sane.

tile_controlnet shows nothing to select? That's expected until you've actually got a tile ControlNet model installed - the dropdown populates from models/controlnet. Leave use_controlnet off if you don't have one.

Seam artifacts usually trace back to denoise being too high or tiles too small - drop the denoise toward 0.3 and bump tile_size before blaming the node.

And the pack-wide one: if Efficiency Nodes hits IMPORT FAILED at startup (a pip freeze non-zero exit is the recurring cause), the whole pack drops and this script goes with it. Update ComfyUI, update the node, verify the environment.

CategoryEfficiency Nodes/Scripts

Inputs (10)

NameTypeDefaultDescription
upscale_byFLOAT1.250.01–8
tile_sizeINT512256–16384
tiling_strategyCOMBO5 options: random, random strict, padded, simple, none
tiling_stepsINT301–10000
seedINT00–18446744073709550000
denoiseFLOAT0.400–1
use_controlnetBOOLEANfalse
tile_controlnetCOMBO0 options:
strengthFLOAT1.000–10
scriptoptSCRIPT

Outputs (1)

NameTypeDescription
SCRIPTSCRIPT