Auto MiniMax H3 VAE Decode (Zero-OOM)
Decoding a MiniMax H3 video without the VRAM bomb
- samples
- vae
- images
MiniMax H3 (a.k.a. Hailuo 3.0) is the 33B open-weights video model that dropped in August 2026, and its VAE decode is where a lot of rigs die. Video latents are huge, and decoding a long clip in one shot is a one-way ticket to a CUDA OOM. This node is the pack's answer: it runs the decode on the secondary GPU, tiles the frame space into chunks, and streams the finished frames out to system RAM instead of letting them pile up in VRAM.
The honest version of the pitch: it's a VRAM-managed H3 decoder, not a faster one. You use it because your single-GPU decode keeps crashing, or because you're running H3 alongside a sampler on GPU0 and need the decode to happen somewhere that doesn't collide with it.
How it works
Three safety mechanisms stacked on each other. First, device isolation: it moves the VAE to your target_device (default "Auto (Secondary GPU - cuda:1)") so decoding doesn't compete with sampling on the main card. Second, tiled decoding - the spatial_tile_size setting (256 / 384 / 512) breaks the frame into overlapping tiles, with the 256 default explicitly noted as "matches reference quality and eliminates OOM." Third, frame streaming: with output_device on cpu, decoded frames go straight to system RAM so a 100+ frame video never materializes as one giant tensor in GPU memory.
Under the hood it prefers the fast decoder from the ComfyUI_MiniMaxH3_LatentUpscaler pack if that's installed; if not, it silently falls back to ComfyUI's own tiled decode. It also clears the CUDA cache before and after, which is the kind of housekeeping you stop noticing until it's missing.
The inputs that matter
- samples - the H3 video latent (
Bx24xTxHxWper the tooltip) straight from your sampler. - vae - the H3 video VAE.
- spatial_tile_size - 256 default, and the tooltip is blunt: 256 matches reference quality and eliminates OOM. Bumping to 512 risks memory for marginal quality gain.
- output_device -
cpuby default for the no-VRAM-spike guarantee;gpuif you want frames kept on the card (say, to feed another GPU-side node).
Output is a single images (IMAGE) tensor you can pass to a video preview/save node.
Installing it
Same pack as always:
cd ComfyUI/custom_nodes
git clone https://github.com/nexusfinancial-dev/ComfyUI-AutoMultiGPU.git
cd ComfyUI-AutoMultiGPU
pip install -r requirements.txt
No model files to download in the pack itself - H3's VAE comes from the model's own distribution. For the fast decode path, install ComfyUI_MiniMaxH3_LatentUpscaler; skip it and this node still works, just slower.
Where people get burned
The name says "Zero-OOM," and that's a promise the README makes freely - but it's really "zero-OOM provided your RAM can hold the streamed frames." A long video decoded to CPU still consumes system memory by the gigabyte, so check your RAM budget, not just your VRAM. And remember H3's open weights are territory-restricted (geofenced out of the US, EU, UK, and Korea), so the model file you point this at has to be obtained wherever that license allows.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | MiniMax H3 Video Latent (Bx24xTxHxW) | |
| vae | VAE | MiniMax H3 Video VAE | |
| target_device | COMBO | Auto (Secondary GPU - cuda:1) | 4 options: Auto (Secondary GPU - cuda:1), cuda:1, cuda:0, cpu |
| spatial_tile_size | COMBO | 256 | 256 matches reference quality and eliminates OOM. |
| output_device | COMBO | cpu (Safe - No VRAM Spike) | 2 options: cpu (Safe - No VRAM Spike), gpu |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |