Nodes/ComfyUI-RH-MiniMax-H3/RunningHub MiniMax H3 Dual VAE Loader
ComfyUI Node

RunningHub MiniMax H3 Dual VAE Loader

MiniMax H3 needs two VAEs, and this node loads both at once

By RH-RunningHub·Created 9 days ago·Updated 9 days ago· 0
RunningHub MiniMax H3 Dual VAE Loader
    • h3_vae_bundle
    video_vae_pathMiniMax-H3-video_vae.safetensors
    audio_vae_pathMiniMax-H3-audio_vae.safetensors

    Most ComfyUI workflows have one VAE. MiniMax H3 has two - a 24-channel video VAE for the frames and a 32-channel audio VAE for the sound - because the model generates both streams together in one latent space. RHMiniMaxH3VAELoader is the node that loads them as a pair, and it's the loader the pack's generation nodes use internally.

    What it does

    Two inputs, both defaulting to the converted bundle's files:

    • video_vae_path - MiniMax-H3-video_vae.safetensors, the video VAE.
    • audio_vae_path - MiniMax-H3-audio_vae.safetensors, the audio VAE.

    One output: h3_vae_bundle (type MINIMAX_H3_VAE_BUNDLE), a typed handle you feed to the h3_vae_bundle input on RHMiniMaxH3VideoGen, RHMiniMaxH3RefGen, or the legacy encode nodes.

    Like the text-encoder loader, this is the merged successor to the FL2VA/Ref2VA VAE loader pair. Both partitions ship byte-identical video and audio VAEs, so the partition knob was pure decoration and got removed. Old partition-specific loaders still exist as deprecated nodes purely so saved workflows keep opening.

    Why the pair matters

    If you've only done image or video work before, the "dual VAE" thing is the single most H3-specific concept in this pack. Video frames and audio are denoised as two separate streams with different flow shifts (video_shift 12, audio_shift 3 by default) but sampled together - that's why a normal KSampler can't drive H3. The two VAEs decode those streams back into pixels and waveform at the end. Split them, and nothing works; the bundle is the contract.

    Do you need to touch it?

    For a new workflow, usually not. The generation nodes auto-load both VAEs when h3_vae_bundle is left empty. You'd wire the loader in explicitly to share one loaded pair across multiple generation nodes, or to mix VAE weights from different directories - the generation nodes flag that specific case as needing an explicit link. The one genuinely common reason to reach for it: you're building the manual V2A chain (encode video → sample → decode) and want the VAEs in your own hands.

    Install and models

    Manager (search "ComfyUI-RH-MiniMax-H3") or the usual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/RH-RunningHub/ComfyUI-RH-MiniMax-H3.git
    pip install -r ComfyUI-RH-MiniMax-H3/requirements.txt
    

    Restart, then the ~95 GiB bundle into models/MiniMax-H3-INT8-CONVROT/:

    cd /path/to/ComfyUI
    hf download Gluttony10/MiniMax-H3-INT8-CONVROT --local-dir ./models/MiniMax-H3-INT8-CONVROT
    

    Both VAE files ship in that bundle. If the loader complains about a missing file, it's the same root cause as the other loaders: the bundle isn't in the exact directory the pack scans.

    Gotchas

    A subtle one: the audio VAE lives on the audio stream, so if you're only testing video you still need it loaded - the bundle always carries both. And don't substitute a normal ComfyUI VAE here; the channel counts are wrong and the decoder will either reject the latent or produce garbage. Use the files the pack expects and the legacy MiniMax-H3 directory fallback stays supported if you're mid-migration.

    CategoryRunningHub/MiniMax H3/loaders

    Inputs (2)

    NameTypeDefaultDescription
    video_vae_pathCOMBOMiniMax-H3-video_vae.safetensors使用转换模型包中的 Video VAE 权重。
    audio_vae_pathCOMBOMiniMax-H3-audio_vae.safetensors使用转换模型包中的 Audio VAE 权重。

    Outputs (1)

    NameTypeDescription
    h3_vae_bundleMINIMAX_H3_VAE_BUNDLE