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

MiniMax H3 Context Loop Assemble

Stitch your saved H3 scenes into one MP4

By ethanfel·Created about a month ago·Updated about 23 hours ago· 415
MiniMax H3 Context 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/context_loop

Inputs (12)

NameTypeDefaultDescription
manifestH3_CHAIN_MANIFESTComplete or partial source/upscale manifest from Loop End or Manifest Load. Assembles the saved contiguous scenes; later unfinished scenes are not required. Its format selects the correct verified segments and canonical final folder automatically.
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.