MiniMax H3 Face Pass
Re-draw the face at a big canvas, then composite it back
- model
- positive
- negative
- vae
- audio_vae
- source
- reel
- reel
- pass
Faces are where video models lie most convincingly - and most visibly. MiniMax H3 Face Pass is the pack's local fix: it takes a decoded pass, finds the face in it with a SAM3 detector, re-draws that face at a canvas where it fills the frame, and composites the result back. Same idea as the still-image face-repair passes you already know from the detailing world, but applied per-frame to H3's video output.
It's an MiniMax/internal node - written into the graph by the renderer after the reel node when a shot asks for it - so you configure it from the Creator UI's face settings rather than wiring it by hand. canvas: 512 and denoise: 0.45 in the workflow blob are its defaults.
How it works
The flow, from the source:
- Read the pass's frames back from the spill (the reel node already wrote it to disk).
- Run SAM3 detection on a sample of frames to find faces and their bounding boxes. No face found in the pass? It says so in the log and returns the pass untouched - it won't invent a face that isn't there.
- Crop each face, scale the crop up to the
width/heightcanvas, and encode the prompt and references at that size - the tooltip is explicit that the conditioning is built at the crop canvas so what the sampler sees matches the size the crop is drawn at. - Re-draw the crop with the model, scaled by how large the face already is:
denoiseis a ceiling, scaled down per frame when the face already fills a lot of the frame. Small, mushy face in the distance? Full-strength redraw. Face already big and decent? It backs off so it can't wreck what's working. - Composite the repaired crop back with a paste weight, in a window around the face so the seam isn't a visible rectangle.
The inputs that matter
model,positive,negative,vae,audio_vae- the standard H3 stack;audio_vaeis needed because H3 samples picture and sound as a pair.source- theMMC_PASSto repair, exactly as the reel node wrote it.detector- the SAM3 checkpoint that finds the face. This is a string naming a local model; if it's missing from your disk, the pass is the first thing that breaks.width/height- the crop canvas, default 512×512.seed,steps(20),cfg(1.0),sampler_name,scheduler- the redraw sampler.denoise- 0.45 default, the per-frame ceiling described above.reel- required, unlike on the reel node itself: this runs after one, so the reel ending with the pass it's about to replace is always present.
Outputs are reel (with the repaired pass swapped in) and pass.
Realistic expectations
This is a "fix the face" pass, not a "make it photoreal" button. It re-draws at a 512 canvas and composites back, so it's best for shots where a character's face is present but off - soft, warped, inconsistent - and you want it tightened without re-sampling the whole pass. It costs a SAM3 model load plus a mini H3 render per pass, so on a long timeline you'll want it on only the shots that need it. Install is the shared pack install: ComfyUI Manager → search "H3 Creator Palette", or git clone ... into custom_nodes/, restart, hard-refresh. The most common failure is a detector filename that doesn't match a SAM3 checkpoint on your machine - check that string first.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | Built at the crop canvas, so the references and the prompt are encoded at the size the crop is drawn at. | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| audio_vae | VAE | — | |
| source | MMC_PASS | The pass to repair, as the reel node wrote it. | |
| detector | STRING | The SAM3 checkpoint that finds the face. | |
| width | INT | 51232–8192 | — |
| height | INT | 51232–8192 | — |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–200 | — |
| cfg | FLOAT | 1.000–30 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| denoise | FLOAT | 0.450.01–0.99 | The ceiling. Scaled down per frame by how large the face already is — see faces.strengths. |
| reel | MMC_REEL | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| reel | MMC_REEL | — |
| pass | MMC_PASS | — |