ComfyUI Node

MiniMaxH3Director

Turn a model that does one clip into a node that edits a scene

By AIMixer·Created about a month ago·Updated about 16 hours ago· 1,414
MiniMaxH3Director
  • model
  • video_vae
  • audio_vae
  • clip
  • bd_grp_sample
  • i2v_groups
  • r2v_groups
  • refine
  • bd_grp_advanced
  • bd_grp_perf
  • sigmas
  • images
  • audio
  • fps
  • frame_count
  • source_images
  • report
  • images_pre_refine
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
steps25
samplerres_multistep
schedulersimple
shift_video12.00
shift_audio3.00
clear_vram_between_segmentstrue
export_source_imagesfalse

MiniMax H3 was the release that finally gave open weights what Veo had in closed ones: video and stereo audio generated together in one pass, no separate "add a soundtrack" step. The catch for ComfyUI users is that the official H3 nodes are single-shot. One prompt, one clip, done. That's fine for a clip. It's wrong for a scene.

MiniMaxH3Director (also registered under the legacy id ComfyMiniMaxH3Director) is what you reach for when one clip isn't the job: a timeline editor packed into one node. You split, trim, and reorder segments, type a prompt per segment, queue - and it handles conditioning, sampling, AV decode and export for every segment in order, handing you one finished video with sound. No API, no key; it just drives the official H3 pipeline harder.

How it works

Each segment runs through ComfyUI's official MiniMaxH3ImageToVideo or MiniMaxH3ReferenceToVideo conditioning (tokenization happens internally, so you don't wire up text encoding yourself), then a single-stage KSampler at CFG 1.0 with MiniMaxH3SigmaShift applied, then an AV-latent decode that splits picture and stereo audio apart. The task_type menu decides which official node runs per segment: t2v, i2v, and fl2v (first-last frame) go down the fl2va path; r2v, v2v, and rv2v go down the reference path and need the audio_vae. There's a "mixed" mode too, if you want different segment types in one timeline.

The interesting trick is segment continuity. With inter-segment guidance on in the UI (default off), the tail motion and generated audio of one segment get pinned into the next and cropped off after sampling - which is what stops a multi-segment video from feeling like five videos glued together. Credit for the approach goes to ComfyUI-H3-Motion-Context.

Wiring it up

The pack needs ComfyUI 0.30.0+ - it calls ComfyUI's official MiniMax H3 nodes (PRs #15224/#15228) and refuses to load without them. Install:

cd ComfyUI/custom_nodes
git clone https://github.com/AIMixer/ComfyUI_MiniMaxH3_Director.git
pip install -r ComfyUI_MiniMaxH3_Director/requirements.txt

Restart, or use ComfyUI Manager → Install via Git URL with the same URL. requirements.txt adds opencv-python-headless, imageio-ffmpeg, and scenedetect for the v2v/rv2v source-video features and smart shot-splitting.

Models aren't bundled - that's the heavy part. You need the H3 video VAE, the H3 audio VAE (fp32), a Qwen3-VL CLIP loaded with CLIPLoader type = minimax, and two UNETs: fl2va for t2v/i2v/fl2v, ref2va for r2v/v2v/rv2v. The README points at Comfy-Org's MiniMax-H3 repo on Hugging Face or the author's Comfyit pack. This is a 33B model at roughly 42.5 GB full precision, so grab the pruned/int8 variants the README recommends and bring a real GPU. And check your region before downloading: the MiniMax H3 Community License excludes the US, EU, UK, and South Korea from running the local weights - a licensing fact, not a technical one.

The inputs that matter

The four model inputs are model, video_vae, audio_vae, and clip (minimax-type Qwen3-VL). Then the few you actually touch:

  • task_type - t2v / i2v / fl2v / r2v / v2v / rv2v / mixed. Picks the official node and the UNET the workflow expects.
  • global_prompt - sent straight to the H3 node. In r2v you reference a loaded image as <Picture 1>; in v2v the source segment is auto-bound as <Video 1>.
  • frame_rate, width, height, total_frames - defaults 24 fps, 864×480 (0.4MP 16:9), 124 frames ≈ 5s; frame counts snap to MiniMax's 17k+5 grid.
  • cfg (1.0 - not a typo, H3 wants it low), seed, plus the advanced group: steps 25, sampler res_multistep, scheduler simple, shift_video 12 / shift_audio 3. All mirror the official template.

