Nodes/ComfyUI-MiniMax-H3-Studio/H3 Studio · Native H3 VAE Decode
ComfyUI Node

H3 Studio · Native H3 VAE Decode

The node that stops your H3 image from OOMing at the last step

By thaakeno·Created 17 days ago·Updated 5 days ago· 79
H3 Studio · Native H3 VAE Decode
  • samples
  • vae
  • frames
  • decoded_frames
  • decode_info
  • recommended_index
tiling_modeAuto
tile_size256
tile_overlap64
tile_batchAuto

H3's weird quirk, if you're coming from an SD/SDXL/Flux mindset: the model denoises a temporal packet of frames together, and getting your still image out means decoding that whole packet through a video VAE. Decoding a 1024×1024 frame is easy. Decoding 5, 9, 13 or 20 of them at once is where people hit the VRAM wall right at the end of a long run. That's the problem this node is built around.

H3StudioDecode decodes with the real MiniMax H3 video VAE - no approximate decoder, which matters because H3's latent space doesn't have a good lightweight approximation the way SDXL does. Feed it the samples latent from your sampler and the vae, and it returns the decoded frames image batch.

How it handles memory

The default tiling_mode is Auto, and it's genuinely good at what it does. It preserves H3's native spatial context - the compatibility tile geometry is 256-pixel tiles with 64-pixel overlap - and only optimizes the batching: equal native tiles get decoded in one forward pass when VRAM permits, with automatic OOM backoff that retries smaller batches instead of dying. On recent ComfyUI builds it can also automatically take the upstream chunked H3 VAE path, which dramatically cuts peak decode memory while preserving the decoded output. Think of chunking as a memory optimization, not a speed switch - the README is explicit about that, and it's the right mental model.

Manual mode exists for the 4MP/8MP experimenters. It exposes tile_size (256 is exactly what current H3 behavior uses), tile_overlap (64 is the compatibility value), and tile_batch (Auto / 1 / 2 / 4). If you're pushing big canvases and Auto's OOM backoff is being too conservative or too aggressive, this is where you tune.

What comes out

The four outputs matter in a specific order:

  • frames - the full decoded IMAGE batch. Wire this into H3 Studio · Single Image Output (FrameSelector).
  • decoded_frames - how many frames you actually got back.
  • decode_info - a string report of what the decoder did (tiling, batching, timing).
  • recommended_index - the decoder's own recommendation for which frame is the "best" still. This is the important one: connect it to the FrameSelector's recommended_index input and its decode_recommended strategy will just pick the right frame for you.

The complete temporal profile you requested upstream is preserved through decode - if you asked for 13 frames, you get 13 frames and the choice of which one to keep is left to you (or the recommendation).

Install

cd ComfyUI/custom_nodes
git clone https://github.com/thaakeno/ComfyUI-MiniMax-H3-Studio.git
cd ComfyUI-MiniMax-H3-Studio
python -m pip install -r requirements.txt

Restart and hard-refresh. The core pack has no extra pip dependencies, and this node needs no model downloads beyond the H3 video VAE you already need for the workflow. If you hit an OOM at decode with Auto mode, the first move is trying Manual with a smaller tile_batch - not buying a bigger card.

CategoryH3 Studio/Runtime

Inputs (6)

NameTypeDefaultDescription
samplesLATENTSampled H3 latent including Studio temporal-profile metadata.
vaeVAEThe native MiniMax H3 video VAE. No approximate decoder is used.
tiling_modeoptCOMBOAutoAuto keeps H3's compatibility tile geometry (256/64) and optimizes tile batching only. Manual enables custom native tile geometry.
tile_sizeoptINT256128–1024Manual native spatial tile size in decoded pixels. 256 exactly matches current H3 behavior; 320/384/512 are intended for high-resolution benchmarking.
tile_overlapoptINT6416–512Manual minimum overlap in decoded pixels. 64 is the compatibility value.
tile_batchoptCOMBOAutoNumber of equal spatial tiles decoded in one native H3 forward. Auto uses free VRAM and backs off automatically on OOM.

Outputs (4)

NameTypeDescription
framesIMAGEComplete decoded profile(s), flattened batch-major for standard ComfyUI IMAGE output.
decoded_framesINTTotal number of emitted images across all batch items.
decode_infoSTRINGNative tile plan, live-work summary and preferred-frame diagnostics.
recommended_indexINTPreferred zero-based still index for the first batch item. Connect it to Single Image Output.