ComfyUI-LTX2.5-MSR Multi-Reference Guide
Five Reference Images Into One LTX Video, Without a Training Run
- positive
- negative
- vae
- latent
- pic1
- pic2
- pic3
- pic4
- background
- msr_parameters
- positive
- negative
- latent
This is the node that actually does the multi-reference magic in the ComfyUI-LTX2.5-MSR pack. Where the IC-LoRA Loader just preps the model, the Multi-Reference Guide is where your character sheet becomes a video: it VAE-encodes up to five reference images, stamps each with its learned slot embedding, and appends them as guide keyframes at the exact negative temporal positions the MSR LoRA was trained on. Wire it up right and you get character consistency in LTX-2.5 without training a single character LoRA.
It's the same conditioning idea LTX has had since the AddGuide node existed, except MSR made it usable: slot identities are learned, the ordering is stable, and the references sit at negative time offsets where they guide without being visible in the output. People run this on 8GB VRAM - the +313 r/comfyui thread doing 940x704 with two references and a background on an RTX 4070 pulled its workflow straight from this pack.
How it works
Each connected reference (pic1 required, pic2–pic4 and background optional) is encoded independently - the image is repeated across reference_frames (25 or 33, default 33), VAE-encoded, then the learned slot embedding is added across the latent channels. The guide assigns slot IDs and negative temporal offsets consecutively to whatever is actually connected, in the fixed order pic1 → pic4 → background. Missing inputs are simply skipped, so a two-reference run gets slots 1 and 2, not gaps.
Feed it the msr_parameters output from the IC-LoRA Loader and you get the full MSR treatment. Leave it disconnected and it degrades gracefully to standard LTX guide behavior - references appended at frame 0 with no slot embeddings. That fallback is handy for A/B testing whether the MSR machinery is doing anything for your particular images.
The inputs that matter
positive/negative- your prompt conditioning, passed through and extended with attention entries per reference.latent- the video-only LTX latent, shaped[B, 128, F, H, W]. This must be wired beforeLTXVConcatAVLatent; a combined audio/video latent is rejected.pic1+ optionalpic2/pic3/pic4/background- single stills each. One frame per input, not a video.strength- reference conditioning strength, 0–1, default 1. Crank it down when references fight the prompt.use_tiled_encode- on for large reference images to keep VRAM in check;tile_size(256) andtile_overlap(64) follow.
Outputs are positive, negative, and latent. The conditioning outputs and the sampled latent go through LTXVCropGuides after sampling - that's what strips the appended reference slots before decoding.
Install & the workflow shape
Same install as the loader (Manager → "ComfyUI-LTX2.5-MSR", or git clone https://github.com/liconstudio/ComfyUI-LTX2.5-MSR into custom_nodes, then a full restart). No extra Python deps; you need a ComfyUI with native LTX-2 AV nodes. The chain: native loader → IC-LoRA Loader → guide → LTXVConcatAVLatent → sampler → LTXVSeparateAVLatent → LTXVCropGuides → decode. Batch size must be 1.
Common issues
- Reference slots appear in the decoded video - the classic. You skipped
LTXVCropGuides. Don't. - Latent shape error - the guide got a combined audio/video latent. Connect it to the video latent first.
- The face doesn't match - the honest one. Community reports on MSR-LoRA are peppered with "it's clearly a different person in the video," mostly about faces; clothing and framing usually hold. A couple of things people actually found helped: try the recommended 50fps output, keep reference images clean and consistent with each other, and don't expect identity-level fidelity from a single pass - the two-stage latent-upscale workflow in the README exists partly for this.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| latent | LATENT | — | |
| pic1 | IMAGE | — | |
| strength | FLOAT | 1.000–1 | — |
| reference_frames | COMBO | 33 | 2 options: 25, 33 |
| use_tiled_encode | BOOLEAN | false | — |
| tile_size | INT | 2560–512 | — |
| tile_overlap | INT | 640–256 | — |
| pic2opt | IMAGE | — | |
| pic3opt | IMAGE | — | |
| pic4opt | IMAGE | — | |
| backgroundopt | IMAGE | — | |
| msr_parametersopt | LTX_MSR_REFERENCE_PARAMETERS | Optional MSR parameters from the LTX MSR IC-LoRA Loader. When omitted, references are appended as standard LTX guides without MSR slot embeddings or negative temporal offsets. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |