Nodes/comfyui-minimax-h3-audio-T8/MiniMax H3 Face Refine Window Studio Commit / 人工决策提交 (Advanced)
ComfyUI Node

MiniMax H3 Face Refine Window Studio Commit / 人工决策提交 (Advanced)

The atomic 'yes' that makes a face fix durable

By T8mars·Created about a month ago·Updated a day ago· 1,031
MiniMax H3 Face Refine Window Studio Commit / 人工决策提交 (Advanced)
  • base_frames
  • candidate_window_frames
  • changed_mask
  • window_mapping
  • window_plan
  • review_frames
  • current_result_frames
  • accepted_change_mask
  • rejected_change_mask
  • committed
  • manifest_path
  • resolved_window_count
  • complete
  • background_state_json
  • report_json
studio_idface_refine_project_01
decisionpreview_only
accepted_subranges
confirm_acceptfalse
edge_fade_frames2
job_id
auto_continuefalse

In the Studio (serial) Face Refine route, reviewing a candidate is not the same as deciding on it - and MiniMaxH3FaceRefineWindowStudioCommitT8Advanced exists to keep those two things honest. It's the per-window decision node: it re-validates the current candidate against the source, then atomically records an explicit accept or reject into the project manifest. Until that record is written, nothing about the current window counts. After it's written, the window is settled - accepted overlays are immutable and never overwrite your source media.

How it differs from the single-window review

If you've used MiniMaxH3FaceRefineManualReviewT8Advanced, the inputs will look familiar - same base_frames, candidate_window_frames, changed_mask, window_mapping, decision, confirm_accept, edge_fade_frames. The Commit node adds the Studio scaffolding: a window_plan and studio_id to locate the manifest, plus two wired inputs from the Studio Start node, job_id and auto_continue.

The decision semantics are identical to manual review - preview_only (default, changes nothing), reject (original pixels stand), accept_selected (only eligible after confirm_accept, and only inside the planned repair frames of the changed_mask). What's new is the commit boundary. The node re-checks the candidate is still valid against the current source-bound window, then writes the outcome to disk as one atomic record. Only after that durable boundary may the next window prompt be queued - which is why the description calls it a gate rather than a button.

The auto_continue wiring

auto_continue is force-input, meaning it comes from the Studio Start node's output, not something you click. Here's the rule, enforced with a ValueError if you get it wrong: auto-continue requires an explicit accept_selected or reject decision. Trying to auto-continue from preview_only is an error - run review first, look at the frames, then commit with a real decision. On a valid commit with auto-continue on, the node tells the background controller the segment is done so the next unresolved window can queue. If that background transition itself fails, the code's stance is deliberate: the window decision is already durable, so it does not retry or undo - a fresh controller run resumes from the next manifest entry. Your yes is never silently un-said.

Outputs

  • review_frames - side-by-side source/candidate, for the actual human judgment.
  • current_result_frames - the timeline with this window's outcome applied (bit-identical source on reject or preview).
  • accepted_change_mask / rejected_change_mask - what changed and where.
  • committed (boolean) - did this run write a durable decision?
  • manifest_path - where the project state lives.
  • resolved_window_count and complete - complete=true means all windows are settled and it's time for Studio Compose.
  • background_state_json / report_json - controller and validation diagnostics.

Where people get burned

The classic sequence of pain: set decision to accept_selected, forget confirm_accept, and wonder why committed never goes true. It's the same two-step guard as the manual node, by design. Second: accepted windows can't be rolled back or rerun - if you realize later the face is actually wrong, that window is locked in and you handle it as a new repair range, not an undo. Third: remember the whole Studio route is Advanced EXP. A fixed 16GB test matrix and one real bad-face sample passed, but multi-subject human blind testing is still running - so commit like a careful human, not a batch job, and keep the full original audio for the final save (window audio is never the soundtrack).

Example graph: 2026-09-05_H3_Face_Refine_Window_Studio_Serial_Advanced_EXP.json under examples/workflows/06-face-refine. Install is the pack standard: ComfyUI Manager (search "MiniMax H3 Audio T8") or clone into custom_nodes and restart.

CategoryT8/MiniMax H3/Quality/Experimental/Face Refine Window

Inputs (12)

NameTypeDefaultDescription
base_framesIMAGE
candidate_window_framesIMAGE
changed_maskMASK
window_mappingH3_T8_FACE_REFINE_WINDOW_MAPPING
window_planH3_T8_FACE_REFINE_WINDOW_PLAN
studio_idSTRINGface_refine_project_01
decisionCOMBOpreview_only3 options: preview_only, reject, accept_selected
accepted_subrangesSTRING
confirm_acceptBOOLEANfalse
edge_fade_framesINT20–60
job_idSTRING
auto_continueBOOLEANfalse

Outputs (10)

NameTypeDescription
review_framesIMAGE
current_result_framesIMAGE
accepted_change_maskMASK
rejected_change_maskMASK
committedBOOLEAN
manifest_pathSTRING
resolved_window_countINT
completeBOOLEAN
background_state_jsonSTRING
report_jsonSTRING