Nodes/ComfyUI-TJ_NODE/MiniMax H3 Sequencer (TJ)
ComfyUI Node

MiniMax H3 Sequencer (TJ)

The conditioning + latent builder at the heart of the H3 workflow

By designloves2·Created 3 months ago·Updated 5 days ago· 13
MiniMax H3 Sequencer (TJ)
  • clip
  • vae
  • audio_vae
  • first_frame
  • last_frame
  • ref_images
  • ref_video_1
  • ref_video_2
  • ref_video_3
  • ref_video_audio_1
  • ref_video_audio_2
  • ref_video_audio_3
  • ref_audio_1
  • ref_audio_2
  • ref_audio_3
  • audio_lock_source
  • prev_latent
  • positive
  • latent
  • audio
  • fps
  • total_frame
  • report
auto_setfalse
prompt
modeText
width1344
height768
length124
ref_image_sizematch
audio_lockfalse
audio_lock_modelock
audio_lock_strength0.50
audio_lock_fitpad_silence
one_takefalse

MiniMax H3 - the 33B open-weights omni-modal video model with native stereo audio - doesn't run like an SD checkpoint. It samples video and audio together in one combined latent, on a weird frame grid, and its reference conditioning is a whole ritual of encoding images, videos, and audio into special blocks. Building that graph by hand with ComfyUI's official low-level nodes is doable, but it's a dozen wires and a recipe you'll forget. MiniMax H3 Sequencer (TJ) collapses the conditioning-and-latent side into one node with three modes.

The three mode choices are the shape of what it builds:

  • Text - plain text-to-video. Your prompt becomes conditioning, and an empty H3 AV latent gets created at width × height for length frames.
  • First-Last - like text, but you also feed first_frame and last_frame images, which become keyframes in the conditioning (resolved_frame_index 0 and the final frame). This is the "give me a start and end, fill the middle" mode.
  • Reference - the full multi-reference mode: ref_images, up to three reference videos (ref_video_1..3) with optional matching audio, plus up to three standalone audio refs. The node resizes and VAE-encodes everything into minimax_refs conditioning blocks, the same format ComfyUI's official H3 nodes produce.

The length widget is where the H3 weirdness shows up: it's in 24fps frames, and it gets rounded up to H3's 17k+5 grid (the model was trained on that spacing - 124 frames, the default, is 17×7+5). So don't expect 130 frames; you get the next grid-legal length, and total_frame tells you what it actually is. Everything downstream that wants to stay aligned has to live on that grid, and this pack's other nodes do.

Inputs worth knowing beyond the mode stuff:

  • clip, vae, audio_vae - the H3 CLIP, the video VAE, and the H3 audio VAE. All three are mandatory. If you don't have the audio VAE connected, the node refuses to run.
  • audio_lock + audio_lock_mode/strength/fit - built-in audio locking (see the separate Audio Lock node; this is the same logic inline, without the clobbering bug).
  • one_take - enables the latent-continuation logic when a prev_latent is present.
  • prev_latent - feed the previous clip's sampled latent here for One-Take chaining.

The outputs:

  • positive (CONDITIONING) - wire into a sampler.
  • latent - the H3 AV latent (video + audio streams in one NestedTensor), ready for SamplerCustomAdvanced.
  • audio - the locked audio passes through here when audio_lock is on.
  • fps and total_frame - 24 and the grid-aligned frame count, for downstream save/stitch/interpolate nodes.
  • report - a STRING describing what the mode, masks, and alignment actually did. Read it; it's how you debug this node.

The genuinely clever bit is in the masks. One-Take and Audio Lock both need to write noise_mask into the latent to tell the sampler "preserve this region." If you chain the standalone Audio Lock into the standalone Latent Continuation, the second node's mask assignment overwrites the first's. The Sequencer computes the video mask and audio mask together and merges them into one NestedTensor mask, so both behaviors coexist - audio locked, video continuation active - without either clobbering the other. That single decision is the reason to use this node over hand-wiring the pair.

Install

Ships in the ComfyUI-TJ_NODE pack:

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

or ComfyUI Manager → "ComfyUI-TJ_NODE", then restart. The node itself needs no extra Python packages - it uses ComfyUI's built-in H3 support. What you do need is the H3 model files themselves (the ~42.5GB diffusion weights plus the H3 video VAE and audio VAE), which the pack does not download for you. And be aware of the license: the MiniMax H3 Community License excludes the US, EU, UK and South Korea from running the local weights.

Troubleshooting

  • "H3 AV latent이 아닙니다" / stream-format errors - the LATENT you fed isn't a proper H3 two-stream latent (video [B,24,T,H,W] + audio). It only accepts latents from H3 conditioning nodes.
  • Reference video under 5 frames - H3 refs need a minimum of ~5 frames (about 0.2s). Trim it.
  • Audio lock errors when audio_lock is on - audio_lock_source must be connected; it's not optional once you flip the switch.
  • Frames don't match downstream - always read total_frame, not your raw length. The grid rounding is the cause of nearly every "why is my video longer/shorter than I asked" complaint.
Category ✨ TJ_Node/Video

Inputs (29)

NameTypeDefaultDescription
auto_setBOOLEANfalse
clipCLIP
vaeVAE
audio_vaeVAE
promptSTRING
modeCOMBOText3 options: Text, First-Last, Reference
widthINT134432–8192
heightINT76832–8192
lengthINT1245–360024fps 프레임 수, 17k+5 그리드로 정렬됩니다. One-Take를 쓸 때도 클립마다 이 길이(전체 grid) 그대로 생성하고, 겹치는 앞부분만 mask=0으로 보존합니다.
ref_image_sizeCOMBOmatch2 options: match, max
audio_lockBOOLEANfalse
audio_lock_modeCOMBOlock2 options: lock, remix
audio_lock_strengthFLOAT0.500–1
audio_lock_fitCOMBOpad_silence3 options: pad_silence, loop, stretch_none
one_takeBOOLEANfalse
first_frameoptIMAGE
last_frameoptIMAGE
ref_imagesoptIMAGE
ref_video_1optIMAGE
ref_video_2optIMAGE
ref_video_3optIMAGE
ref_video_audio_1optAUDIO
ref_video_audio_2optAUDIO
ref_video_audio_3optAUDIO
ref_audio_1optAUDIO
ref_audio_2optAUDIO
ref_audio_3optAUDIO
audio_lock_sourceoptAUDIO
prev_latentoptLATENT

Outputs (6)

NameTypeDescription
positiveCONDITIONING
latentLATENT
audioAUDIO
fpsFLOAT
total_frameINT
reportSTRING