MiniMax H3 Review & Accept / 预览并接受候选 (EXP/T8)
The review gate that keeps your long video honest
- video
- accepted
- manifest_path
- report_json
The whole long-video system in this pack is built on a simple discipline: a rendered segment is only a candidate until you say otherwise. This node is where you say otherwise. It's the Review & Accept gate - run it with accept_candidate=false and you get a preview; flip it to true and it atomically promotes the candidate into the accepted manifest that the rest of the chain builds on.
It's an output node in T8/MiniMax H3/Long Video/Experimental, and its one-line description hides the most important behavior in the whole long-video family: replacing a segment invalidates all dependent later segments. If you accept a new segment 2 after already accepting segments 2–5, everything built on the old segment 2 is now stale. That's not a bug - it's the mechanism that stops you from shipping a Frankenstein cut.
How it works
You point it at candidate_json_path - the descriptor produced by Candidate Save. With accept_candidate false (the default), it loads the candidate's video for preview and does nothing else. With it true, it atomically promotes the candidate: the file becomes part of accepted history and the manifest updates in one step, so a crash mid-promotion can't leave a half-registered segment.
replace_policy (default reject_existing) controls what happens when a candidate for an already-accepted slot shows up - rejecting is the safe default; replacing is where the invalidation cascade kicks in. strict_chain_identity (default true) enforces that the candidate's parent chain matches the manifest; turn it off and you're inviting a stale continuation into the timeline, which is exactly the thing the parent-id system was built to prevent.
The inputs that matter
candidate_json_path- the descriptor from Candidate Save. Nothing happens without it.accept_candidate- false to preview, true to promote. Default false is deliberate.replace_policy-reject_existingunless you're intentionally redoing a segment.strict_chain_identity- leave true; it's the staleness guard.
Outputs
video (the preview or the promoted file), accepted (BOOLEAN - the clear signal of what just happened), manifest_path (where the accepted manifest lives), and report_json.
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 extra pip deps. (ffmpeg on PATH is the family requirement - needed for candidate saving upstream.)
Common issues
You replaced a segment and the later segments went stale. Working as designed. The invalidation is the feature: re-render the dependents from the new accepted context rather than fighting the guard. Check report_json to see which segments the manifest now considers out of date.
strict_chain_identity rejects a candidate you think is fine. The candidate's parent chain doesn't match the manifest. Re-load context from Accepted Context Load (which returns the exact accepted_candidate_id) and re-run Candidate Save with that as the parent. Don't disable the check to make it pass.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| candidate_json_path | STRING | — | |
| accept_candidate | BOOLEAN | false | — |
| replace_policy | COMBO | reject_existing | 2 options: reject_existing, replace_and_invalidate_following |
| strict_chain_identity | BOOLEAN | true | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| accepted | BOOLEAN | — |
| manifest_path | STRING | — |
| report_json | STRING | — |