Advanced Tiling VAE Decode
Swap this in for VAE Decode and the tile survives the trip to pixels
- settings
- samples
- vae
- IMAGE
The model patch in this pack makes your sampler sample seamlessly - but the latent it produces has been wrapped into an odd shape, and a stock VAE Decode node has no idea what to do with it. Advanced Tiling VAE Decode is the node that sits at the end of the pipeline and turns that wrapped latent into a usable image. It's the decode-side twin of Advanced Tiling, and every tiled workflow needs both.
How it works
The node takes your VAE, deep-copies it (copy.deepcopy - so your loaded VAE is never mutated), and applies the same Conv2d tiling patch the model node uses, then decodes your latent with the patched copy. That matters most for hexagon mode, where the content is arranged so the usable tile is in the middle and the corners are wrapped waste. Decode with the patch active, and what comes out is consistent with how the model sampled - the seams line up at the pixel level instead of fighting each other.
The code also tolerates 5D latents (the (B, T, H, W, C) shape some video-family VAEs like WanVAE produce) by squeezing them down to 4D before decoding. This is still an image tiling pack, but it won't choke if you feed it a latent from one of those VAEs.
Inputs and outputs
All four inputs are required:
- settings - the
ADVANCED_TILING_SETTINGSobject from Advanced Tiling Settings. Same object as the Advanced Tiling node gets; keep them in sync. - samples - the LATENT straight out of your KSampler.
- vae - the VAE for whatever model you're tiling. For Qwen Image that's
qwen_image_vae.safetensors, for FLUX.2 it'sflux2-vae.safetensors, and for SD/SDXL the VAE from your checkpoint works. Mismatched VAE, same problems as anywhere else in ComfyUI. - crop - a boolean, default true. What it actually does is a bit subtle: it tacks an extra mask channel onto the output image marking the region that maps to itself - i.e. the valid tileable area, the inside of the hexagon. It doesn't physically crop the image for you; it hands you the mask so a downstream node can. The pack's example workflows ship with it off, and off gives you a clean 3-channel image that PreviewImage and SaveImage are happy with. Leave it off unless you specifically want the mask channel.
Output is a single IMAGE, wired into PreviewImage or SaveImage.
How to install
Same pack as the rest, and again there are no extra Python dependencies - the decode node is pure torch. ComfyUI Manager: search "Advanced Tiling". Or:
cd ComfyUI/custom_nodes
git clone https://github.com/JosefKuchar/ComfyUI-AdvancedTiling
Restart ComfyUI. The only "model files" involved are the VAE you were already going to load for your checkpoint.
Common issues
- The decode is slow. Really slow on the first pass. This is the known cost - the README lists "optimize VAE decode (first pass is very slow)" as an open TODO. It's the node, not your machine. If you're iterating on a prompt, generate a few and decode once.
- Output has a weird extra channel or looks tinted - you've left
cropon and you're feeding the 4-channel output into something expecting RGB. Turn crop off, or consume the mask channel deliberately. - Image looks nothing like the tile you wanted. Check that
settingshere matches the Settings node feeding Advanced Tiling. Drift between the two means the model sampled one wrap and the decoder rendered another. - "Advanced Tiling VAE Decode" doesn't exist in your node list. The pack didn't install or ComfyUI wasn't restarted - go back to the install step.
Wire it in place of your normal VAE Decode, keep the settings shared with the model patch, and the seamlessness survives the trip from latent to pixels.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| settings | ADVANCED_TILING_SETTINGS | — | |
| samples | LATENT | — | |
| vae | VAE | — | |
| crop | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |