Nodes/Boyonodes/Boyo Tiled VAE Decode
ComfyUI Node

Boyo Tiled VAE Decode

The tiled VAE decoder with a built-in NSFW filter — read the fine print before you use it

By DragonDiffusionbyBoyo·Created 2 years ago·Updated 26 days ago· 16
Boyo Tiled VAE Decode
  • samples
  • vae
  • IMAGE
horizontal_tiles2
vertical_tiles2
overlap32

Here's the thing the name doesn't tell you: Boyo Tiled VAE Decode isn't just a tiled decoder. It's a tiled decoder with an NSFW classifier bolted onto the end, and if the classifier decides your image is explicit, it replaces the decoded image with a placeholder picture from the pack's images/example.png folder. Silently. You don't get a warning node, you get a different image.

So before anything else: if you generate NSFW content, do not put this node in your workflow, because it will quietly destroy your output. That single fact is why I'd treat this as a niche tool rather than the pack's go-to decode node. The tiled decoding itself is legitimately useful - but the safety net is a feature you need to explicitly decide you want.

What the tiling actually does

Decoding a latent with ComfyUI's standard VAE Decode holds the whole image in VRAM at once. Tiling splits the latent into a grid - horizontal_tiles × vertical_tiles, both 1–8, default 2×2 - decodes each tile with an overlap (16–128 pixels, default 32) so the edges blend, and stitches the results together. The win is predictable: big images decode without the OOM that kills a single-pass decode on a modest GPU. This is the same trick every tiled VAE node in the ecosystem uses, and for upscaling workflows where you're decoding a latent that's already huge, it's the difference between "runs" and "kills the session."

The trade-off is the usual one: more tiles means more total work and visible seam risk if overlap is too small. The overlap blending is handled with a weight map, so decent seams are the default at 32px; drop lower only if you're tight on VRAM and accept some line artifacts.

How the filter sneaks in

After decoding, every image is run through a Hugging Face image-classification pipeline (Falconsai/nsfw_image_detection) from transformers. If the "nsfw" label scores above 0.9, the frame is swapped for a resized copy of the pack's placeholder image. This is why the node needs transformers installed and why the first run downloads a small classifier model from Hugging Face - expect a pause on init the first time.

That also means this node has a heavier dependency footprint than the name suggests. It's not "just" a VAE decode; it pulls in transformers, the pipeline's model, and PIL. None of it is in the pack's minimal install story.

Inputs and outputs

Required: samples (LATENT), vae (VAE), horizontal_tiles, vertical_tiles, overlap. One output: IMAGE, ready to wire to a Save Image or preview.

The author assumes the standard 8× VAE scale factor, which is correct for SD 1.5, SDXL, and Z-Image-class VAEs. If you're decoding something with a different scale (Flux-family latent architectures), the geometry will be wrong - this node is not the one for that.

Installing

cd ComfyUI/custom_nodes && git clone https://github.com/DragonDiffusionbyBoyo/Boyonodes
pip install transformers

restart, and be ready for the classifier download on first use.

Bottom line

If you want tiled VAE decoding without a censor, this is the wrong node - grab one of the many pure tiled-decode options instead. If you genuinely want the filter (you're running an SFW pipeline on shared hardware, say), this is one of the few all-in-one packages. Either way, now you know the fine print, which is more than the node title gives you.

CategoryBoyonodes

Inputs (5)

NameTypeDefaultDescription
samplesLATENT
vaeVAE
horizontal_tilesINT21–8
vertical_tilesINT21–8
overlapINT3216–128

Outputs (1)

NameTypeDescription
IMAGEIMAGE