Nodes/MiniMax H3 Chain Director|链式导演台/MiniMax H3 Chain Director|链式导演台(多段拼接)
ComfyUI Node

MiniMax H3 Chain Director|链式导演台(多段拼接)

One node that splits, chains, and stitches

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
  • 画面帧
  • 音频
  • 帧率
  • 总帧数
全局提示词
时间轴提示词
总时长预设30秒
分段方式5秒每段 (推荐)
分辨率预设(百万像素)0.4MP (480p)
参考图最大边(像素)864
ref_video_fps0
自动锚点true
采样步数4
采样器er_sde
调度器simple
引导强度CFG1.00
随机种子0
视频时间偏移12.00
音频时间偏移3.00

MiniMax H3 is great at video and bad at long video. Single-shot generation tops out around 362 frames - call it 15 seconds - and push a 10-second clip at 1080p on a 16GB card and you'll watch the VRAM meter go vertical. This node treats those two walls as a workflow problem instead of a hardware one: it splits your long video into N segments, renders segment 1 as r2v (reference-image-to-video) and every later segment as i2v with the previous segment's last frame hard-locked as its first frame, then stitches frames and audio back together and hands you a complete clip. You fill in a total duration, a per-segment length, a resolution and two prompt boxes. It does the rest.

First, the context you should have before downloading ~60GB of weights. H3 is MiniMax's 33B omni-modal open-weight video model - the "Hailuo 3.0" turn - whose selling point is generating stereo audio natively alongside the picture rather than bolting an audio pass on afterward. But it ships under the MiniMax H3 Community License, which excludes the US, EU, UK and South Korea from the applicable territory: if you're in one of those regions you're not licensed to run the local weights at all. The hosted Hailuo API stays global; the local path doesn't. Check that before you commit to the download.

How it works. The node parses your timeline prompt line by line (0-5s: 动作描述, one block per line), maps each block onto whichever segment's time window it overlaps, and falls back to the nearest block if a segment has no hits. With auto-anchor on (the default), it prepends and appends anchoring sentences - "video first frame must match the given first frame", "keep the reference image's small body size, don't grow" - which is the whole trick for keeping a character from drifting between segments. Each segment runs through the AIMixer ComfyUI_MiniMaxH3_Director engine - segment 1 via pack_r2v_group, segments 2+ via pack_i2v_group, with prev_last = batch[-1:].clone() fed in as the locked first frame. At the end it torch.cats all frame batches and audio waveforms together - the same stitch the pack's little ConcatImageBatches utility does by hand - and outputs 24fps plus the total frame count.

The inputs that matter. Everything hinges on the model ports: model_r2v is the ref2va base for segment 1, model_i2v is the fl2va base for segments 2+ (yes, you wire two diffusion models), plus video_vae, audio_vae, and the clip text encoder (qwen3vl_32b). image_0 is your scene/main-subject reference and becomes <Picture 1> in prompts; image_1..image_8 are optional extras for <Picture 2..9>. Then two prompt boxes: the global prompt (scene/style/character/camera, constant across the whole video) and the timeline prompt, which is required - leave it empty and you get a red-text error.

Below that, the few you'll actually touch:

  • 总时长预设 / 分段方式 - total duration and seconds per segment. They must divide evenly: 60s ÷ 10s = 6 segments. If they don't, the node refuses with a red error rather than silently dropping seconds. Per-segment max is ~15s (362 frames).
  • 分辨率预设 - 0.4MP (480p) up to 2.0MP (1080p); 参考图最大边 should generally match it.
  • 采样步数 / 采样器 / 调度器 / 引导强度CFG - defaults are 4 steps, er_sde + simple, CFG 1.0, tuned for the turbo LoRA. Steps are per segment: 6 segments × 4 steps is six separate 4-step samplings, so bumping to 8 costs you about double.

Optional ref_video_0..2 and ref_audio_0..2 feed reference video/audio into the first r2v segment; older Director builds ignore them with a hint.

