Nodes/ComfyUI-MiniMax-H3-Motion-Director/MiniMax H3 Motion Director
ComfyUI Node

MiniMax H3 Motion Director

The H3 Node That Turns a Video Project Into a Timeline, Not a Wall of Nodes

By j955229·Created 17 days ago·Updated 5 days ago· 64
MiniMax H3 Motion Director
  • model
  • video_vae
  • audio_vae
  • clip
  • bd_grp_sample
  • bd_grp_motion
  • bd_grp_advanced
  • sampler
  • sigmas
  • bd_grp_perf
  • bd_grp_experimental
  • director_inputs
  • images
  • audio
  • fps
task_typet2v — 文生视频(Text to Video)
global_promptA cinematic scene with natural motion and synchronized ambience
cfg1.00
seed0
frame_rate24.00
width864
height480
ref_max_size864
total_frames124
timeline_data
motion_context_enabledtrue
context_length22
source_overlap_frames5
audio_context_enabledtrue
color_reanchor_enabledfalse
steps25
sampler_nameres_multistep
schedulersimple
shift_video12.00
shift_audio3.00
clear_vram_between_segmentstrue
export_source_imagesfalse
pin_renorm_enabledfalse
postprocess_config

Fixing shot 3 of a five-shot video should not mean re-rendering shots 1, 2, 4 and 5. That's the whole reason MiniMax H3 Motion Director exists - and it's the thing most other H3 workflows in ComfyUI get wrong.

This is the headline node of the j955229/ComfyUI-MiniMax-H3-Motion-Director pack. Despite the film-studio name, it's a single node that runs the open MiniMax H3 weights locally: no API, no key, nothing to subscribe to. What you get instead of one H3 sampling chain per shot is a timeline inside the node - T2V, I2V, FL2V, R2V, V2V and RV2V segments mixed however you like, each with its own prompt, duration and media, plus Selective Run so you only regenerate the shots that actually need another pass. The author calls it "one Director, one shot to a complete multi-segment video project," and that's an honest description.

How it works

The clever bit is that the Director isn't a new model. It compiles every segment into an existing MiniMax H3 task and hands it to ComfyUI's official MiniMaxH3ImageToVideo / MiniMaxH3ReferenceToVideo conditioning nodes (tokenization happens internally). "Mixed" is a timeline concept, never something you send to the model.

The continuity machinery is where the real engineering went. With Motion Context enabled, each segment's final exported frames become real H3 motion history for the next one - context_length snaps to H3-valid runs of 1, 5, 22 or 39 frames. Audio Context carries the previous segment's generated audio forward, and Color Re-anchor tries to stop cumulative color drift. A Segment Result can reuse a decoded frame from an earlier segment as a later I2V start image or FL2V first/last frame. It's a lot of moving parts, but the defaults are sane and the per-boundary controls on the segment cards are optional.

Post-processing lives here too: a Global Refine pass (second sampling, optional upscale, and on supported NVIDIA hardware, RTX VSR or Deblur) and a Face Refine path that detects, crops and regenerates faces. If either stage fails, the Director keeps the first-pass result instead of discarding a finished generation - a genuinely thoughtful touch.

The inputs that matter

