Nodes/ComfyUI MiniMax H3 Flow Director/MiniMax H3 Flow Director
ComfyUI Node

MiniMax H3 Flow Director

Chain MiniMax H3 clips into multi-minute videos without OOM

By AlonAshken·Created 28 days ago·Updated 28 days ago· 28
MiniMax H3 Flow Director
  • clip
  • vae
  • sampler
  • sigmas
  • model
  • model_ref2va
  • audio_vae
  • noise
  • ref_images
  • first_frame_override
  • model
  • positive
  • latent
  • images
  • audio
  • fps
  • width
  • height
  • length
  • prompt
  • last_image
  • retake_info
timeline_data
global_prompt
start_second0.00
end_second5.00
duration_seconds5.00
start_frame0
end_frame120
duration_frames120
use_custom_audiofalse
use_custom_motiontrue
inpaint_audiotrue
local_prompts
segment_lengths
frame_rate24
display_modeseconds
guide_strength
custom_width0
custom_height0
resize_methodcrop
divisible_by32
img_compression0
override_audiofalse
ref_image_sizematch
shift_video12.00
shift_audio3.00
ref_image_notes
start0.00
end0.00
duration0.00
width0
height0

MiniMax H3 is genuinely good at generating video locally - but it tops out at a 15-second clip. If you want a minute of footage, or five, the honest answer was "run it on the API" or "stitch in an editor and pray the seams aren't visible." This node is the "no" to both of those. It's a visual timeline director that cuts your long video into small chunks, generates them one at a time, and glues the blocks back together so the joins are invisible - all while keeping VRAM flat no matter how long the timeline gets.

The trick is chaining instead of sampling. Each block on the timeline gets sampled and decoded on its own, so a 1000-frame render never actually exists in memory at once. The decoded last frame of block i is automatically fed back in as the first frame of block i+1 - no manual keyframe handoff - and the duplicate boundary frame is dropped so playback doesn't stutter at the seam. Drop an image onto any later block and it becomes a destination frame the model transitions toward, which is the cleanest way to steer a long scene: the H3 clip morphs into your target instead of you hoping the prompt holds.

The author's own framing is the right one: keep each chunk at 5–10 seconds, chain as many as you like, and control the direction with text and target images rather than one giant prompt.

What you actually plug in

The node is a wrapper around ComfyUI's native H3 pipeline, so the required inputs are the H3 parts you already need for a single clip: the clip (MiniMax's Qwen3-VL text encoder), the vae (video VAE), a sampler from KSamplerSelect, and sigmas from BasicScheduler. Optional but important:

  • model vs model_ref2va - the fl2va weights for plain text/image-to-video, or the ref2va weights when the timeline toolbar has "Refs ON". Only one is actually used per run; the node checks which you need.
  • audio_vae - wire the H3 audio VAE in for joint audio generation and decoding. Skip it and you still get video; audio is then mixed from any audio tracks you dropped on the timeline.
  • global_prompt - conditions every block (style, atmosphere, characters). This is the "keep it coherent" lever; the per-block prompts live in the timeline editor.
  • noise from RandomNoise, plus the power-user knobs (shift_video, shift_audio, custom canvas, divisible_by, first_frame_override).

You don't hand-edit timeline_data - that's the JSON state the built-in editor writes automatically. Drag blocks, drop images and audio onto them, and the node eats the state.

The outputs are the payoff: images (full concatenated decoded frames at 24 fps), audio (stereo at 44.1 kHz), and fps (always 24.0). Wire all three straight into a VHS Video Combine and you're done - no manual assembly.

Installing it

ComfyUI Manager → search "MiniMax H3 Flow Director", or:

cd ComfyUI/custom_nodes
git clone https://github.com/AlonAshken/ComfyUI-MiniMaxH3-FlowDirector.git

