Nodes/10S-Comfy-nodes/🎭 LTX Likeness Anchor
ComfyUI Node

🎭 LTX Likeness Anchor

Pull attention toward a reference face, block by block

By TenStripΒ·Created 4 months agoΒ·Updated 26 days agoΒ· 244
🎭 LTX Likeness Anchor
  • model
  • reference_info
  • MODEL
β—„strength0.10β–Ί
β—„reference_sourceautoβ–Ί
β—„frame_0_bboxβ–Ί
β—„similarity_threshold0.50β–Ί
β—„decay_with_distance0.00β–Ί
β—„bypassfalseβ–Ί
β—„debugfalseβ–Ί
β—„advanced_modefalseβ–Ί
β—„depth_curveflatβ–Ί
β—„block_index_filterβ–Ί
β—„similarity_sharpness8.0β–Ί
β—„override_face_bboxβ–Ί
β—„skip_when_sigma_above0.00β–Ί
β—„pull_modedirectionalβ–Ί
β—„late_block_falloff0.00β–Ί

The classic LTX identity failure: the face is right in the early frames, then drifts - subtly at first, unrecognizably by the end. LTXLikenessAnchor attacks that at the attention level, with per-block hooks on video self-attention (attn1) that pull generated tokens toward reference face features. It's the workhorse of TenStrip's pre-Reinforcer identity era, and it's still genuinely good - especially if you're on a merged/vanilla LTX2 checkpoint rather than the Best-Face-ID LoRA stack.

The matching uses centered cosine similarity (per-frame mean subtracted first, so common-mode features don't dominate), and v1.2 adds a directional pull mode that rotates token features toward the reference identity direction without changing magnitude - which is what preserves color and saturation.

The two reference modes

The design is deliberately flexible about where the identity features come from:

  • latent_frame_0 (recommended for i2v) - uses frame 0 of the latent as the reference. In i2v workflows that's literally the conditioning start image, so you get identity anchoring with zero extra plumbing. frame_0_bbox lets you restrict the source to the face region.
  • guide - reads the appended reference frame from a reference_info output, when you're running the Guide+Anchor combo.
  • auto (default) - uses the guide if reference_info is wired, otherwise falls back to latent_frame_0.

So the minimal wiring is just: Model β†’ LTXLikenessAnchor β†’ Sampler. The strength (0.10, band 0.08-0.18 for directional pull; 0.30-0.60 usable for a hard identity lock) is the knob you'll actually touch.

The inputs that fix real problems

  • pull_mode - directional (recommended) or additive (legacy). The additive mode pulls magnitude too and desaturates at high strength; directional is why the defaults changed.
  • similarity_threshold (0.50) - how similar a token must be to get pulled. Raise it to narrow the effect to the strongest matches.
  • decay_with_distance (0) - fade the pull strength from frame 0 to the last frame; 0.3-0.5 lets later frames breathe while early frames hold.
  • late_block_falloff (0) - the useful one. The last 12 blocks (37-47) handle fine detail, and pulling still-image detail into video refinement steps over-sharpens. 0.3-0.6 disables or dampens late blocks, which is the documented fix for that overcrisp, texture-flattened look.
  • skip_when_sigma_above (0) - disables the anchor on very noisy early steps.
  • bypass - A/B compare without rewiring.

The README's honest warning: the author notes that with depth_curve=late_focus or very high strength, "variance-collapse side effects" are possible, and to test with clean state - hooks can leak between runs, so restart or bypass to get a true read.

The community reality check

If you're coming from TenStrip's face workflows, you'll have seen the identity-loss complaint pattern: small faces in wide shots lose identity, and the face-region conditioning can leave a visible box artifact. The fixes that recur in the threads are the same ones this node's parameters encode: crop the source closer to the subject (a full-body reference simply has too little face detail), use a second reference with a clean face read, and keep the upscale pass out of the identity path - several users report the upscaler is the fastest way to lose identity. This node is where you tune most of that.

Install is the pack-wide clone (10S_Nodes into custom_nodes, restart, or ComfyUI Manager β†’ "10S-Comfy-nodes"), no extra deps. LTX2-class models only. For the newer Best-Face-ID setups the pack now points you at LTXFaceIdentityReinforcer instead - but for vanilla LTX2 identity anchoring, this is still the node.

Category10S Nodes/Identity

Inputs (17)

NameTypeDefaultDescription
modelMODELβ€”
strengthFLOAT0.100–0.8Magnitude of pull toward reference features. 0.08-0.18 typical with directional pull. Higher values (0.30-0.60) usable for stronger identity lock. Variance-collapse side effects at very high values are possible but practical ceiling unconfirmed β€” test with clean state (no prior runs' hooks leaked) before drawing conclusions.
reference_infooptREFERENCE_INFOOptional: wire from LikenessGuide if using Guide+Anchor combined approach. Leave disconnected to use frame_0 of the latent as the reference (recommended for i2v workflows where frame_0 is already the conditioning).
reference_sourceoptCOMBOautoauto: use guide if reference_info wired, else use latent_frame_0. guide: requires reference_info from LikenessGuide. Reads the appended reference frame. latent_frame_0: read the first frame of the latent as the reference. Avoids the end-keyframe interpolation issue; ideal for i2v workflows where frame_0 is the conditioned start image.
frame_0_bboxoptSTRINGWhen reference_source=latent_frame_0: bbox within frame_0 to use as identity source. Format: 'x1,y1,x2,y2' normalized 0-1. Empty = whole frame_0 used as reference.
similarity_thresholdoptFLOAT0.500–1Minimum centered-cosine similarity for a generated token to receive pull. Lower = broader effect (more tokens pulled).
decay_with_distanceoptFLOAT0.000–1Per-frame strength decay from frame 0 to frame F_orig-1. 0 = uniform across all frames.
bypassoptBOOLEANfalseβ€”
debugoptBOOLEANfalseβ€”
advanced_modeoptBOOLEANfalseβ€”
depth_curveoptCOMBOflatPer-block strength scaling. flat = uniform (recommended). ramp_down = stronger early, lighter late (good for avoiding over-sharpening). late_focus = stronger late blocks (CAUTION: can over-sharpen by pulling still-image detail into video refinement steps).
block_index_filteroptSTRINGLimit to specific blocks, e.g. '0-36' to skip the final 12 blocks where over-sharpening tends to manifest. Empty = all blocks.
similarity_sharpnessoptFLOAT8.01–32Sigmoid steepness for similarity gating. Higher = more binary in/out. Lower values (4-6) soften the transition.
override_face_bboxoptSTRINGOverride face_bbox_within_reference set in LikenessGuide. Format: 'x1,y1,x2,y2' normalized 0-1. Empty = use guide's bbox.
skip_when_sigma_aboveoptFLOAT0.000–1Disable anchor when sigma > this value (high-noise early steps). 0 = always active.
pull_modeoptCOMBOdirectionaldirectional (recommended): rotate token features toward reference identity direction WITHOUT changing magnitude. Preserves color/saturation. additive (legacy): pull toward reference features including magnitude. Identity + tonal pull; can cause desaturation/fade with strong settings.
late_block_falloffoptFLOAT0.000–1Additional per-block strength falloff in the last 12 blocks (37-47), which handle fine detail. 0 = no falloff. 0.5 = late blocks at half strength. 1.0 = late blocks disabled. Use 0.3-0.6 to reduce over-sharpening or texture-flattening from late-block pull.

Outputs (1)

NameTypeDescription
MODELMODELβ€”