MiniMax H3 Multi-Face Composite / 多人候选合成 (Advanced)
Stitch each repaired face back onto the untouched original
- base_frames
- candidate_window
- changed_mask
- face_plan
- previous_composite
- composited_frames
- composite_state
- report_json
- applied_job_count
The multi-person face repair system in this pack works one character at a time: each MiniMaxH3MultiFaceRepairJobT8Advanced job produces a repaired window for a single face, and something has to lay those windows back onto the original, untouched video. That something is MiniMaxH3MultiFaceCompositeT8Advanced. It takes one shot-local Face Refine candidate, applies it to the original full video, and chains up to three people - run it once per person, feeding each result into the next via previous_composite.
The compositing discipline is what makes it trustworthy. Only the pixels inside the audited changed_mask are replaced - everything outside stays bit-exact to the original, and audio is never touched. Overlapping masks between people reject by default (overlap_policy: reject) rather than silently blending two candidates and producing a mush face. That's the fail-closed design showing up exactly where you want it: if two repair windows claim the same pixels, it stops and asks you to fix the plan instead of guessing.
Inputs
base_frames- the original full video frames.candidate_windowandchanged_mask- the repaired window and the mask of what it actually changed.face_plan- the signedH3_T8_FACE_REFINE_PARITY_PLANfrom the Repair Job, so the composite can verify the candidate really belongs where it claims.accept_candidate- defaults to true, and the tooltip is worth reading: enabled so the candidate reaches the final composite; disable it for a preview-only run that returns the original frames. Flip this off first if you want to eyeball the candidate before committing.overlap_policy-rejectby default; the other option accepts overlaps.previous_composite- optional chain input, used when compositing the 2nd and 3rd person.
Outputs
composited_frames, composite_state (the accumulated H3_T8_MULTIFACE_COMPOSITE), applied_job_count (how many jobs are in the result), and report_json. It's an output node - the natural end of the multi-person repair graph.
Install and where it fits
Pack install once: ComfyUI Manager → search MiniMax H3 Audio T8, or git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8 into ComfyUI/custom_nodes/, restart. No pip extras, no model downloads.
The workflow is sequential: for each person, run a Repair Job, then a Composite that feeds the previous composite state. Two gotchas: (1) accept_candidate defaults to true - which is fine when you've reviewed, but if you're just testing the wiring, set it false so you get the originals back instead of committing unviewed candidates to the final video; (2) if composite rejects on overlap, it's telling you two person masks overlap - fix the identity assignment rather than flipping overlap_policy to accept and hoping. The pack's README is explicit that its multi-person validation is narrow, so treat the output as "mechanically clean" until you've watched it. Experimental, bit-exact outside the changed mask, and mercifully deterministic.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| base_frames | IMAGE | — | |
| candidate_window | IMAGE | — | |
| changed_mask | MASK | — | |
| face_plan | H3_T8_FACE_REFINE_PARITY_PLAN | — | |
| accept_candidate | BOOLEAN | true | Enabled by default so the candidate reaches the final composite. Disable only when you want a preview-only run that returns the original frames. |
| overlap_policy | COMBO | reject | 3 options: reject, new_over_old_exp, keep_old_exp |
| previous_compositeopt | H3_T8_MULTIFACE_COMPOSITE | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| composited_frames | IMAGE | — |
| composite_state | H3_T8_MULTIFACE_COMPOSITE | — |
| report_json | STRING | — |
| applied_job_count | INT | — |