MiniMax H3 Face Refine Parity Latent / 原版机制Latent (Advanced)
Inject the parity crop latent, keep the audio exactly as-is
- positive
- av_latent
- crops
- video_vae
- face_plan
- positive
- av_latent
- report_json
This is the parity-chain sibling of Face Refine Conditioning. Where that node builds the latent for the practical refine pipeline, this one injects the crop video latent into an existing H3 AV latent while keeping the audio latent and the existing mask object exactly - matching the reference mechanism the pack audited, so your parity A/B is fair.
The job is narrow and the restrictions are stiff. It encodes the real source frame batch directly through the video VAE - no "convenient" downscale, no re-encoding from a preview. The VAE must naturally match the declared H3 latent time; arbitrary pixel-tail duplication, trim, pad or resize is forbidden. That last part is where you'll feel it: if your crops don't line up with H3's temporal grid, this node would rather refuse than fake it.
Inputs, which mirror the non-parity version:
positive- conditioning, passed through unchanged.av_latent- the full H3 AV latent from your first pass.crops- the crops fromFace Refine Parity Plan(or your own source-bound crops).video_vae- the H3 video VAE.face_plan- aH3_T8_FACE_REFINE_PARITY_PLANspecifically (the parity plan type, not the regular one - they're distinct and the graph will tell you if you mix them up).audio_policy-require_lockedby default, refusing a missing or nonzero audio noise mask.allow_multi_shot_exp-falseby default; hard cuts make it refuse and ask you to split into shot-local H3 windows.
Outputs: positive, av_latent (the injected latent, ready for the per-frame denoise node), and report_json.
If you're wondering why this node exists alongside the regular conditioning node: parity. The whole point of the Parity family is that a "reference-mechanism" result can be compared honestly with whatever the newer face-refine path produces. Same seed, same source, same latent - the only difference is the mechanism. If both outputs look the same, you've validated the new path; if they differ, you can see where and why. That's the kind of workflow archaeology that usually lives in someone's private notes; this pack just ships it as nodes.
One practical note: because the audio latent is retained exactly and the mask must be locked, this node is effectively saying "video changes only, sound doesn't move." That's the correct behavior for a face refine - you never want the second pass to re-synthesize dialogue. If the node errors on the audio mask, your upstream latent wasn't built with a locked audio mask, which is a real bug to fix rather than a setting to fudge.
Install: ComfyUI Manager → "MiniMax H3 Audio T8", or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8
Restart after. No forced pip deps, no model downloads - the H3 model, CLIP and VAE are yours to bring, same as the rest of the pack.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| av_latent | LATENT | — | |
| crops | IMAGE | — | |
| video_vae | VAE | — | |
| face_plan | H3_T8_FACE_REFINE_PARITY_PLAN | — | |
| audio_policy | COMBO | require_locked | 2 options: require_locked, preserve_existing |
| allow_multi_shot_exp | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| av_latent | LATENT | — |
| report_json | STRING | — |