You won't touch most of the schema. The ones a beginner actually sets:

  • model / video_vae / audio_vae / clip - feed these from ComfyUI's standard loaders: UNETLoader for the H3 UNET, the minimax_h3_video_vae, the minimax_h3_audio_vae (required for r2v / v2v / rv2v), and a CLIPLoader with type minimax (qwen3vl). Expect the model alone to be on the order of 42 GB, so this is not a light install.
  • task_type - the seven-way enum: t2v, i2v, fl2v, r2v, v2v, rv2v, or mixed.
  • global_prompt - the prompt, sent straight to the H3 conditioning node.
  • frame_rate (24 - what H3 was trained at), width/height (864×480 default), total_frames (snaps to MiniMax's 17k+5 grid; 124 ≈ 5 seconds).
  • steps (25, the official template), sampler_name (res_multistep), scheduler (simple), shift_video (12) / shift_audio (3).

The optional sampler / sigmas sockets let you swap in an external ComfyUI sampling chain instead of the internal one, and clear_vram_between_segments releases models between segments - slower, but a stability win on tight VRAM.

Outputs are exactly three and keep it friendly for downstream nodes: images (IMAGE list), audio (AUDIO list), and fps (FLOAT). The node is an OUTPUT_NODE, so it can sit at the end of a graph and still expose those to whatever follows.

Install

ComfyUI Manager: search "MiniMax H3 Motion Director". Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/j955229/ComfyUI-MiniMax-H3-Motion-Director.git
cd ComfyUI-MiniMax-H3-Motion-Director
python -m pip install -r requirements.txt

Restart ComfyUI completely; if an update changes frontend files, hard-refresh the browser. Python deps are light (opencv-python-headless, imageio-ffmpeg, scenedetect), but you need a recent ComfyUI with official MiniMax H3 support and the H3 model files above. The pack also registers its own folders for face-detection (ultralytics), SAM, and latent upscale models.

Where people get burned

  • Do not load the standalone ComfyUI-H3-Motion-Context pack alongside this one. Motion Context is integrated here, and running both fights each other.
  • Forgot the audio VAE on an r2v/v2v/rv2v job - it won't run. It's only optional for t2v/i2v/fl2v.
  • Continuity is real but not magic: the README is upfront that H3 can still drift in lighting, motion or identity across boundaries.
  • The licensing asterisk: H3's community license geofences the weights out of the US, EU, UK and South Korea - outputs included. It doesn't call an API, but "runs locally" and "legal to run in your country" are different questions here.

If you're doing single-shot work, a plain H3 workflow is simpler. The Director pays for itself the moment you're stitching shots together.

CategoryMiniMaxH3

Inputs (36)

NameTypeDefaultDescription
modelMODELMiniMax H3 UNET (UNETLoader).
video_vaeVAEMiniMax H3 video VAE (minimax_h3_video_vae).
audio_vaeVAEMiniMax H3 audio VAE (minimax_h3_audio_vae). Required for r2v / v2v / rv2v.
clipCLIPCLIPLoader type=minimax (qwen3vl).
task_typeCOMBOt2v — 文生视频(Text to Video)MiniMax H3 Director 支持 t2v / i2v / fl2v / r2v / v2v / rv2v / mixed。Mixed 为逐段元模式;其 Segment 会编译成现有 H3 task,不会把 mixed 送进模型。提示词直接送入 MiniMaxH3ImageToVideo 或 MiniMaxH3ReferenceToVideo(内部 tokenize)。
global_promptSTRINGA cinematic scene with natural motion and synchronized ambienceUser prompt — sent directly to MiniMaxH3ImageToVideo / ReferenceToVideo. r2v: <Picture 1>. v2v: source-timeline edit (<Video 1>). rv2v: source timeline + reference images (<Video 1> + <Picture N>). mixed: each segment compiles to an existing H3 task.
bd_grp_sampleBDGROUP采样设置
cfgFLOAT1.000–30CFG for KSampler.
seedINT00–18446744073709550000Random seed for sampling.
frame_rateFLOAT24.001–240Timeline / output FPS (H3 trained at 24).
widthINT86432–8192
heightINT48032–8192
ref_max_sizeINT86432–8192
total_framesINT1245–100000Frame count at 24 fps; snapped to MiniMax 17k+5 grid (124 ≈ 5s).
timeline_dataSTRINGInternal — video, segments, refs (populated by UI).
bd_grp_motionoptBDGROUPMotion Context
motion_context_enabledoptBOOLEANtrueUse the previous segment's final exported frames as real H3 motion history. For segment N>1 this replaces the old single-last-frame continuity handoff.
context_lengthoptINT221–39Previous exported frames carried into the next segment. Video mode uses H3-valid runs 1, 5, 22 or 39 and snaps down when a shorter value is entered.
source_overlap_framesoptINT50–5V2V/RV2V only. 5 runs an independent H3-native bridge across each eligible boundary: five original source frames are conditioning only, generated frames at B-2/B+2 are anchors, and regenerated B-1/B/B+1 replace the hard cut. Visual Motion Context is skipped. 0 disables Source Bridge. Mixed v1 always forces this to 0 because its Source Videos are segment-local.
audio_context_enabledoptBOOLEANtrueContinue the previous segment's final exported generated audio. Automatically disabled for source or mute audio mode.
color_reanchor_enabledoptBOOLEANfalseRe-anchor incoming Motion Context color statistics to a stable reference to reduce cumulative color drift.
bd_grp_advancedoptBDGROUP高级采样
stepsoptINT251–200Sampling steps — official template: 25.
sampler_nameoptCOMBOres_multistepInternal mode sampler. Official template: res_multistep.
scheduleroptCOMBOsimpleOfficial template: BasicScheduler simple.
shift_videooptFLOAT12.000.01–100MiniMaxH3SigmaShift shift_video.
shift_audiooptFLOAT3.000.01–100MiniMaxH3SigmaShift shift_audio.
sampleroptSAMPLERExternal mode: connect KSamplerSelect or MiniMax-H3 Turbo Sampler.
sigmasoptSIGMASExternal mode: connect BasicScheduler or another standard ComfyUI scheduler built from the same H3 MODEL.
bd_grp_perfoptBDGROUP性能
clear_vram_between_segmentsoptBOOLEANtrue段间清理显存:每段结束后卸载模型并清空 CUDA 缓存。
export_source_imagesoptBOOLEANfalse输出 source_images(时间轴原片帧对比)。默认关以节省内存。
bd_grp_experimentaloptBDGROUPExperimental
pin_renorm_enabledoptBOOLEANfalseRe-normalize only the previous segment's video latent tail to the first handoff std of the current visual chain. Does not modify audio, source video, Picture references, or RGB Color Re-anchor.
postprocess_configoptSTRINGInternal Director post-processing and Output Preview configuration.
director_inputsoptMMX_MOTION_DIR_INPUTSUnified external prompts/assets. Connect MiniMax H3 Motion Director Inputs. Mode and group count are controlled by this Director.

Outputs (3)

NameTypeDescription
imagesIMAGE
audioAUDIO
fpsFLOAT