Neo H3 Video Director
Stitching H3 clips so the seams don't show
- video
MiniMax H3 tops out at 15 seconds per clip, which is a real limit if you're trying to tell anything longer than a GIF's worth of story. The obvious workaround - generate four clips and cut them together in an editor - has two problems: the characters change between clips, and the audio restarts from zero at every cut.
Neo H3 Video Director is the pack's answer. It takes a video director recipe: a list of segments, each with its own skill, prompt, duration and optional first frame, generates them one after another, and returns a single VIDEO with one continuous audio track.
Same licence caveat applies as to anything H3: the Community License's Applicable Territory excludes the US, EU, UK and South Korea, so local generation isn't licensed for you there. Directors in those regions should read that first.
How the continuity works
This is the part worth understanding, because it's the difference between a montage and a scene.
With continuity on (the default), segment n+1 is generated as image-to-video using the last frame of segment n as its first frame. That's what keeps the character and the lighting consistent across the cut - H3 gets handed the actual pixels it needs to continue from, not a description of them.
Then it does two cleanup passes at the seam. The first frame of the following segment is dropped from the output, because it's a near-duplicate of the previous segment's last frame and would read as a stutter. Depending on how many segments you have, that costs you a 24th of a second per seam. Second, the audio: each segment's waveform gets concatenated, and at every seam the samples corresponding to the dropped frame are cut too (round(sample_rate / 24)), so the soundtrack stays aligned with the picture instead of drifting a frame per cut.
Turn continuity off and you get hard cuts - no dropped frames, no tail-to-head chaining, and each segment is generated independently. Useful when the segments are genuinely separate shots; wrong when you want one take.
Seeds are derived, not shared: segment i runs at base_seed + i, so a run is reproducible and no two segments land on the same seed. Base seed comes from the node's seed input, or the recipe's shared.seed when you leave it at -1.
The inputs
recipe- required, a dropdown ofvideo_directorrecipes found on disk. You create these in the sidebar Recipes panel (🎬 new), or by clicking the timeline on the node itself and hitting ✎.seed,width,height- all-1by default, meaning "use the recipe'ssharedvalues". Override at the node for a quick retry at another resolution.continuity- boolean, default true.
Output is a single video (VIDEO, frames + audio, 24fps). SaveVideo eats it.
Each segment in the recipe carries skill_id, prompt, duration_sec and an optional first_frame. Durations go through the same 24fps → 17k+5 frame-grid conversion as the single-segment node, so a "5 second" segment is 124 frames.
Building a recipe
The Recipes panel's 🎬 entry opens a timeline editor: a shared resolution at the top (aspect ratio plus a megapixel slider, aligned to multiples of 32), then segment cards. Drag card edges to change duration, drag cards to reorder, click to focus. You can pull first-frame images straight out of the Neo Gallery sidebar into a segment, which is handier than it sounds when you're building a shot list.
There's also a 半自动故事板 tab: describe a theme, hit ✨, and an LLM writes a script and splits it into 5/10/15-second segments with per-scene prompts. You can hand it character and background reference images and have it set one as the first frame of every segment. Treat the output as a first draft - the prompts still want per-segment editing before you spend GPU time.
What to expect at run time
The node shows a read-only timeline while it works: the segment currently generating gets an amber bar, finished ones go green, and the front-end polls a progress endpoint every 500ms. It's genuinely useful, because the run is serial and each segment costs what a full H3 clip costs. Five five-second segments is five H3 generations back to back, not one long one. Do a one-segment smoke test before queueing the whole recipe.
Under the hood each segment reuses the single-segment resolver and executor, so the model/VAE/LoRA resolution rules are identical - including the separate audio VAE, which must be its own loader. Same trap: hand the video VAE to VAEDecodeAudio and you get an IndexError.
Gotchas
One bad segment kills the run. A missing workflow.json raises mid-loop (第 N 段 skill ... 缺少 workflow.json), and everything generated so far is discarded - nothing is concatenated or returned. Errors here are in Chinese, like the rest of the pack's resolver messages.
You get one first frame per segment. The v1 reference scope is a single image (first_frame, or the first entry in the segment's refs). Multi-reference, video-reference and audio-reference segments aren't supported yet.
Recipes are files. They live under the pack's recipes/ directory, and first-frame assets get written into the recipe's assets/ folder on save, so copy both when you move a recipe between machines.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| recipe | COMBO | 0 options: | |
| seedopt | INT | -1-1–9223372036854776000 | — |
| widthopt | INT | -1-1–16384 | — |
| heightopt | INT | -1-1–16384 | — |
| continuityopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |