H3RelayInternalSegmentSave
The commit button for an H3 shot — approve it before it becomes canonical
- state
- images
- sampled_latent
- audio
- images_with_overlap
- segment
- status
In a long-form H3 Relay movie, H3RelayInternalSegmentSave is the moment a shot stops being a draft and becomes canonical. You review the raw clip, you like it, and this node writes it to disk as an H.264 segment plus a safetensors resume checkpoint - the exact prompt metadata, the generated-audio WAV, and workflow-recovery sidecars. Every later stage (continuation, LTX finishing, assembly) builds on what this node commits. It's the "accept" step, and H3 Relay is structured so you do this before paying for any expensive enhancement.
It's another vendored node from the Comfy-Org MiniMax H3 Contex Loop runtime, re-registered under H3 Relay's namespace - the conditioning/minimax/contex_loop category is the tell. But in this pack it's load-bearing: the resumability story only works because a saved segment is the unit of "accepted work."
What you feed it
Three required inputs, and the tooltips are unusually specific because getting these wrong produces hard errors:
state(H3_CHAIN_STATE) - current state from H3 Chain Current Shot.images(IMAGE) - delivered frames after MiniMax H3 Contex Loop Trim. The frame count must exactly match the scene's planned delivered length.sampled_latent(LATENT) - raw sampler output before VAE decoding. Its compact audio/video streams are what get saved for checkpoint resume and audio context.
Two optional inputs:
audio(AUDIO) - delivered decoded audio after Loop Trim withmatch_tailenabled. The tooltip is blunt: connect it in every audio mode to preserve H3's generated sound as WAV sidecars. H3's native stereo audio is the whole reason to be here, so don't skip it.images_with_overlap(IMAGE) - blend-ready output from Loop Trim, required only when your Plan hasvideo_blend_framesabove 0.
Outputs and the one error you'll hit
It outputs segment (H3_CHAIN_SEGMENT - the persisted scene record for Review Gate and Loop End) and a status string with the saved scene number, paths, frame count, and duration.
The classic beginner failure: a frame-count mismatch. The node computes what you delivered versus what the plan promised and raises "produced N delivered frames; expected M" if they disagree. The fix is in the tooltip - wire the decoded images through Loop Trim before this node, so trimming happens before you commit. Feed it raw sampler output and it will rightly refuse to save a segment that won't line up with the rest of the chain.
Install
Shared pack install: ComfyUI Manager → search H3 Relay → restart, or git clone https://github.com/akatz-ai/h3-relay into custom_nodes. Requires ComfyUI 0.32.0+, FFmpeg on PATH, and the MiniMax H3 models from MODELS.md (separately licensed - check the H3 Community License territory clauses before you start).
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| state | H3_CHAIN_STATE | Current state from H3 Chain Current Shot. | |
| images | IMAGE | Delivered images AFTER MiniMax H3 Contex Loop Trim. The frame count must exactly match this scene's planned delivered length. | |
| sampled_latent | LATENT | Raw sampler output for the current scene, before VAE decoding. Its compact AV streams are saved for checkpoint resume and audio context. | |
| audioopt | AUDIO | Delivered decoded audio AFTER MiniMax H3 Contex Loop Trim with match_tail enabled. Connect it in every audio mode to preserve H3's generated sound as WAV sidecars. Required for generated_audio and synchronized review. | |
| images_with_overlapopt | IMAGE | Blend-ready output from Loop Trim. Required only when Plan video_blend_frames is above 0. It contains the retained repeated head followed by the normal delivered frames and is saved as a separate disk-backed assembly artifact. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| segment | H3_CHAIN_SEGMENT | Persisted scene record for Review Gate and Loop End. |
| status | STRING | Saved scene number, video/checkpoint paths, frame count, and duration. |