Restart ComfyUI. The requirements (av, numpy, Pillow, torch) are usually already in your environment. The real dependency isn't Python - it's ComfyUI itself. This node imports comfy_extras/nodes_minimax_h3.py, the native H3 support that landed with day-zero H3 support, so you need a current ComfyUI and the H3 model files (fl2va, ref2va, the Qwen3-VL text CLIP, video VAE, audio VAE). Expect roughly 42 GB for the full weights, and note the H3 Community License excludes the US, EU, UK and South Korea from the local-weights path - if you're in one of those, check your terms before downloading.

Where people get burned

First: chunking keeps VRAM constant, it doesn't shrink the model. A 33B model on a card that can't hold it will still fail - the node just means the 12th block won't be the one that OOMs. Second, if you see the "update ComfyUI" style error about nodes_minimax_h3.py not being found, that's a stale ComfyUI, not a broken install. Third, it's a brand-new pack with zero traction so far - expect rough edges and a changelog that moves. For a first run, load the included MINIMAX_H3_FLOW_DIRECTOR_ULTRA_TURBO.json workflow and copy its wiring rather than guessing.

CategoryMiniMax H3

Inputs (41)

NameTypeDefaultDescription
clipCLIPMiniMax Qwen3-VL text encoder.
vaeVAEminimax_h3_video_vae.
samplerSAMPLERSampler from KSamplerSelect.
sigmasSIGMASSigmas from BasicScheduler.
timeline_dataSTRINGJSON state of the timeline editor (auto-managed).
modeloptMODELfl2va weights (minimax_h3_fl2va_*), used when toolbar is 'Refs OFF'.
model_ref2vaoptMODELref2va weights (minimax_h3_ref2va_*), used when toolbar is 'Refs ON'.
audio_vaeoptVAEminimax_h3_audio_vae for joint audio generation and decoding.
noiseoptNOISENoise from RandomNoise.
global_promptoptSTRINGConditions all blocks: style, atmosphere, characters.
start_secondoptFLOAT0.000–10000
end_secondoptFLOAT5.000–10000
duration_secondsoptFLOAT5.000.1–10000
start_frameoptINT00–1000000
end_frameoptINT1201–1000000
duration_framesoptINT1201–1000000
use_custom_audiooptBOOLEANfalse
use_custom_motionoptBOOLEANtrue
inpaint_audiooptBOOLEANtrue
local_promptsoptSTRING
segment_lengthsoptSTRING
frame_rateoptFLOAT241–240
display_modeoptCOMBOseconds2 options: frames, seconds
guide_strengthoptSTRING
custom_widthoptINT00–8192
custom_heightoptINT00–8192
resize_methodoptCOMBOcrop5 options: maintain aspect ratio, stretch to fit, pad, pad green, crop
divisible_byoptINT321–256
img_compressionoptINT00–100
override_audiooptBOOLEANfalse
ref_image_sizeoptCOMBOmatch2 options: match, max
shift_videooptFLOAT12.000.01–100
shift_audiooptFLOAT3.000.01–100
ref_imagesoptIMAGEExtra reference images for ref2va.
ref_image_notesoptSTRING
startoptFLOAT0.00
endoptFLOAT0.00
durationoptFLOAT0.00
widthoptINT0
heightoptINT0
first_frame_overrideoptIMAGEOptional external image to seed Block 0 (overriding timeline image).

Outputs (12)

NameTypeDescription
modelMODELPatched model output.
positiveCONDITIONINGConditioning output.
latentLATENTLatent output.
imagesIMAGEFull concatenated and decoded video frames (24 fps). Wire directly into VHS Video Combine.
audioAUDIOFull concatenated and decoded stereo audio waveform (44.1 kHz). Wire directly into VHS Video Combine.
fpsFLOATAlways 24.0 — MiniMax H3 native output rate. Wire into VHS Video Combine.
widthINTOutput canvas width.
heightINTOutput canvas height.
lengthINTTotal rendered frame count.
promptSTRINGThe compiled storyboard prompt.
last_imageIMAGELast frame of the final block.
retake_infoSTRINGRetake window info.