Tiled Upscaler (experemental)
DIY tiled-diffusion upscaling in one node (author calls it experimental)
- model
- vae
- positive
- negative
- image
- upscale_model_opt
- IMAGE
The node's own display name is "Tiled Upscaler (experemental)" - typo included, straight from the author. Read that as an honest label, not a knock: this is a from-scratch implementation of an idea the community already has two well-established answers for - Ultimate SD Upscale and Tiled Diffusion + Tiled VAE. Both split a large image into overlapping tiles, run diffusion on each tile separately, and blend the seams, which is how you get arbitrary output resolution without blowing your VRAM budget on one giant denoise pass. This node does the same job as a single self-contained node instead of a multi-node stack, but it doesn't have the track record those two do - no ControlNet Tile guidance built in, no years of community testing behind it.
What it does
You feed it a model, vae, the image you're upscaling, and positive/negative conditioning - same core inputs as a KSampler, because that's essentially what's running under the hood, just tiled. upscale_factor (1–4x) sets how much bigger the output is. tile_size (default 512) is how big each chunk is before blending, and overlap (default 64) is how much neighboring tiles share - raise overlap if you see seams between tiles. steps, cfg, sampler_name, and scheduler control the diffusion pass on each tile exactly like they would on a normal KSampler. denoise defaults to a conservative 0.2 - on the low end of the typical hi-res-fix range, which keeps the pass detail-adding rather than composition-changing; raise it if you want the upscale to actually invent more than it's currently doing.
Two smaller controls worth knowing: force_full_tiles (default on) pads edge tiles out to the full tile_size so the denoise strength behaves consistently at the image's edges instead of weakening on partial tiles, and preview_freq controls how often the live preview updates during the run - higher numbers mean less UI overhead, lower means you see progress more often.
There's also an optional upscale_model_opt slot for an ESRGAN-style upscale model. Wire one in and this becomes a proper two-stage pipeline - a fast, non-generative pixel upscale first, then the tiled diffusion pass adds detail on top, which is the standard "more pixels, then more detail" pattern rather than asking the diffusion pass to do both jobs alone.
Installing it
ComfyUI Manager: search DemonAlone-nodes-ComfyUI, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/DemonAlone/SimpeStringGenerator_ComfyUI
No model downloads bundled - you supply your own model, VAE, and optionally an upscale model, same as any sampling node.
Where people get burned
tile_size is your main VRAM lever: smaller tiles use less memory but mean more seams to blend and a slower overall run; overlap adds compute per tile, so pushing it up to fix visible seams costs render time. If you skip upscale_model_opt, you're asking pure diffusion to do the whole size increase, which is slower and rougher than pre-scaling with a real ESRGAN model first.
Given this is labeled experimental by its own author and has essentially no community track record, treat it as something to test on a throwaway image before trusting it on a real job. If it doesn't hold up, Ultimate SD Upscale or Tiled Diffusion + Tiled VAE (paired with ControlNet Tile for guided results) are the community-proven versions of the same idea.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| vae | VAE | — | |
| upscale_factor | FLOAT | 2.01–4 | — |
| tile_size | INT | 51264–2048 | — |
| overlap | INT | 640–256 | — |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–100 | — |
| cfg | FLOAT | 7.000–100 | — |
| denoise | FLOAT | 0.200–1 | — |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| image | IMAGE | — | |
| preview_freq | INT | 11–100 | How often to update the preview (e.g., 2 for every other step) |
| force_full_tiles | BOOLEAN | true | Pad edge tiles to full tile_size for consistent denoise effect |
| upscale_model_optopt | UPSCALE_MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |