Face Fix - Composite Opaque Full Face
Paste the repaired face back — the no-nonsense composite node
- ltx_face_frames
- face_fix_context
- repaired_video_frames
- applied_face_mask
- repaired_frame_count
Face Fix - Composite Opaque Full Face is the final step of the Face Fix pipeline, and it's the version you reach for when you want the repaired face to just replace the original. It takes the decoded LTX face-video frames, looks up the tracked crop boxes from the Prepare node, and pastes each repaired face into the original full-resolution frame at full opacity. Only the very outside edge of the crop gets feathered, so the face itself stays sharp and true to what LTX generated.
Why "opaque" is a feature here: a common way to blend a regenerated face is to keep the original underneath and fade between them, which washes out the repair and can leave a ghost of the bad original. This node commits instead. The tracked face region is replaced wholesale; the feather is there purely so the crop boundary doesn't look like a hard-edged sticker.
How it works
Given the decoded LTX frames and the face_fix_context from Prepare, it resizes each generated face crop to the exact tracked box size (bicubic), then alpha-blends it in. The alpha is 1.0 across the whole face interior and only ramps down at the outer crop boundary, across feather_pixels worth of pixels. It also sanity-checks that LTX returned roughly the right number of frames for the tracked faces - if LTX gave you a wildly different frame count, it raises an error rather than silently pasting the wrong frames in place.
The inputs
ltx_face_frames- the complete decoded LTX face-video batch, straight out of the video decoder.face_fix_context- the tracked crop boxes and original frames fromFace Fix Prepare. Non-optional: without it, the node has no idea where the faces are.feather_pixels- how wide the outer-boundary blend is. Default 6, range 0–128. The face interior stays fully opaque no matter what you set here.
The outputs
repaired_video_frames- the full-resolution video with faces replaced. This is your finished video.applied_face_mask- a mask of exactly what was pasted, per frame. Handy for double-checking coverage or feeding into further processing.repaired_frame_count- how many frames actually got a face composited.
Installing it
Part of the VRGameDevGirl pack - Manager, search vrgamedev, or:
cd ComfyUI/custom_nodes
git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl.git
Restart and hard-refresh. This node itself pulls no models - the heavy lifting happened upstream (LTX for regeneration, the detector bundled in assets/ for tracking). The workflow in Workflows/FaceFix/VRGDG_FaceFix_Workflow.json shows the intended full wiring.
Common issues
- "LTX returned N frames for M source frames." Frame-count mismatch - usually the decoder produced a different number of frames than the prepare step expected. Recheck the decoder settings rather than fighting the node.
- Visible crop edges. Increase
feather_pixels. If the whole face looks pasted, the real problem is upstream - the generated face doesn't match the crop's perspective or lighting, and no feather fixes that. - Some frames unchanged. That's normal - the node only composites tracked frames. If it's too many, the prepare node's tracking missed the face; check its detection settings, not this node.
Straightforward tool, clear job. When LTX's face looks better than the original - and it often does - this is the node that lets you just take it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| ltx_face_frames | IMAGE | The complete decoded LTX face-video batch. | |
| face_fix_context | VRGDG_FACE_FIX_CONTEXT | Tracked crop boxes and original frames from Face Fix Prepare. | |
| feather_pixels | INT | 60–128 | Feather only the outer crop boundary. The face interior remains fully opaque. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| repaired_video_frames | IMAGE | — |
| applied_face_mask | MASK | — |
| repaired_frame_count | INT | — |