ComfyUI Node

MiniMax H3 Chain Director

The same long-video trick, without the Chinese UI

By luxu1999·Created 23 days ago·Updated 14 days ago· 21
MiniMax H3 Chain Director
  • model_r2v
  • model_i2v
  • video_vae
  • audio_vae
  • clip
  • image_0
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • ref_video
  • ref_audio
  • images
  • audio
  • fps
  • frame_count
global_prompt
timeline_prompt
duration_preset30s
split_preset5s per segment (recommended)
resolution_preset0.4MP (480p)
ref_max_size864
ref_video_fps0
auto_anchortrue
steps4
samplerer_sde
schedulersimple
cfg1.00
seed0
shift_video12.00
shift_audio3.00

The MiniMax H3 Chain Director pack ships its flagship node twice: once with a Chinese UI (MiniMax H3 Chain Director|链式导演台) and once as this one - the pure-English version. Same node, same logic, same outputs, same ~60GB of required weights. If your ComfyUI isn't set up for Chinese tooltips and error messages, this is the variant you want. There's nothing else to it: MiniMaxH3ChainDirectorEN calls the exact same core engine as the CN node with lang="en", which flips every label, tooltip and red-text error into English.

So what does it do? It's the one-node answer to MiniMax H3's two hard limits: single-shot generation caps around 362 frames (~15s), and long clips at high resolution blow up VRAM. The node splits your requested duration into N segments, renders segment 1 as r2v (reference-image-to-video) and segments 2+ as i2v where the previous segment's last frame is hard-locked as the first frame - that first-frame lock is the trick that stops a character from quietly becoming a different person between segments. Then it concatenates all the frame batches and audio waveforms and hands you a finished clip. It's the same split-and-chain technique people hand-build with sliding-window samplers, but collapsed into one node where you only fill in duration, per-segment length, resolution and prompts.

The inputs. The model wiring is where everything starts: model_r2v (ref2va base, segment 1), model_i2v (fl2va base, segments 2+), video_vae, audio_vae, and clip (the qwen3vl_32b text encoder). image_0 is your main scene/subject reference → <Picture 1> in prompts, with image_1..image_8 as optional references for <Picture 2..9>. Then the two prompt boxes: global_prompt (constant scene/style/character/camera across the whole video) and timeline_prompt, which is required - one line per block, like 0-5s: character walks left. Optional ref_video_0..2 (frame-batch images) and ref_audio_0..2 feed the first r2v segment.

The parameters you'll actually set:

  • duration_preset and split_preset - total duration (5–120s) and seconds per segment (5/10/15). They must divide evenly: 60 ÷ 10 = 6 segments. If not, red-text error - the node refuses to silently drop seconds. Max ~15s (362 frames) per segment.
  • resolution_preset - 0.4MP (480p) / 0.9MP (720p) / 2.0MP (1080p); keep ref_max_size roughly matching.
  • steps, sampler, scheduler, cfg - defaults are 4 steps, er_sde + simple, CFG 1.0, tuned for the bundled turbo LoRA. Steps are per segment, so doubling to 8 roughly doubles runtime.

Outputs are images (IMAGE), audio (AUDIO), fps (FLOAT, 24.0), and frame_count (INT) - wire images and audio into a VHS_VideoCombine to save the mp4.

Installation is identical to the CN node, since they share a pack: ComfyUI Manager search "ChainDirector / MiniMax-H3", or git clone https://github.com/luxu1999/ComfyUI-MiniMaxH3-ChainDirector.git into custom_nodes/. Then run the pack's one-shot installers - python scripts/install_all.py pulls in AIMixer's ComfyUI_MiniMaxH3_Director (mandatory), VideoHelperSuite and KJNodes plus sageattention==1.0.6, and python scripts/download_models.py grabs the ~60GB of models (ref2va/fl2va bases, two VAEs, the qwen CLIP, and the turbo LoRA). Registry/Manager installs are safety-scanned and omit scripts/, so you'd place those files by hand per the README's table.

The gotchas carry over verbatim from the CN twin: the divisibility error and 362-frame cap are the two red-text failures you'll meet first; expect ±0.5s per segment of drift because MiniMax's frame grid is 17k+5; SageAttention must be 1.x (2.x/3.x breaks H3); TeaCache threshold at ≤ 0.1 or you get wobble; and the territory clause of the H3 Community License excludes the US, EU, UK and South Korea from running the local weights. The runtime self-check will yell at you clearly if ComfyUI_MiniMaxH3_Director isn't installed - install it first. If you've read the CN article, you've read this one; pick whichever language your UI speaks and treat them as the same node.

Categoryutils/MiniMaxH3

Inputs (31)

NameTypeDefaultDescription
model_r2vMODELref2va base model, used for the first r2v segment
model_i2vMODELfl2va base model, used for segment 2+ (i2v handoff)
video_vaeVAE
audio_vaeVAE
clipCLIP
image_0IMAGEReference image 1 → <Picture 1> (scene / main subject)
global_promptSTRINGConstant settings for the whole video: scene/style/character/camera. You may reference images with <Picture N>.
timeline_promptSTRINGRequired. One line per block: 0-5s: action description. Auto-mapped to segments.
duration_presetCOMBO30sOptions: 5/10/15/30/45/60/90/120s
split_presetCOMBO5s per segment (recommended)5/10/15s per segment; max ~15s (362 frames) per segment
resolution_presetCOMBO0.4MP (480p)0.4MP=864x480 (480p) / 0.9MP=1280x736 (720p) / 2.0MP=1920x1088 (1080p)
ref_max_sizeINT864256–2048Max edge length for reference image resizing; usually matches the resolution preset
ref_video_fpsINT00–2400 = auto proportional slicing (any fps); set real fps (e.g. 30) for exact per-second slicing
auto_anchorBOOLEANtrueAuto-append first-frame lock / body-size / reference consistency anchors
stepsINT41–100Diffusion steps INSIDE EACH segment. 4 = turbo LoRA recommended; 8 is sharper but ~2x slower.
samplerCOMBOer_sde44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
cfgFLOAT1.000–10Recommended 1.0 with the turbo LoRA
seedINT0
shift_videoFLOAT12.00
shift_audioFLOAT3.00
image_1optIMAGEReference image 2 → <Picture 2>
image_2optIMAGEReference image 3 → <Picture 3>
image_3optIMAGEReference image 4 → <Picture 4>
image_4optIMAGEReference image 5 → <Picture 5>
image_5optIMAGEReference image 6 → <Picture 6>
image_6optIMAGEReference image 7 → <Picture 7>
image_7optIMAGEReference image 8 → <Picture 8>
image_8optIMAGEReference image 9 → <Picture 9>
ref_videooptIMAGEReference video (frame batch; auto-sliced per segment and resampled; may be longer/shorter than total)
ref_audiooptAUDIOReference audio (auto-sliced per segment, looped when short; may be longer/shorter than total)

Outputs (4)

NameTypeDescription
imagesIMAGE
audioAUDIO
fpsFLOAT
frame_countINT