Installing it is the honest part. The node itself is zero-config, but the stack around it is not:

# 1. the pack
cd ComfyUI/custom_nodes
git clone https://github.com/luxu1999/ComfyUI-MiniMaxH3-ChainDirector.git
# 2. everything else, one command (Director + VideoHelperSuite + KJNodes + sageattention)
cd ComfyUI-MiniMaxH3-ChainDirector
python scripts/install_all.py
# 3. models (~60GB)
python scripts/download_models.py   # --mirror hfco for native huggingface.co

Or use ComfyUI Manager's search for "ChainDirector / MiniMax-H3". Note the Manager/Registry package is safety-scanned and ships without the scripts/ folder - those one-click installers only exist on the GitHub clone, so Registry users place the models by hand using the README's file/directory table.

Where people get burned. The divisibility error and the 362-frame cap are the two red-text failures you'll hit first - both are doing you a favor. Timeline separators are forgiving (the parser accepts -, , , -, ~, , and s or ), so Word-copied dashes work. Expect ±0.5s per segment of drift because MiniMax's frame grid is 17k+5; that's normal, not a bug. SageAttention must be version 1.x - 2.x/3.x is incompatible with H3 - and the workflow hangs one PathchSageAttentionKJ node on each model chain; if you use TeaCache, keep the threshold at ≤ 0.1 or you get wobble. And if the node errors about a missing ComfyUI_MiniMaxH3_Director, that's the runtime self-check catching an absent dependency - install the Director pack first. The runtime auto-patch keeps old Director builds continuous (no manual patching for normal use), which quietly saves you from the classic "two segments, two different characters" trap this pack exists to solve.

Categoryutils/MiniMaxH3

Inputs (31)

NameTypeDefaultDescription
model_r2vMODELref2va 底座,用于第一段 r2v 生成
model_i2vMODELfl2va 底座,用于第2段及以后的 i2v 接力
video_vaeVAE
audio_vaeVAE
clipCLIP
image_0IMAGE第1张参考图 → <Picture 1>(场景/主体图)
全局提示词STRING全片不变的设定:场景/风格/角色/机位等;可用 <Picture N> 引用参考图
时间轴提示词STRING必填。每行格式:0-5s: 动作描述,节点自动按分段映射
总时长预设COMBO30秒可选:5/10/15/30/45/60/90/120 秒
分段方式COMBO5秒每段 (推荐)每段 5/10/15 秒;单段上限约 15 秒(362 帧)
分辨率预设(百万像素)COMBO0.4MP (480p)0.4MP=864×480(480p) / 0.9MP=1280×736(720p) / 2.0MP=1920×1088(1080p)
参考图最大边(像素)INT864256–2048参考图缩放的最大边长,一般与分辨率预设一致
ref_video_fpsINT00–2400 = auto proportional slicing (any fps); set real fps (e.g. 30) for exact per-second slicing
自动锚点BOOLEANtrue自动追加锁帧句/体型/参考图一致性锚点
采样步数INT41–100每一段内部的扩散采样步数;4步=加速LoRA推荐值,8步画质更细但耗时约翻倍
采样器COMBOer_sde44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
调度器COMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
引导强度CFGFLOAT1.000–10Turbo LoRA 下推荐 1.0
随机种子INT0
视频时间偏移FLOAT12.00
音频时间偏移FLOAT3.00
image_1optIMAGE第2张参考图 → <Picture 2>
image_2optIMAGE第3张参考图 → <Picture 3>
image_3optIMAGE第4张参考图 → <Picture 4>
image_4optIMAGE第5张参考图 → <Picture 5>
image_5optIMAGE第6张参考图 → <Picture 6>
image_6optIMAGE第7张参考图 → <Picture 7>
image_7optIMAGE第8张参考图 → <Picture 8>
image_8optIMAGE第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
画面帧IMAGE
音频AUDIO
帧率FLOAT
总帧数INT