Nodes/ComfyUI-GGUF-Loader/LTX-2.3 EditAnything Reference Patch ⚡
ComfyUI Node

LTX-2.3 EditAnything Reference Patch ⚡

Inject a person into an LTX-2.3 scene, without the ten-node dance

By ChrisColeTech·Created 18 days ago·Updated about 23 hours ago· 7
LTX-2.3 EditAnything Reference Patch ⚡
  • model
  • vae
  • reference_image
  • MODEL
module_path
reference_modeper_batch_item

"Add a person to this video" is the request that exposes how little of the LTX-2.3 edit pipeline is one node. The EditAnything recipe - ported faithfully from Wan2GP's real pipeline - needs extra cross-attention layers, a timestep modulation shift, and a reference photo VAE-encoded and injected as clean tokens, all happening inside a video model whose attention blocks aren't the same class as the base model's. This node packages the whole mechanism so you can bolt it onto any conditioning-prep node you like.

The primary way to use EditAnything is LTX-2.3 VidToVideo's built-in editanything_lora/editanything_module_path selectors, which do everything in one place. This standalone patch exists for the other cases: you want the reference-conditioning on a model ahead of a different node - LTXV23ImgToVideo, or a plain text-to-video graph with no vid2vid involved. The mechanism is identical to the built-in path, exposed with its full dial set.

How it works

Give it a patched model, a video VAE, your reference photo, and the EditAnything .module.safetensors file, and it does the four things the trained recipe requires: VAE-encodes the reference image and appends it as clean reference tokens (the identity carrier); the module's extra layers add a ref-attention residual and an AdaLN timestep shift; and your conditioning-prep node supplies the text. The .module file is not a LoRA - it's real extra layers that ship from the same release as its .standard.safetensors half, which you load separately with stock LoraLoaderModelOnly before this node. Both files come from DeepBeepMeep/LTX-2 (edit_anything_reference_v0.1_r128_*) and live in models/loras.

The inputs

  • model, vae (the loader's video_vae), reference_image - required. One clean subject photo, plain/white background strongly recommended (that's what the mechanism was trained on; a SAM3 matte composited onto white works).
  • module_path - dropdown over your loras folder, picks the .module.safetensors.
  • reference_mode - per_batch_item (each image in the batch is its own distinct reference, image i drives sample i), or first_frame_only (just reference_image[0], the vid2vid recipe).

Output is a single MODEL to feed your sampler.

Installing

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

Restart. You'll need the LTX-2.3 A/V kit (DiT, Gemma-3 encoder, both VAEs) from the README's file table, plus the EditAnything files above. Node under 🤖 CCTech/LTX-2.3.

Gotchas

Two that burn people. First, wire the same reference photo into this node's reference_image and your conditioning node's image input - the guide-token append and the EditAnything path are complementary, not alternatives. Second, resolution: run the EditAnything sampling pass at half your target resolution, then LTX-2.3 Latent Upscale x2 and a refine (3 steps) sampler pass - at full res the source-video guide dominates and the add never appears (verified both ways on real generations). And the prompt format is imperative: Add <appearance>, <placement>, <relation to the scene> - not a caption, not "replace…".

Category🤖 CCTech/LTX-2.3

Inputs (5)

NameTypeDefaultDescription
modelMODEL
vaeVAEVideo VAE - encodes reference_image into the same latent space the module's proj layers expect.
reference_imageIMAGEThe person/subject to inject. A batch of N images gives N distinct references, one per generation in the sampling batch (tiled/truncated to fit) - see reference_mode for the vid2vid case.
module_pathCOMBOThe EditAnything .module.safetensors file, from the loras folder (it's not a LoRA itself, but ships from the same release - keep it next to its .standard.safetensors half, which loads separately via LoraLoaderModelOnly).
reference_modeCOMBOper_batch_itemper_batch_item: each image in reference_image's batch is encoded and used as its OWN distinct reference (not blended) - image i drives sample i of the sampling batch, tiled/truncated if the counts don't match. first_frame_only: use only reference_image[0], ignore the rest - the vid2vid recipe (one clean reference identity against a single video), avoids a mismatched-count surprise when reference_image's batch isn't meant to map 1:1 onto the sampling batch.

Outputs (1)

NameTypeDescription
MODELMODEL