Nodes/ComfyUI/Empty MiniMax H3 AV Latent
ComfyUI Node Runs on cloud

Empty MiniMax H3 AV Latent

The blank canvas MiniMax H3 fills with picture and sound at once

By Comfy-Org·Created 4 years ago·Updated about 5 hours ago· 128,055
Empty MiniMax H3 AV Latent
    • LATENT
    width1344
    height768
    length124

    ComfyUI's MiniMax H3 support landed in August 2026, and it's one of those releases where the model makes video and audio in the same pass. This node is the blank canvas it paints on. Where you'd normally reach for EmptyLatentImage to stub out a latent for the sampler, MiniMax H3 needs a latent that holds two streams at once - the video and the stereo audio - and EmptyMiniMaxH3LatentAV builds exactly that.

    Why it's shaped this way

    MiniMax H3 is a single-stream transformer that denoises one packed token sequence containing both the 24-channel video latent and the 32-channel stereo-audio latent (the prompt side lives in its sibling, MiniMaxH3ImageToVideo). So the LATENT output isn't one plain tensor: it's a nested tensor carrying video at 24 channels and audio at 32, and the sampler treats the two as one job. If you've poked at the LTXV audio+video path and its EmptyLatentAudio, this is the same family trick, just wrapped in a single latent instead of separate ones.

    The three inputs

    Only three, and they're what you'd guess. width (default 1344) and height (default 768) step in multiples of 32, the spatial tile the model's VAE expects at 16x downscale. length is the one you actually fiddle with: it's the frame count at 24 fps, and it snaps up to the model's 17-frame token grid - MiniMax eats 17 pixel frames per 5 latent frames (FRAME_PER_TOKEN is 1,4,4,4,4), so it can't take just any number. Ask for 120 and you get 124, about 5.2 seconds.

    def snap(n):
        while n % 17 != 5:
            n += 1
        return n
    snap(120)  # 124
    snap(360)  # 362
    

    That's why the length control steps by 17 in the UI - it's not being awkward, it's mirroring the grid. The tooltip on the field is the honest summary: 124 frames is ~5s, the trained range runs roughly 124–362 (~15s), and anything longer is untested. The audio stream scales with the snapped frame count too (40 Hz audio-latent rate, 5/3 rescale), so the duration of the sound is pinned to whatever number the grid lands on. You don't set the audio length separately; you don't get to.

    Getting it and the weights

    It ships with ComfyUI core - no install, it arrived with MiniMax H3 support itself. The node loads no files; the model is a normal checkpoint. Drop it in ComfyUI/models/diffusion_models, load the text encoder with CLIPLoader (which now has a "minimax" type), and the checkpoint carries its own VAE.

    Where people get burned

    Almost entirely the length snapping. 119 feels like it should be fine and quietly becomes 124, so if you're chasing a specific runtime you'll find your clip is always a hair longer than you asked. And remember the latent contains audio - if a downstream node in your chain is video-only, an AV latent won't behave like the ones you're used to. If your goal is a ~5s clip, leave length at the 124 default and don't fight the grid; it's the single most tested value on the slider.

    Categorymodel/latent/minimax

    Inputs (3)

    NameTypeDefaultDescription
    widthINT134432–16384
    heightINT76832–16384
    lengthINT1245–3600Frame count at 24 fps, snapped up to the model's 17k+5 grid (124 = ~5s; trained range is ~124-362, longer is untested)

    Outputs (1)

    NameTypeDescription
    LATENTLATENT