Nodes/ComfyUI-GGUF-Loader/LTX-2.5 Face Identity Reinforcer ⚡
ComfyUI Node

LTX-2.5 Face Identity Reinforcer ⚡

LTX-2.5 face identity that actually sticks

By ChrisColeTech·Created 20 days ago·Updated about 14 hours ago· 7
LTX-2.5 Face Identity Reinforcer ⚡
  • model
  • vae
  • reference_image
  • target_latent
  • reference_image_2
  • model
identity_strength1.00
face_padding0.15
auto_face_croptrue
crop_zoom_factor2.0
spatial_gatingmask_soft
placement_modei2v_safe
source_id2
phase_scale1.0
debugfalse

LTX is fast, and LTX is a fantastic draftsman - and LTX will also hand your character a new face three times in one five-second clip. If you're making talking-head or face-to-video content, the community's fix is the Best-Face-ID LoRA (Best_FaceID_v1.0_LoRA.safetensors, from Alissonerdx/LTX-Best-Face-ID), and this node is the packaging that makes that LoRA work properly. It's the whole reference-latent injection, the RoPE phase tagging the LoRA was trained against, face detection, and spatial mask gating, all in one node.

What makes this more than the plain reference-conditioning node is where the reference tokens sit. Best-Face-ID's trained recipe tags reference tokens with a distinct RoPE source position (source_id=2) via phase rotation. Do that wrong and the reference tokens collide with the i2v frame-0 conditioning, and the face drifts again. This node keeps the source_id=2 tag intact while placing tokens at a position that plays nice with the first-frame hold - which is the "reinforcer" part: it makes an identity technique that usually only works for text-to-video survive i2v too. Verified A/B on real GPU: conditioning alone pulls identity toward the photo; reinforcer plus Best-Face-ID locks it closest; strength 0 is a bitwise no-op.

How to wire it

Load the Best-Face-ID LoRA on the MODEL path before this node (a stock LoraLoaderModelOnly works), then connect this node's model output into the rest of the graph. Required inputs: model, vae, reference_image, and target_latent (the same latent that goes into your sampler).

The dials that matter:

  • auto_face_crop (default on) - detects the face and crops the reference around it at crop_zoom_factor, matching the target's aspect ratio. This is the single biggest quality lever for wide or full-body references: the VAE gets real face detail to encode instead of a face the size of a stamp. Turn it off if your reference is already a tight headshot.
  • identity_strength - 1.0 is the Best-Face-ID default; nudge up if the likeness is weak, down if the reference starts overpowering the prompt.
  • spatial_gating - mask_soft (recommended) constrains identity influence to the face region with a cosine falloff; mask_hard is binary; off is raw uniform Best-Face-ID. If you've ever had the "person's face is right but their hoodie became a portrait of them" problem, soft gating is the fix.
  • source_id / phase_scale - leave at 2.0 / 1.0. Those are the values the LoRA was trained with.
  • reference_image_2 - optional secondary reference for multi-subject scenes.

One model out. It pairs with this pack's LTX-2.5 prep nodes and works with joint AV latents - the video half is unbound automatically.

Installing it

This node ships in ComfyUI-GGUF-Loader (ChrisColeTech's fork of city96's ComfyUI-GGUF). Install via ComfyUI Manager ("ComfyUI-GGUF-Loader"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
pip install --upgrade gguf

Restart ComfyUI, then grab Best_FaceID_v1.0_LoRA.safetensors from the Alissonerdx/LTX-Best-Face-ID repo and drop it in models/loras. The node's face detector is built in - YuNet → MediaPipe → Haar fallback, no separate model download.

Common issues

Two gotchas, both worth knowing before they bite. The Best-Face-ID LoRA is 2.3-trained, so the 2.5 pairing is genuinely unverified cross-version territory - it works, and the community runs it, but the phase tag is only as good as the weights give you. And remember the phase tag does little without the LoRA: this node without Best_FaceID loaded is just reference conditioning, not the full recipe.

Category🤖 CCTech/LTX-2.5

Inputs (14)

NameTypeDefaultDescription
modelMODEL
vaeVAE
reference_imageIMAGE
target_latentLATENT
identity_strengthoptFLOAT1.000–2Scales reference latent magnitude. 1.0 = Best-Face-ID default.
face_paddingoptFLOAT0.150–0.5Face bbox expansion - captures hair/neck context.
auto_face_cropoptBOOLEANtrueWhen a face is detected, auto-crop the reference image around the face at zoom_factor extent and match target aspect ratio. Dramatically improves identity transfer for wide/full-body references by giving the VAE much more face detail to encode. Turn off if reference is already tightly cropped.
crop_zoom_factoroptFLOAT2.01.2–4How much context around the face to include. 2.0 = crop is 2x the face bbox (shoulders + hair). 1.5 = very tight (face + hair only). 3.0 = wide (upper body). Ignored if auto_face_crop off.
spatial_gatingoptCOMBOmask_softConstrain identity influence to face region. mask_soft = cosine falloff (recommended). mask_hard = binary. off = uniform (raw Best-Face-ID).
placement_modeoptCOMBOi2v_safei2v_safe / t2v_overlap = pure overlap layout (Best-Face-ID's default). Reference reuses target's coord grid, disambiguated by clean/noisy state and sequence position. prefix = additive offset (legacy).
source_idoptFLOAT20–8RoPE source tag applied via phase rotation. Best-Face-ID LoRA expects 2.0. source_id=0 disables rotation (overlap-only behavior).
phase_scaleoptFLOAT1.00–2Phase rotation magnitude multiplier. Best-Face-ID LoRA expects 1.0. Lower values reduce reference/target separation strength.
reference_image_2optIMAGEOptional secondary reference (multi-subject).
debugoptBOOLEANfalse

Outputs (1)

NameTypeDescription
modelMODEL