ComfyUI Node

Muse Minimax Director

A timeline editor for MiniMax H3 — write the script, let the node do the tag math

By muse-collective-26·Created about a month ago·Updated 28 days ago· 23
Muse Minimax Director
  • model
  • clip
  • vae
  • audio_vae
  • model_fl2va
  • images
  • audio
  • compiled_prompt
  • ref_images_used
  • candidate_1_images
  • candidate_1_audio
  • candidate_2_images
  • candidate_2_audio
  • candidate_3_images
  • candidate_3_audio
  • candidate_4_images
  • candidate_4_audio
modeReference (Omni) — up to 9 images, 3 videos, 3 audio
aspect_ratio16:9 (Widescreen)
megapixels0.98
multiple32
resize_methodcrop
duration_seconds10.0
chunk_duration_seconds10.0
ref_image_sizematch
hybrid_continuationfalse
seed0
seed_huntfalse
steps20
sampler_nameres_multistep
schedulersimple
shift_video12.00
shift_audio3.00
timeline_data{}
candidate_2false
candidate_3false
candidate_4false

If you've ever hand-built a MiniMax H3 prompt in ComfyUI, you know the pain this node exists to kill. Stock H3 wants numbered <Picture N> / <Video N> / <Audio N> tags that have to line up exactly with the order you feed references, a strict six-section prompt format, and - here's the real killer - a hard ceiling of roughly 15 seconds per single generation call. Muse Minimax Director (from Muse Collective's Seed Hunt pack) sits on top of ComfyUI's stock MiniMaxH3ReferenceToVideo and MiniMaxH3ImageToVideo nodes and does all that bookkeeping for you. You write a script broken into CUTs on a visual timeline; it builds the prompt, numbers the tags, and chunks anything too long into separate H3 calls with continuity carried between them.

The timeline UI has three parts: up to 9 character reference slots (plus a Location background), a reference video slot with a per-clip audio toggle, and reference audio for voice cloning. CUTs are timed segments with their own prompt text. That's the same shape as the LTX Director phenomenon - a model whose native interface can't express "this, then that, at this moment," so the community wraps a timeline around it. Where it gets clever is the bookkeeping underneath: reference items are always numbered the way H3 itself assigns them (iteration order, not slot position), and each CUT's text is included in every chunk it actually overlaps in time, not a fixed per-chunk split.

Two generation modes matter. Reference (Omni) uses up to 9 images, 3 videos, and 3 audio references via soft conditioning. First/Last Frame hard-locks your first two slots to frame 0 and the final frame using the separate model_fl2va checkpoint. There's also hybrid_continuation, which routes chunk boundaries through the First/Last Frame checkpoint for a hard pixel-lock instead of soft carry-over - a real trade, since continuation chunks then lose fresh character-reference reinforcement.

The inputs a beginner actually sets: model (the Reference-to-Video checkpoint), clip, vae, and audio_vae - the tooltip is right, that audio VAE is required in both modes because H3 always builds a joint audio+video latent. Then duration_seconds and chunk_duration_seconds (keep chunks under H3's ~15s trained range), seed, and steps. Don't sleep on compiled_prompt - the single best debugging tool on the node, showing exactly what got sent to H3 including every resolved tag. images/audio wire into a Video Combine; ref_images_used feeds the companion Muse Minimax Refine node.

Seed Hunt is the reason this fork exists. Instead of paying full price to discover your render ignored the prompt, you scout cheap: tick candidate_2/candidate_3/candidate_4, each runs one extra pass at a fixed seed offset (+1,000,003, etc.) and fills its own output pair. Watch the trap: when any candidate toggle is on, the main images/audio outputs are deliberately blocked (ExecutionBlocker) - they only mean "the one real result" when all three toggles are off. Wire the candidate_N outputs instead while scouting. The old single seed_hunt checkbox is dead - it still renders in saved workflows but does nothing.

Install

ComfyUI Manager, search "Muse Minimax Director". Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/muse-collective-26/MiniMaxH3-Director-Seed-Hunt

Then restart, and pip install av - it's used to decode and trim reference video/audio. The H3 weights aren't in the repo; grab MiniMaxAI/MiniMax-H3 from HuggingFace yourself (two checkpoints if you want First/Last Frame mode), plus CLIP, video VAE, and audio VAE.

The elephant: the license

Before you get excited: the MiniMax H3 Community License excludes the US, EU, UK, and South Korea from its territory - including outputs, not just weights. If you're in one of those regions, running these weights locally is unlicensed on the face of the text. The node author flags this plainly in the README; it's not a ComfyUI problem, it's a model problem, but it's the first thing to check.

Troubleshooting

  • ModuleNotFoundError: No module named 'comfy_extras.nodes_minimax_h3' - your ComfyUI core predates native H3 support. Update ComfyUI core itself, not this node.
  • H3 is heavy. ~42.5GB full weights and no verified consumer-VRAM floor at release; a 3060 generation is measured in geological timescales. Scout at low megapixels, refine at full res.
  • Cannot create property 'characters' on load - old saved workflow crash; delete the node and add a fresh one.
  • This is a control layer only. Credit MiniMax H3 in anything you ship - the README asks for it, and the license's NOTICE requirements are real for redistribution.
CategoryMuse Collective

Inputs (25)

NameTypeDefaultDescription
modeCOMBOReference (Omni) — up to 9 images, 3 videos, 3 audio2 options: Reference (Omni) — up to 9 images, 3 videos, 3 audio, First/Last Frame — zero, one, or two frame images
modelMODEL
clipCLIP
vaeVAE
audio_vaeVAENeeded for final audio decode in both modes — H3 always builds a joint audio+video latent internally, even in First/Last Frame mode.
aspect_ratioCOMBO16:9 (Widescreen)8 options: 1:1 (Square), 2:3 (Portrait Photo), 3:2 (Photo), 3:4 (Portrait Standard), 4:3 (Standard), 9:16 (Portrait Widescreen), +2
megapixelsFLOAT0.980.1–4
multipleINT328–128
resize_methodCOMBOcropHow every character/background reference image and First/Last Frame image gets fit to the output resolution when its own aspect ratio doesn't match. 'crop' scales up and center-crops the excess (no distortion, may crop the edges of a person/scene). 'pad' scales down to fit entirely within the frame and adds black bars (nothing cropped, but the bars become visible reference content). 'stretch' resizes directly, distorting proportions.
duration_secondsFLOAT10.01–120Total length of the finished video. Automatically split into multiple H3 generation calls if longer than chunk_duration_seconds, stitched together.
chunk_duration_secondsFLOAT10.03–15Length of each individual H3 call. H3's own trained range tops out around 15s per call — longer totals get split into chunks this long (the final chunk absorbs whatever's left over, so it may be shorter). Reference mode: each continuation chunk is fed the previous chunk's own last few frames and last few seconds of audio as reference video/audio, plus an explicit instruction to continue seamlessly rather than cut. First/Last Frame mode: continuation falls back to the previous chunk's last frame only.
ref_image_sizeCOMBOmatch'match' scales references down to the generation's pixel area (faster). 'max' keeps up to a 2048px short edge for stronger identity fidelity, but reference tokens ride every sampling step so it's several times slower. Reference (Omni) mode only.
hybrid_continuationBOOLEANfalseReference (Omni) mode only, needs model_fl2va connected. Reference mode's own carry-over (ref_video/ref_audio) is a soft reference, not a hard lock — H3 can still cut to a new composition at a chunk boundary despite it. When this is on, continuation chunks (2nd onward) switch to a hard-locked first-frame anchor instead: the exact last frame of the previous chunk, via the separate First/Last-Frame checkpoint's real keyframe-lock mechanism. The first chunk always runs Reference (Omni) normally, so character/background images still establish identity — continuation chunks just don't get fresh reference-image reinforcement after that (the anchor frame itself already carries the correct likeness forward, since it's real output from the reference-anchored first chunk, not a blank start).
seedINT00–18446744073709550000
seed_huntBOOLEANfalseWhen on, runs 4 full passes total — identical settings, only the seed differs — and fills the candidate_1..4 outputs (candidate_1 is always the main seed; 2-4 use seed + N*1,000,003). Wire candidate_1..4_images/audio into MuseMinimaxRefine to pick one and refine it at higher resolution. Takes ~4x as long as a single run — set megapixels low here for cheap scouting, then refine at full resolution downstream.
stepsINT201–100
sampler_nameCOMBOres_multistep4 options: res_multistep, euler, euler_ancestral, dpmpp_2m
schedulerCOMBOsimple4 options: simple, normal, beta, sgm_uniform
shift_videoFLOAT12.000.01–100
shift_audioFLOAT3.000.01–100
timeline_dataSTRING{}
candidate_2BOOLEANfalseRuns one extra full pass (identical settings, seed + 1,000,003) and fills the candidate_2 output. Independent of Candidate 3/4 — turn on only the ones you want to pay for.
candidate_3BOOLEANfalseRuns one extra full pass (identical settings, seed + 2,000,006) and fills the candidate_3 output. Independent of Candidate 2/4.
candidate_4BOOLEANfalseRuns one extra full pass (identical settings, seed + 3,000,009) and fills the candidate_4 output. Independent of Candidate 2/3.
model_fl2vaoptMODELThe separate First/Last-Frame checkpoint (not the same weights as the main Reference/Omni model input) — load it via its own loader. Used whenever a First/Last-Frame-style generation actually happens: First/Last Frame mode itself, and Hybrid Continuation's chunk-to-chunk lock while in Reference mode. If left unconnected, First/Last Frame mode falls back to the main model input instead — which should normally hold the Reference/ref2va checkpoint, not this one, so results may be degraded.

Outputs (12)

NameTypeDescription
imagesIMAGE
audioAUDIO
compiled_promptSTRING
ref_images_usedIMAGE
candidate_1_imagesIMAGE
candidate_1_audioAUDIO
candidate_2_imagesIMAGE
candidate_2_audioAUDIO
candidate_3_imagesIMAGE
candidate_3_audioAUDIO
candidate_4_imagesIMAGE
candidate_4_audioAUDIO