Nodes/ComfyUI MiniMax H3 Timeline Director/MiniMax H3 Finish Temporary Segment Video
ComfyUI Node

MiniMax H3 Finish Temporary Segment Video

The Node That Glues Your Segments Together and Deletes the Evidence

By Songssx·Created 2 months ago·Updated a day ago· 636
MiniMax H3 Finish Temporary Segment Video
  • state
  • Last Sampled Latent
  • Final Video
  • Final Audio
  • Status

What it is

MiniMax H3 Finish Temporary Segment Video is the last node of the pack's low-memory long-video chain. By the time it runs, every segment already exists as its own temporary MP4 - this node checks that the job actually finished, decides what the soundtrack should be, joins the parts into one VIDEO, and deletes the pieces.

It's the node you wire into SaveVideo. Everything upstream of it is bookkeeping over files on disk; this is where a long MiniMax H3 timeline finally becomes something you can watch. It sits in the MiniMax H3/Internal category and is flagged is_dev_only, so you won't find it in the normal node list unless dev node visibility is on. If you use MiniMax H3 有限分段采样(低内存版本), the pack expands into it for you and you never have to wire it.

How it works

First, validation. It reads the segment count out of the plan and compares it to how many segments the state says were archived. Mismatch raises Not every segment was archived before final video assembly - that's your signal that a loop ran the wrong number of times, not that assembling failed.

Then it picks the audio, in priority order. If the plan carries a locked audio asset (an explicitly uploaded clip, or locked original audio in a digital-human style workflow), that source waveform wins and is restored as one continuous track - the lip motion is still audio-driven, but the recording survives untouched. If audio was explicitly muted, you get silence of the right length. Otherwise it takes the merged Soft AV audio the archive passes built up and truncates it to the target frame count so audio and picture end together.

Then the join happens: the segment files are opened as sources, combined into a single video with the chosen audio, and written as assembled.mp4 in the run's folder under ComfyUI/temp/minimax_h3_segment_spill/. All the segment_NNN.mp4 parts are unlinked immediately afterwards, and the whole UUID folder is registered for removal when the returned VIDEO object is released. Nothing about this pipeline leaves anything in your output/ folder - the temp files are the pipeline.

Inputs and outputs

  • state - the MINIMAX_H3_FINITE_LOOP_STATE from the last MiniMax H3 Archive Temporary Segment Video pass. It's the only input.

Four outputs, all worth knowing:

  • Final Video - the assembled VIDEO. Wire it to SaveVideo (the pack's low-memory example workflow does exactly this) or a VIDEO-aware node. Not an IMAGE tensor; nodes expecting frames won't accept it.
  • Final Audio - the same soundtrack as a separate AUDIO, useful if you want to master, replace or re-mux it yourself.
  • Last Sampled Latent - the final AV latent, if you're chaining something after the timeline.
  • Status - a plain string reporting how many segments were decoded and encoded one at a time and joined without holding the full RGB timeline, and confirming no latent checkpoint was written. Wire it to a text display when you're debugging a long run; it's the cheapest confirmation that every segment actually landed.

Installing it

Ships with Songssx/ComfyUI-MiniMaxH3-TimelineDirector. Manager → search MiniMax H3, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Songssx/ComfyUI-MiniMaxH3-TimelineDirector

Restart and search MiniMax H3. The pack declares no pip dependencies - it uses PyAV, Pillow, NumPy, PyTorch, torchaudio, aiohttp and imageio-ffmpeg as already present in a compatible ComfyUI install. You still need the native H3 nodes plus the Ref2VA model, CLIP, video VAE and audio VAE, and Python 3.10+.

What goes wrong

"Not every segment was archived." Your loop didn't run segment_count times. With a hand-built native Start Loop / End Loop, set num_iterations from the segment count, and make sure the final pass actually reaches this node.

Nothing saved anywhere. Easy one to trip over: this node writes to ComfyUI's temp directory, not to output/. If you don't connect Final Video to a saver, the file is cleaned up when the VIDEO object is released and you have a long render and no file.

Audio that isn't what you expected. Locked audio outranks everything - if a locked asset is present in the plan, you get that waveform, not the generated sound. Empty or wrong-length audio usually traces back to audio_vae on the archive node rather than anything here.

Poking at the temp folder mid-run. The parts are deleted the moment the join succeeds, and the assembled file dies with the VIDEO object. Copy it out through a proper saver rather than trying to grab it from disk between runs - and if a run dies before this node, leftover spill folders older than 24 hours get swept automatically on the next one.

CategoryMiniMax H3/Internal

Inputs (1)

NameTypeDefaultDescription
stateMINIMAX_H3_FINITE_LOOP_STATE—

Outputs (4)

NameTypeDescription
Last Sampled LatentLATENT—
Final VideoVIDEO—
Final AudioAUDIO—
StatusSTRING—