H3 HyperFlow P7 · Review & Accept Separate Candidate (T8 EXP)
Nothing continues until you press accept — reviewing a P7 long-video segment
- video
- accepted
- manifest_path
- parent_candidate_id
- parent_revision
- previous_job_sha256
- report_json
Most long-video pipelines have an implied acceptance step: whatever got rendered becomes the context for the next segment, and if it's bad, you find out four segments later. The P7 route makes acceptance a node you have to consciously configure, with accept_candidate sitting there defaulting to false.
That default is the whole design. Run this node without touching the widget and it previews the candidate, verifies it, and hands you back a video and accepted: false. Nothing is committed. Nothing downstream can pretend segment 0 was approved.
What it verifies before it will accept anything
The candidate has to hold up on several fronts at once: the candidate MP4 and its HIGH context, the P7 LOW context with completed audio, and the audit job SHA. The manifest rules are preserved from the earlier long-video implementations, replacements are rejected, and an incomplete candidate is never auto-accepted - the docs say it flatly, and the code path matches.
The inputs are correspondingly boring and exact: candidate_json_path, job_sha256 (both force-input strings, fed from the candidate save node), and accept_candidate.
Outputs are where the plumbing lives: video (the preview), accepted, manifest_path, parent_candidate_id, parent_revision, previous_job_sha256, report_json. The last four are what you carry forward.
The two-pass workflow you're actually running
Segment 0 renders a candidate; you preview it; you flip accept_candidate to true and re-run the accept node. Then segment 1's MiniMaxH3HyperFlowP7AcceptedParentEXPT8 gets that candidate ID, revision and job SHA - and note the pack is explicit that if the accept didn't happen, the returned job SHA comes back empty, so you can't accidentally forward a value for a take that was never approved.
Once both segments are accepted, assembly is a separate node keyed on the same chain ID, producing the 192-frame, 8-second deliverable with the seam around 5.17 seconds. Segment 1 delivers only its new 68 frames; the LOW conditions come from the last 39 decoded frames of the accepted MP4. Everything about the design assumes you looked at the take first.
Watching it
The preview is your review surface, and the honest advice from the pack's own docs is: watch the whole thing and listen to it, especially around the seam. Their published GPU evidence fully decodes video and audio and checks the actual delivered file - and they still say human review of the full film and voice is outstanding, because machine decoding proves the file is valid, not that the film is good.
The candidate is also where colour matching and audio bridging live: the save path optionally colour-matches to the accepted predecessor, and there's an audio seam treatment available. Neither fixes a structural cut. If segment 1 opens with a different camera, colour matching just makes the jump more tastefully matched.
Install
Manager → MiniMax H3 Audio T8, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
Full restart; recent ComfyUI core; H3 base, Qwen3-VL encoder, video and audio VAEs, the HyperFlow adapter in models/hyperflow/loras/, and the learned latent upscaler in models/latent_upscale_models/. The pack installs no pip packages by design, and saving video needs FFmpeg on your system.
Where people get burned
Accepting by accident. Once a manifest says accepted, the next segment reads it, and the pack's rules preserve old manifests rather than letting you quietly swap a take. Preview first, then accept, deliberately.
Reusing an old chain ID. New film, new chain. An old chain carries old accepted segments, old sources and old contracts, and the pack will refuse a mismatch - but you'll have spent the time discovering that.
And expecting more length than P7 gives you. This is an 8-second, two-segment route with a fixed native/T2VA scope in the qualified configuration. It's the shape of a real short-film pipeline, not a two-minute video generator, and the docs are careful not to sell it as one.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| candidate_json_path | STRING | — | |
| job_sha256 | STRING | — | |
| accept_candidate | BOOLEAN | false | — |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| accepted | BOOLEAN | — |
| manifest_path | STRING | — |
| parent_candidate_id | STRING | — |
| parent_revision | INT | — |
| previous_job_sha256 | STRING | — |
| report_json | STRING | — |