Nodes/VRGameDevGirl Video Enhancement Nodes/Face Fix - Composite Landmark Aligned
ComfyUI Node

Face Fix - Composite Landmark Aligned

The smarter Face Fix composite — aligns eyes, nose, and mouth before pasting

By vrgamegirl19·Created about a year ago·Updated about 7 hours ago· 718
Face Fix - Composite Landmark Aligned
  • ltx_face_frames
  • face_fix_context
  • repaired_video_frames
  • applied_face_mask
  • repaired_frame_count
feather_pixels6
transform_smoothing0.75

Face Fix - Composite Landmark Aligned is the version of the Face Fix composite that cares about where exactly the facial features land. Same basic job as Composite Opaque - take the decoded LTX face frames, paste them back over the tracked crops - but before it pastes, it detects the eyes, nose, and mouth landmarks in both the source crop and the generated face, computes a best-fit alignment transform, and warps the generated face so its features sit on top of the original's. Then it composites at full opacity with only the outer boundary feathered.

When does that matter? LTX regenerates the face crop independently, and it doesn't know your tracking box is authoritative. If the model draws the face slightly rotated, scaled up, or nudged sideways relative to the original - common when the source is tilted or the model "fixes" the pose - a straight paste looks wrong even if the face itself is great. Landmark alignment fixes exactly that drift, so you get the best of both: LTX's clean facial detail and the original's geometry.

How it works

It uses OpenCV's face-detector (YuNet) to pull landmark points from both images, then fits a partial affine transform (rotation + scale + translation, computed with RANSAC so outliers don't wreck it) mapping the generated landmarks onto the source's. The generated crop gets warped with that transform, then composited opaquely with an outer-boundary feather - the same as the plain composite. If landmark detection fails on a given frame, it falls back to an unaligned paste rather than failing the whole video.

The inputs

  • ltx_face_frames - the decoded LTX face-video frames.
  • face_fix_context - tracked crop boxes and original frames from Prepare. This is your source of truth for where faces are.
  • feather_pixels - outer-boundary feather width, default 6. Face interior stays opaque.
  • transform_smoothing - the interesting one. It smooths the landmark scale/position changes across frames so the alignment doesn't jitter between frames. Default 0.75, range 0–0.95. It resets automatically at hard cuts - same shot-aware logic as the prepare nodes - so a new shot doesn't inherit a stale transform.

The outputs

  • repaired_video_frames - full-resolution video with aligned, repaired faces.
  • applied_face_mask - what was pasted, per frame.
  • repaired_frame_count - frames that got composited.

Installing it

Same pack, same story: Manager → search vrgamedev, or git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl.git into custom_nodes/, restart, hard-refresh. No extra model downloads for this node - the detector ships in assets/.

Common issues

  • Features still look off despite alignment. Usually the transform is being dragged by a bad landmark frame. Raise transform_smoothing to lean harder on neighbors, or check that the prepare step's crops actually contain the full face (more crop_padding helps).
  • Jitter between frames. Again transform_smoothing - 0.75 is a good start; push toward 0.9 if it wobbles.
  • Some frames look unaligned. Could be the RANSAC fallback when landmark detection fails on a particular frame. Generally harmless, but if it's frequent, the crops are probably too tight or too blurred.

Pick this one over the plain composite whenever faces are tilted or the shot moves the head around. For perfectly still, front-facing shots, the plain opaque composite is honestly fine - but this node costs you nothing to have on hand, and it's the difference between "good" and "convincing" on tricky footage.

CategoryVRGameDevGirl/Face Fix

Inputs (4)

NameTypeDefaultDescription
ltx_face_framesIMAGEDecoded LTX face-video frames.
face_fix_contextVRGDG_FACE_FIX_CONTEXTTracked source crop boxes and original frames.
feather_pixelsINT60–128Feather only the outer crop boundary.
transform_smoothingFLOAT0.750–0.95Smooths landmark scale/position changes across frames. Resets automatically at hard cuts.

Outputs (3)

NameTypeDescription
repaired_video_framesIMAGE
applied_face_maskMASK
repaired_frame_countINT