MiniMaxH3Director
A real timeline for MiniMax H3, without leaving ComfyUI
- 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
MiniMax H3 is the video model that dropped in late July 2026 and immediately had the local community clearing hard-drive space: open weights, up to 15 seconds at 2K, native stereo audio, and reference-to-video input that ComfyUI supports natively. Native support, though, means native nodes - and the native MiniMaxH3ImageToVideo / MiniMaxH3ReferenceToVideo nodes are bare function calls. If you want to compose a scene from multiple references, trim clips, order shots, and manage prompts without a spreadsheet, you need something on top.
MiniMax H3 Director is that something. It's a timeline-based authoring node - a direct descendant of the LTX Director idea that WhatDreamsCost made famous - rebuilt for H3. One node holds your images, videos, audio, trims, ordering, and prompts, and hands the whole thing to ComfyUI's native H3 implementation.
The mechanism
The Director doesn't reimplement MiniMax H3 - the README is explicit that it routes to ComfyUI's built-in nodes. It does the authoring: you drop media into two timeline lanes (Image/Video and Audio) via drag-and-drop, paste, or file picker, set per-clip trim ranges, reorder tiles by dragging, and write your prompt in a mode-specific builder. On queue it decodes everything (video cropped to your trim, audio extracted and cropped the same way), validates H3's hard limits, and emits a structured guide dictionary plus a resolved prompt to the sibling MiniMax H3 Director Guide node, which makes the actual native call.
Two modes:
- FL2VA - text-to-video, first-frame, or first+last-frame interpolation. Up to 2 image slots; audio/video blocked. The builder has guided fields (
integrated_multimodal_description,overall_soundscape,non_diegetic_music) and auto-inserts the alignment lines that H3 wants. - REF2VA - the reference mode that makes H3 interesting. Up to 9 images, 3 videos, 3 audio clips (12 files total), each video switchable V / A / V+A. The builder here is six free-text sections following H3's official full-reference format, with helper buttons: Insert [Shot N], Prefill Labels & Summary, and Preview Prompt so you see the exact assembled prompt before you commit.
Inputs that matter
mode- T2VA / I2VA / FL2VA / L2VA / REF2VA. Everything about the node's behavior follows this switch.duration(default 5s) andframe_rate(default 24) - set your clip length and FPS.frame_rateis also emitted as an output so downstream nodes read the effective value.- The Resolution panel (Aspect / Resolution / Input scaling, all default Auto) drives the output canvas on H3's 16px grid. Auto resolution sets a 768px short side; Auto aspect follows your first visual reference.
- The optional
fl2va_model/ref2va_modelsockets enable lazy loading - only the model for your active mode gets requested. external_prompt_overwrite(STRING) and the pairedexternal_width_overwrite/external_height_overwrite(INT) let you bypass the builder and canvas entirely when you already know exactly what you want.
The outputs
The one that matters is guide - it feeds the Director Guide node. Also useful: duration, frame_rate, width, height, positive_prompt (the assembled text, handy for debugging), and model / fl2va_requested / ref2va_requested for routing.
Installing it
ComfyUI Manager (search DaSiWa-Nodes), or:
cd ComfyUI/custom_nodes
git clone https://github.com/darksidewalker/ComfyUI-DaSiWa-Nodes
pip install -r requirements.txt
then restart. You also need a ComfyUI build with native MiniMax H3 support and the H3 model files (checkpoint, Qwen3-VL text encoder, visual VAE, and the audio VAE for REF2VA) via ComfyUI's model manager. This is where the pack's RTX requirement gets fuzzy - H3 itself runs on consumer cards (it reportedly runs on a 3060, slowly), so this node needs no NVIDIA SDK, just the model and patience.
Where people get burned
- Forgetting the audio VAE in REF2VA. The Guide refuses to run without
audio_vaeconnected. Wirevae/minimax_h3_audio_vae_fp32.safetensorsin. - Hitting the limit walls. References must be 2–15 seconds, combined visual ≤15s, combined audio ≤15s. The node validates this and shows red status messages - believe them.
- 16px vs 32px grid trap. H3's VAE works on 16px latent cells, but its transformer groups them in 2×2 patches - so a width/height that's a clean multiple of 16 but not 32 can fail at sampling. Use the resolution panel's presets rather than raw CUSTOM values unless you know what you're doing.
- Media that stays on your disk. Files you upload get stored under ComfyUI's
input/directory, referenced by relative path. Delete them there and old timelines break.
This is a big, opinionated node with a real learning curve, and it's the reason to install the pack if you do H3 video. The one thing it can't do is make a 15-second 2K generation fast - that's H3's problem, not the Director's.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | MiniMax H3 UNET (UNETLoader). | |
| video_vae | VAE | MiniMax H3 video VAE (minimax_h3_video_vae). | |
| audio_vae | VAE | MiniMax H3 audio VAE (minimax_h3_audio_vae). Required for r2v / v2v / rv2v. | |
| clip | CLIP | CLIPLoader type=minimax (qwen3vl). | |
| task_type | COMBO | t2v — 文生视频(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_prompt | STRING | A cinematic scene with natural motion and synchronized ambience | User 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_sample | BDGROUP | 采样设置 | — |
| cfg | FLOAT | 1.000–30 | CFG for KSampler. |
| seed | INT | 00–18446744073709550000 | Random seed for sampling. |
| frame_rate | FLOAT | 24.001–240 | Timeline / output FPS (H3 trained at 24). |
| width | INT | 86432–8192 | — |
| height | INT | 48032–8192 | — |
| ref_max_size | INT | 86432–8192 | — |
| total_frames | INT | 1245–100000 | Frame count at 24 fps; snapped to MiniMax 17k+5 grid (124 ≈ 5s). |
| timeline_data | STRING | Internal — video, segments, refs (populated by UI). | |
| i2v_groupsopt | MMX_DIR_GROUP | External 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_groupsopt | MMX_DIR_GROUP | External Reference to Video group(s). When connected, overrides UI cards for execution (external priority). Connect Group (Reference to Video).group, or Groups Combine. | |
| refineopt | MMX_DIR_REFINE | Optional 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_advancedopt | BDGROUP | 高级采样 | — |
| stepsopt | INT | 251–200 | 一采步数(官方模板 25)。接了 sigmas 口后忽略此项,改用外接噪声表。 |
| sampleropt | COMBO | res_multistep | Official template: KSamplerSelect res_multistep. |
| scheduleropt | COMBO | simple | 一采调度器(官方模板 simple)。接了 sigmas 口后忽略此项,改用外接噪声表。 |
| shift_videoopt | FLOAT | 12.000.01–100 | MiniMaxH3SigmaShift shift_video. |
| shift_audioopt | FLOAT | 3.000.01–100 | MiniMaxH3SigmaShift shift_audio. |
| bd_grp_perfopt | BDGROUP | 性能 | — |
| clear_vram_between_segmentsopt | BOOLEAN | true | 段间清理显存:每段结束后卸载模型并清空 CUDA 缓存。 |
| export_source_imagesopt | BOOLEAN | false | 将时间轴原片解码到独立的 source_images 输出口;需将 source_images 另接预览/合成节点才能查看,不会改变主 images。默认关以节省内存。 |
| sigmasopt | SIGMAS | 可选。一采噪声表,接 BasicScheduler 或 ManualSigmas。接线后覆盖导演台「步数」和「调度器」(采样器下拉仍有效)。BasicScheduler 请接 SigmaShift 之后的同一套 H3 MODEL。不接则仍用步数 + 调度器、denoise=1 自动算表。 |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| audio | AUDIO | — |
| fps | FLOAT | — |
| frame_count | INT | — |
| source_images | IMAGE | — |
| report | STRING | — |
| images_pre_refine | IMAGE | — |