Nodes/MiniMax H3 Audio T8/MiniMax H3 Face Refine Latent / 脸部二次生成条件 (Advanced)
ComfyUI Node

MiniMax H3 Face Refine Latent / 脸部二次生成条件 (Advanced)

Swap the face crops into your H3 latent, audio untouched

By T8mars·Created 20 days ago·Updated a day ago· 807
MiniMax H3 Face Refine Latent / 脸部二次生成条件 (Advanced)
  • positive
  • av_latent
  • crops
  • video_vae
  • face_plan
  • positive
  • av_latent
  • report_json
audio_policyrequire_locked
allow_multi_shot_expfalse

Here's where face refine gets its hands on the actual generation. After the Plan node has produced face crops and the Sampler has built a low-denoise schedule, this node does the surgical part: it strictly replaces only the video stream of an existing H3 AV latent with the VAE-encoded crop sequence. The audio latent and the noise-mask objects are preserved exactly. No temporal trim, no padding, no resizing of the timeline - it's a head transplant, not a rewrite.

That's a bigger deal than it reads. H3 latents are joint - video and audio live in the same nested latent, on different clocks. If you naively VAE-encode crops and stuff them in, you can silently break the audio alignment or the temporal length. This node exists to refuse that: it only touches the video portion, and it requires the audio noise mask to be present and locked (audio_policy = require_locked) - if the mask is missing or nonzero, it refuses rather than guessing. "Use a native BasicScheduler denoise value for the second pass," the description warns, which is how the low-denoise second pass is supposed to be driven.

Inputs you need to get right:

  • positive - your conditioning, passed through unchanged. This is what tells the second pass what to keep drawing.
  • av_latent - the full H3 AV latent from your first pass.
  • crops - the face crops from the Plan node (or your own source-bound crops).
  • video_vae - the H3 video VAE, used to encode the crops.
  • face_plan - the H3_T8_FACE_REFINE_PLAN from planning, so the node knows the crop geometry and alignment.
  • allow_multi_shot_exp - default false. If your footage has hard cuts, this refuses to run and tells you to split the source into shot-local H3 windows instead. That's a feature, not a bug - the plan is shot-aware, and the refine pass should be too.

Outputs: positive (pass-through), av_latent (the modified latent - feed this into the face-refine sampler), and report_json.

The thing that trips people: this node is not "do a second generation." It's the conditioning step - it builds the latent that the second, low-denoise pass will sample. The actual sampling happens in a sampler node fed by MiniMaxH3FaceRefineSamplerT8Advanced. Wire order matters: Plan → this → Sampler → sampler node → Stitch back onto the original frames.

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 downloads. You supply the H3 model, CLIP and VAE yourself - and remember the model's Community License has its own territory restrictions that are separate from this GPL pack.

CategoryT8/MiniMax H3/Quality/Experimental

Inputs (7)

NameTypeDefaultDescription
positiveCONDITIONING
av_latentLATENT
cropsIMAGE
video_vaeVAE
face_planH3_T8_FACE_REFINE_PLAN
audio_policyCOMBOrequire_lockedrequire_locked refuses a missing or nonzero audio noise mask.
allow_multi_shot_expBOOLEANfalseDefault refuses hard cuts; split the source into shot-local H3 windows.

Outputs (3)

NameTypeDescription
positiveCONDITIONING
av_latentLATENT
report_jsonSTRING