ComfyUI Node

H3 Studio

H3 Studio is MiniMax H3 without the forty-node rat's nest

By CGlide·Created 2 months ago·Updated about 24 hours ago· 39
H3 Studio
  • clip
  • vae
  • audio_vae
  • first_frame
  • last_frame
  • positive
  • latent
  • width
  • height
  • length
  • seconds
  • overlap_frames
  • source_video
  • guide_frames
h3_data

If you've assembled a MiniMax H3 workflow by hand, you know the shape of the problem. A row of loaders, three text boxes, a pile of reference slots, and a schematic that reads like a subway map - and you rebuild most of it every time you want a slightly different shot. H3 Studio is one node that replaces the pile. It's the centerpiece of the ComfyUI-CGlide pack, and its author built it to make actual films, not to demonstrate a feature.

H3 is MiniMax's 33B omni-modal video model: one context that takes text, images, video, and audio, and generates clips with native stereo sound up to 2K at 24fps. H3 Studio doesn't touch sampling - same sampler, same steps as a normal H3 graph. It builds the prompt and the conditioning, then hands you the pieces to wire to the sampler like you always have.

What you actually wire

The graph-side inputs are deliberately sparse because everything you set in the panel lives in one JSON widget called h3_data. You feed it clip and vae (plus audio_vae when you want the sound), and optionally first_frame / last_frame for the first-last-frame family of models. All nine image slots, three video slots, three audio slots, and the prompt are inside the panel, serialized into that single widget.

The outputs are the whole deal:

  • positive - the conditioning. Straight into the sampler's positive input.
  • latent - the video latent, into the sampler's latent input.
  • width, height, length, seconds - the geometry and duration the node figured out from your refs. Handy for an empty-latent-style check.
  • overlap_frames and source_video - these are for chaining. Wire them across to Glide Join so the continuation window is typed in exactly one place.
  • guide_frames - the anchored frames for the "continue from" path.

The panel is where the personality lives. A switch at the top flips between the first/last and omni references model families, and the accent color changes so you always know which mode you're in. You drag files onto the slots (or Ctrl+V a screenshot), and type @ in the prompt to drop a reference tag. The "sent to the encoder as" strip is the important one: the model sees "Picture 1, Picture 2…" by which slots are filled, not slot number, so a gap quietly renumbers everything below it. The prompt check flags the two things that cause most of H3's mumbling - the soundscape not covering the clip, and nothing saying what the mouths are doing - before you spend a render discovering it.

Getting it installed

The pack has no pip requirements to speak of; the real install is the model stack. Grab the Comfy-Org MiniMax H3 files and put them in the usual spots: the reference-to-video checkpoint in models/diffusion_models/, the text encoder in models/text_encoders/, and the video and audio VAEs in models/vae/. If your card chokes on the ~21GB checkpoint, the w4a8 quant from Kijai's experimental repo is about 11.8GB and works with the same workflow.

The node itself is a two-line install:

cd ComfyUI/custom_nodes
git clone https://github.com/CGlide/ComfyUI-CGlide

Restart ComfyUI and it shows up as H3 Studio under the CGlide category. One warning worth taking seriously: on a ComfyUI older than 0.31.0, the w4a8 path produces a black video with sound and no error at all. If you see that, it's the version, not you - update ComfyUI. Also remember a .py change needs a full restart, not a browser refresh, and if a node's widgets change shape between updates, delete and re-add the node.

One more thing before you commit hours to it: the H3 weights themselves are licensed with a territory restriction that excludes the US, EU, UK, and South Korea. If that's you, running the local weights isn't covered by the license, so check the MiniMax H3 Community License before you build a project on it.

CategoryCGlide

Inputs (6)

NameTypeDefaultDescription
clipCLIP
vaeVAE
h3_dataSTRING
audio_vaeoptVAE
first_frameoptIMAGE
last_frameoptIMAGE

Outputs (9)

NameTypeDescription
positiveCONDITIONING
latentLATENT
widthINT
heightINT
lengthINT
secondsFLOAT
overlap_framesINT
source_videoSTRING
guide_framesIMAGE