The optional sockets are where this gets interesting: i2v_groups / r2v_groups take multi-group packs from this pack's Group nodes (external input overrides the UI cards), and refine takes the MiniMax H3 Director Refine node for a second-pass polish or upscale.

Outputs

images (one frame list per segment), audio (native AUDIO - wire it to your sound-saving node), fps, frame_count, and a report string summarizing each segment's plan. With a refine node attached, images_pre_refine carries the first-pass result for comparison. Leave source_images disconnected unless you explicitly want the original timeline frames decoded - it won't touch the main images output.

Where people get burned

Same three complaints every time: missing official H3 nodes (upgrade ComfyUI), a ref2va clip dropped on the fl2va UNET (wrong model for the task type), and a CLIP loaded without type=minimax (garbage conditioning). One more: the report output is where decode failures get explained - the node prints gray placeholders rather than fake frames, so read it before assuming the sampler broke.

CategoryMiniMaxH3

Inputs (28)

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 支持 t2v / i2v / fl2v / r2v / v2v / rv2v / mixed。提示词直接送入 MiniMaxH3ImageToVideo 或 MiniMaxH3ReferenceToVideo(内部 tokenize)。mixed 为每段自选 t2v/i2v/fl2v/r2v;r2v 用 <Picture 1>;v2v/rv2v 为源视频时间轴编辑(自动绑定 <Video 1>);rv2v 另可挂参考图。
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>).
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).
i2v_groupsoptMMX_DIR_GROUPExternal Image to Video group(s) (t2v / i2v / fl2v). When connected, overrides UI cards for execution (external priority). Connect Group (Image to Video).group, or Groups Combine.
r2v_groupsoptMMX_DIR_GROUPExternal Reference to Video group(s). When connected, overrides UI cards for execution (external priority). Connect Group (Reference to Video).group, or Groups Combine.
refineoptMMX_DIR_REFINEOptional Refine node. When connected, each segment runs a second sample pass (same-size refine, or upscale then sample). Wire a MODEL into Refine.refine_model to use a different UNET for that pass; unwired uses this Director model. images is the refined result; images_pre_refine is the first pass. Unconnected = single-pass (current behavior).
bd_grp_advancedoptBDGROUP高级采样
stepsoptINT251–200一采步数(官方模板 25)。接了 sigmas 口后忽略此项,改用外接噪声表。
sampleroptCOMBOres_multistepOfficial template: KSamplerSelect res_multistep.
scheduleroptCOMBOsimple一采调度器(官方模板 simple)。接了 sigmas 口后忽略此项,改用外接噪声表。
shift_videooptFLOAT12.000.01–100MiniMaxH3SigmaShift shift_video.
shift_audiooptFLOAT3.000.01–100MiniMaxH3SigmaShift shift_audio.
bd_grp_perfoptBDGROUP性能
clear_vram_between_segmentsoptBOOLEANtrue段间清理显存:每段结束后卸载模型并清空 CUDA 缓存。
export_source_imagesoptBOOLEANfalse将时间轴原片解码到独立的 source_images 输出口;需将 source_images 另接预览/合成节点才能查看,不会改变主 images。默认关以节省内存。
sigmasoptSIGMAS可选。一采噪声表,接 BasicScheduler 或 ManualSigmas。接线后覆盖导演台「步数」和「调度器」(采样器下拉仍有效)。BasicScheduler 请接 SigmaShift 之后的同一套 H3 MODEL。不接则仍用步数 + 调度器、denoise=1 自动算表。

Outputs (7)

NameTypeDescription
imagesIMAGE
audioAUDIO
fpsFLOAT
frame_countINT
source_imagesIMAGE
reportSTRING
images_pre_refineIMAGE