MiniMax H3 Selective Repair Compose / 修复合成 (Advanced)
Render the repaired timeline without ever rebuilding the original
- output_video_path
- report_json
This is where the Selective Repair chain finally touches a rendered file. The design principle underneath it: the original accepted segments are immutable base media, and accepted repairs are overlays. Compose is the node that streams both - untouched base segments plus the repaired overlays - into one bounded-memory MP4. It never re-encodes the whole timeline, never re-generates anything, and never touches the base files. The render is a muxing pass, not a re-creation.
The immutability pays off here in the feature that sounds like a typo until you need it: compose_mode = base_rollback. That mode simply ignores the overlays and renders the base chain as-is - a one-click rollback that deletes nothing. You can flip between repair_overlay (default) and base_rollback to compare "with my fixes" vs "the original cut" as actual MP4s, forever. That's the whole reason the chain refuses to let anything overwrite the base.
Inputs that matter
chain_id- the production chain, matching the Bind node's.repair_manifest_path- the manifest fromSelectiveRepairAccept(therepair_manifest_pathoutput). Empty or stale = no overlay applied.compose_mode-repair_overlay(default) orbase_rollback.filename_prefix(H3_Selective_Repair),crf(18).require_final_segment- defaulttrue; refuses to ship a cut that's missing its final segment.audio_seam_policy(cosine_bridgedefault) andbridge_ms(5) - how repaired-audio seams get stitched. A 5ms cosine bridge is the conservative default; raising it changes how audible the seam is but also how much of the real audio it smooths over.
Outputs: output_video_path and report_json. Output node - it's the terminal step.
Installing
In the T8mars MiniMax H3 Audio T8 pack (Manager → "MiniMax H3 Audio T8" or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into custom_nodes), restart. No pip deps, but ffmpeg must be on PATH - the streaming encode is FFmpeg's job and the node errors clearly if it's missing.
The take
The workflow arc: Plan → Bind → regenerate → Stage → Accept → Compose. If you only run Compose without accepting anything, you get a base render - which is actually a useful smoke test. The seam controls are where the craft lives: with a repaired segment, the audio join is the thing people notice, and audio_seam_policy/bridge_ms are your only levers, so budget time to A/B them. And keep require_final_segment true; a "finished" MP4 that's missing the ending is the kind of mistake this whole pipeline was built to prevent.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| chain_id | STRING | my_h3_long_video | — |
| repair_manifest_path | STRING | — | |
| compose_mode | COMBO | repair_overlay | 2 options: repair_overlay, base_rollback |
| filename_prefix | STRING | H3_Selective_Repair | — |
| require_final_segment | BOOLEAN | true | — |
| audio_seam_policy | COMBO | cosine_bridge | 2 options: cosine_bridge, none |
| bridge_ms | FLOAT | 5.00–50 | — |
| crf | INT | 180–51 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| output_video_path | STRING | — |
| report_json | STRING | — |