Nodes/ComfyUI-MiniMaxH3-Contex-Loop/MiniMax H3 Contex Loop Assemble
ComfyUI Node

MiniMax H3 Contex Loop Assemble

Stitch your saved H3 scenes into one MP4

By ethanfel·Created 17 days ago·Updated about 18 hours ago· 315
MiniMax H3 Contex Loop Assemble
  • manifest
  • source_audio
  • source_timeline
  • blend_video_vae
  • video_path
audio_sourceplan
filenamefinal
audio_bitrate256
copy_to_outputfalse
output_subfolder
blend_scheduleplan
boundary_tone_matchoff
color_stabilizationoff

MiniMax H3 Contex Loop Assemble is the payoff node of the whole pack. Everything upstream - the Plan, the recursive loop, the review gate, the checkpointing - exists to produce accepted per-scene MP4s on disk. This node joins them into one final video, and it's the step where "I've got five good takes" becomes "I've got a movie."

The design philosophy is refreshing: it doesn't re-encode anything. Assemble stream-copies the saved H.264 scene segments into one MP4 and muxes the audio track on top. That means assembly is fast and lossless relative to the segments - you're not re-running diffusion, you're not even re-encoding video. The only encoding that happens is the AAC audio at audio_bitrate (256 kbps default).

The inputs that matter

  • manifest - the completed (or partial) manifest from Loop End, or from Manifest Load if you're assembling an old run. Every segment file is verified before joining, so a missing file fails loudly rather than producing a broken video.
  • audio_source - the one you'll actually think about. plan is the default and is the smart choice: it does what the Plan said, using checkpointed H3-generated sound (generated) or the original source track (source) automatically. none gives you a silent MP4. The other two are explicit overrides.
  • filename - the MP4 basename inside the chain's output folder. .mp4 is added for you, date tokens like %date:yyyy-MM-dd% work, and existing files are never clobbered - you get _001, _002, and so on.

The optional inputs are where the "assembly-only" tricks live, and they're worth knowing because they fix real problems without re-rendering:

  • blend_schedule - visual crossfades at scene boundaries. plan uses the Plan's global value; a list like 5,30 means 5 frames at the first boundary, 30 at every later one.
  • boundary_tone_match - set to auto and it compares the protected overlap with the first generated frames, detects a coherent exposure/contrast step, and applies a small capped tone curve to kill the seam.
  • color_stabilization - scene_1_anchor uses scene one as a fixed color reference and gently ramps a capped exposure/saturation correction over 72 frames. It's a temporal grade, not pixel blending.

All three are explicitly "this never reruns diffusion." If a join looks off, try these before you think about resampling.

copy_to_output plus output_subfolder will also drop the finished MP4 into the regular ComfyUI output tree - handy if your chain folder is buried and you want the render in the normal place. The output is just video_path, a STRING with the absolute path of the assembled file.

Installing it

Part of ComfyUI-MiniMaxH3-Contex-Loop (ComfyUI Manager: search "MiniMax H3 Contex Loop"), or:

cd ComfyUI/custom_nodes && git clone https://github.com/ethanfel/ComfyUI-MiniMaxH3-Contex-Loop.git

Restart ComfyUI. The README notes ffmpeg on PATH is preferred for review and assembly; if you don't have it, ComfyUI's bundled PyAV handles the job as a fallback.

Common issues

The classic gotcha: blend_schedule asks for more overlap than the saved blend MP4 actually retained. When that happens you'll see a prompt to connect blend_video_vae - Assemble then re-decodes the existing checkpoint to get the extra frames. It doesn't sample or regenerate, just re-decodes. Also: if you get a silent or missing-audio result, check audio_source against what your Plan actually saved. New 0.5 manifests recover the source track themselves; the source_audio input is only a legacy fallback for pre-0.5 manifests, so a redundant wire is harmless but usually unnecessary.

Categoryconditioning/minimax/contex_loop

Inputs (12)

NameTypeDefaultDescription
manifestH3_CHAIN_MANIFESTCompleted manifest from Loop End or Manifest Load. Every segment file is verified before joining.
audio_sourceCOMBOplanKeep plan for automatic audio: generated assembles checkpointed H3 sound, source recovers the track supplied once upstream, and none makes a silent MP4. The other choices are explicit assembly overrides.
filenameSTRINGfinalFinal MP4 basename inside this chain's output folder. The .mp4 extension is added automatically. Supports date tokens such as %date:yyyy-MM-dd%. Existing files are preserved by adding _001, _002, and so on.
audio_bitrateINT25664–512AAC bitrate in kilobits per second for the final mux. It does not re-encode the saved H.264 video segments.
copy_to_outputoptBOOLEANfalseAlso copy the completed MP4 out of the chain folder into the regular ComfyUI output tree.
output_subfolderoptSTRINGRelative folder for the optional output copy. Empty means the output root. Nested folders and date tokens such as renders/%date:yyyy-MM-dd% are supported; the filename widget above still sets the MP4 name.
blend_scheduleoptSTRINGplanAssembly-only visual blend schedule. 'plan' uses the Plan's global value. A list such as 5,30 applies 5 frames at the first boundary and 30 at every later boundary. The final value repeats; extra values are ignored by a shorter partial manifest. This never reruns diffusion.
boundary_tone_matchoptCOMBOoffOptional assembly-only boundary correction. auto compares the protected overlap with the first generated frames, detects a coherent exposure/contrast step, and applies a small capped tone curve only after that step. Accepted corrections are carried through later overlaps so they do not create a new seam. This never reruns diffusion.
color_stabilizationoptCOMBOoffOptional assembly-only temporal grade. scene_1_anchor measures the first scene as a fixed color reference, applies no new change at a join, then gently ramps a capped exposure/saturation correction over 72 frames. It uses one assembly encode, never blends pixels for color, and does not affect motion or audio sync. Off preserves the existing stream-copy/blend behavior.
source_audiooptAUDIOLegacy fallback for manifests created before Loop Start persisted its AUDIO. New manifests recover the original source track themselves; a redundant matching wire is harmless. The track is trimmed or safely silent-padded to the final duration.
source_timelineoptH3_SOURCE_TIMELINEPrimary 0.5 source-audio route. Usually this can be left unconnected because the manifest contains its path-backed recovery descriptor.
blend_video_vaeoptVAEOptional recovery-only MiniMax H3 video VAE. Connect the original VAE when blend_schedule requests more overlap than the saved blend MP4 retained. Assemble then re-decodes the existing checkpoint; it does not sample or regenerate the scene.

Outputs (1)

NameTypeDescription
video_pathSTRINGAbsolute path of the assembled final MP4.