Nodes/MiniMax H3 Audio T8/MiniMax H3 Compose Accepted / 合成已接受片段 (EXP/T8)
ComfyUI Node

MiniMax H3 Compose Accepted / 合成已接受片段 (EXP/T8)

Verify every accepted segment, then stream them into one MP4 without blowing up memory

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Compose Accepted / 合成已接受片段 (EXP/T8)
    • video
    • video_path
    • report_json
    chain_idmy_h3_long_video
    filename_prefixH3_Long_Video
    require_final_segmenttrue
    audio_seam_policycosine_bridge
    bridge_ms5.0
    crf18

    At the end of a long video run you have a manifest full of accepted segment files, and you want one MP4. The naive way is to load every segment into memory and glue them - which on a long chain is how you turn a successful render into a RAM disaster. This node is the composed finale: it verifies every accepted file, then streams them into one MP4 with memory bounded to one video frame plus one segment of PCM. It's the "delivery" node in a family of nodes that are obsessive about not promising more than they can prove.

    It's in T8/MiniMax H3/Long Video/Experimental and it's an output node - put it at the end of the chain and let it be the last thing that runs.

    How it works

    Give it chain_id and filename_prefix (default H3_Long_Video), and it reads the accepted manifest for that chain. It verifies every accepted file before it will compose anything - a missing, truncated, or modified segment stops the whole thing rather than shipping a broken cut. Then it streams: one video frame plus one segment of PCM in memory at a time, concatenating into a single MP4 under the prefix.

    require_final_segment (default true) means the chain must contain a final segment before it will call the cut complete. That's the guard against composing a run that never actually finished. The delivery knobs are shared with the rest of the family: audio_seam_policy (cosine_bridge default - preserves the exact sample count across joins), bridge_ms (default 5), and crf (default 18).

    The inputs that matter

    • chain_id - which accepted chain to compose. Must match what you've been building.
    • require_final_segment - leave true unless you're deliberately composing a partial cut (e.g. to review a first pass).
    • crf - 18 default; tune for file size vs quality.
    • audio_seam_policy / bridge_ms - seam controls for the joins between segments.

    Outputs

    video (the composed VIDEO), video_path (where it landed), and report_json (what was verified and composed).

    Installing it

    Pack install: ComfyUI Manager → "MiniMax H3 Audio T8", or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into ComfyUI/custom_nodes, restart. No mandatory pip deps - but this node is one of the two that requires ffmpeg on PATH (the other being Candidate Save). Missing ffmpeg → clear error before anything is written.

    Common issues

    "Final segment missing." require_final_segment is true and the manifest has no final. Either the chain isn't complete or a later segment was invalidated by a replacement and never re-rendered. Check the manifest and re-render the missing piece.

    Compose refuses because a file failed verification. A segment file changed since it was accepted. That's the verification doing its job - re-render the damaged segment and re-accept rather than trying to compose around it.

    OOM during compose on a very long chain. Shouldn't happen - streaming is the point - but if the report shows memory climbing, the compose is reading more than a frame plus a PCM segment, which points at an odd codec/audio stream. Re-encode the offending segment at the family-standard 8-bit SDR settings first.

    CategoryT8/MiniMax H3/Long Video/Experimental

    Inputs (6)

    NameTypeDefaultDescription
    chain_idSTRINGmy_h3_long_video
    filename_prefixSTRINGH3_Long_Video
    require_final_segmentBOOLEANtrue
    audio_seam_policyCOMBOcosine_bridge2 options: cosine_bridge, none
    bridge_msFLOAT5.00–50
    crfINT180–51

    Outputs (3)

    NameTypeDescription
    videoVIDEO
    video_pathSTRING
    report_jsonSTRING