Nodes/XB_ToolBox/XB-BOX - VAE解码(原版优化)
ComfyUI Node

XB-BOX - VAE解码(原版优化)

The 'ROCm' VAE decoder that secretly tiles everything

By wjluoxiao·Created 5 months ago·Updated 6 days ago· 302
XB-BOX - VAE解码(原版优化)
  • samples
  • vae
  • IMAGE
tile0
overlap0
cleanup不做任何清理

Two names in this node's title are quietly misleading, and understanding that is most of the battle. First, "ROCm" is legacy - this is not an AMD-only node, it's a renamed alias that exists so old XB_ToolBox workflows keep loading. Second, despite saying just "VAE decode," this node always runs a tiled decode under the hood. It's the pack's old AMD-era name for what is effectively VAEDecodeTiled with a cleanup dropdown.

Here's the actual mechanism. The node hands your latent to ComfyUI's official VAEDecodeTiled - the one that chops a big latent into overlapping tiles, decodes each chunk, then stitches them back together - so a huge latent never exists in VRAM all at once. The wrapper's job is just parameter translation (the old node used tile, the official one uses tile_size) plus the shared four-level cleanup option.

Inputs that matter

  • samples - the LATENT to decode, straight from your sampler.
  • vae - your VAE.
  • tile - spatial tile size. Default 0 means "let the wrapper pick 512." Bigger tiles = fewer seams but more VRAM; this is the knob to turn when a decode OOMs.
  • overlap - pixels of overlap between tiles, to hide seams. 0 is fine for many models; bump it if you see tile boundaries.
  • cleanup - no cleanup / cache purge / unload models to RAM / full unload.

Output is a single IMAGE - batch of decoded frames - which you can wire into a Preview, Save, or VAE-Video-Combine.

Why this is the right tool for small cards

Decoding is where a lot of "it generated fine then died" failures actually happen: the VAE wants the whole latent in memory at once, and on a 16GB card a 1080p+ video latent is exactly the kind of tensor that tips it over. Tiled decoding is the standard community answer for this - the "what tile settings are you using for 16GB" question is practically a rite of passage. If your run OOMs at the decode step, this node (or any tiled decode) is the fix, and the tile input is your dial.

Gotchas

Because it's a compatibility alias, the parameter names are the old ones (tile, overlap) rather than the current ComfyUI names (tile_size, overlap). Don't fight it - they map over internally. One genuinely useful detail in the wrapper: if your ComfyUI build doesn't support the temporal decode parameters, the node detects that via signature inspection and silently drops them, so it won't hard-crash on slightly older installs.

Install is the standard pack routine:

cd ComfyUI/custom_nodes
git clone https://github.com/wjluoxiao/XB_ToolBox.git

Restart, and it's under "XB_ToolBox/原版优化". No extra pip packages for this node. The straightforward advice: if you're on a new workflow, just use ComfyUI's own VAEDecodeTiled - this one exists for old-workflow compatibility and the convenience of having the cleanup dropdown. But if you pulled it in from a shared workflow, it will decode your image fine.

CategoryXB_ToolBox/原版优化

Inputs (5)

NameTypeDefaultDescription
samplesLATENT
vaeVAE
tileINT00–4096
overlapINT00–256
cleanupCOMBO不做任何清理4 options: 不做任何清理, 单次缓存清理, 卸载显存模型, 卸载全量模型

Outputs (1)

NameTypeDescription
IMAGEIMAGE