Nodes/MiniMax H3 Audio T8/MiniMax H3 Multi-Face Repair Job / 单角色修复任务 (Advanced)
ComfyUI Node

MiniMax H3 Multi-Face Repair Job / 单角色修复任务 (Advanced)

One character, one shot, one repair job — H3's answer to multi-person face fixes

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Multi-Face Repair Job / 单角色修复任务 (Advanced)
  • frames
  • identity_assignment
  • face_plan
  • base_window
  • crops
  • identity_references
  • source_reference_crop
  • preview
  • report_json
  • absolute_start_frame
  • window_frame_count
character_idCharacter_A
shot_id0
window_start_in_shot0
window_frame_count73
crop_factor2.5
canvas_modemanual_512
center_smooth_window21
size_smooth_window51
identity_guardsface_cpu
minimum_similarity0.36
analysis_chunk_frames4
crop_scale_modelegacy_crop_factor
target_face_px300

Repairing faces in H3 video is easy when there's one face and it stays put. It gets genuinely hard when there are multiple people in a shot - which face is whose, and how do you fix one without touching the other? The pack's answer is deliberately sequential: MiniMaxH3MultiFaceRepairJobT8Advanced handles one character in one shot at a time, producing a Face Refine Parity job that later gets composited back. Generate each person one at a time, then composite. It's slower to set up than a magic "fix all faces" button, but it's also the only approach that keeps identities straight.

The mechanism is where the "one person at a time" promise becomes real. You give the node an identity assignment; inside the chosen person's SAM mask, YuNet localizes the face, and SFace then rejects detections that don't match the assigned identity. So if two faces are close together, the wrong face gets filtered out by identity rather than accidentally repaired. The job itself is built on the 17n+5 H3 frame grid - this is latent-space face refinement through H3, not a post-process blur.

Inputs that matter

  • frames and identity_assignment - the shot and the multi-face identity map (built by the pack's multi-person identity nodes).
  • character_id and shot_id - which person, which shot. This is the scope of the job.
  • window_start_in_shot and window_frame_count (73) - the job's frame window. window_frame_count must be one of 5/22/39/56/73/90/107/124; 73 is about 3.04s at 24fps. If a shot is short by up to 16 frames, the last frame is used only as H3 context and the padded tail is discarded at composite.
  • crop_factor (2.5) and canvas_mode (manual_512) - how tightly the face is cropped for the H3 repair canvas.
  • identity_guard (sface_cpu) and minimum_similarity (0.36) - the identity gate. Too low and wrong faces slip in; too high and the job abstains on legitimate detections.
  • center_smooth_window (21), size_smooth_window (51) - temporal smoothing of the crop across frames, so the face window doesn't jitter.
  • Optional crop_scale_mode - legacy_crop_factor preserves old workflows; target_face_px (default 300) resolves crop_factor so the face reaches a target height in the H3 canvas.

Outputs

face_plan (the signed H3_T8_FACE_REFINE_PARITY_PLAN), base_window, crops, identity_references, source_reference_crop, preview, report_json, absolute_start_frame and window_frame_count so the composite knows where this job lands in the full video.

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 face models (YuNet, SFace) are the pack's own local setup.

The rhythm: run the identity assignment, then one Repair Job per person, then MiniMaxH3MultiFaceCompositeT8Advanced to stitch them. The one trap is minimum_similarity - people set it too aggressively to "protect" identity and get abstains everywhere. And this whole subsystem is Experimental with SAM tracking in the loop; the pack's own language is careful about claiming identity precision. The 17n+5 grid also means your window length gets quantized - pick from the allowed set rather than fighting it.

CategoryT8/MiniMax H3/Quality/Experimental/Face Refine Multi-Person

Inputs (15)

NameTypeDefaultDescription
framesIMAGE
identity_assignmentH3_T8_MULTIFACE_IDENTITY_ASSIGNMENT
character_idSTRINGCharacter_A
shot_idINT00–999
window_start_in_shotINT00–100000
window_frame_countINT735–124Must be 5, 22, 39, 56, 73, 90, 107 or 124. The 73-frame default is about 3.04 seconds at 24 fps. If a shot is short by at most 16 frames, its last frame is used only as H3 context and the padded tail is discarded during final composition.
crop_factorFLOAT2.51.2–8
canvas_modeCOMBOmanual_5124 options: manual_384, manual_512, manual_640, auto_capped_768
center_smooth_windowINT211–121
size_smooth_windowINT511–181
identity_guardCOMBOsface_cpu2 options: sface_cpu, sam_track_only_exp
minimum_similarityFLOAT0.36-1–1
analysis_chunk_framesINT41–32
crop_scale_modeoptCOMBOlegacy_crop_factorlegacy_crop_factor preserves existing workflows. target_face_px automatically resolves crop_factor so the face reaches at least about the requested height in a manual H3 crop canvas. Source boundaries can make it larger.
target_face_pxoptFLOAT30096–512Minimum target face height inside the H3 crop canvas. The reviewed 512px single-person route covered about 205-312px; 300px targets its upper end.

Outputs (9)

NameTypeDescription
face_planH3_T8_FACE_REFINE_PARITY_PLAN
base_windowIMAGE
cropsIMAGE
identity_referencesIMAGE
source_reference_cropIMAGE
previewIMAGE
report_jsonSTRING
absolute_start_frameINT
window_frame_countINT