VRGDG LTX First / Last Endpoint Guide
Pin both ends of the clip and let the middle figure itself out
- positive
- negative
- vae
- latent
- first_image
- last_image
- positive
- negative
- latent
LTX is fundamentally a first-frame/last-frame model: give it a start image, an end image, and it has to invent a coherent path between them. That's a feature if you actually have both ends - a scene that begins on a character sitting and ends on them standing, a shot that opens wide and closes tight. VRGDG LTX First / Last Endpoint Guide is the node that injects both images into the conditioning so the sampler has real destinations instead of one anchor and a prayer.
How it works
The node takes your positive and negative conditioning, a vae, the latent you're going to sample, and the two images: first_image and last_image. It encodes each image into the latent space and attaches it to the conditioning, and it gives you separate strength controls per end - first_strength and last_strength, both defaulting to 1.0. Lower the last-frame strength and the ending becomes a hint instead of a commitment; keep it at 1 and the sampler is expected to land on it.
This is the "endpoint" version of the pair - it treats both ends as fixed posts. Its sibling, the VRGDG LTX First / Last Temporal Guide, does the same job but ramps the influence with a transition curve so the guide's grip on the final frame builds over the denoise rather than being pinned the whole time. If you want a hard start and a hard finish, this is the one.
The three outputs - positive, negative, and latent - all flow straight into your sampler. The conditioning feeds the guider, the latent feeds the sampler, and both ends of the clip are baked into what the model sees.
Where it fits
This is exactly the tooling behind the "First/Last Frame scenes" and chained first/last sequences in the pack's AI Video Builder. The standard trick from the music-video crowd: generate consistent stills with an image model, then chain first/last pairs so each clip's end frame is the next clip's start frame - which is how you hold a character across cuts when LTX's cross-shot identity is still its weakest axis. One thing the 2.3 era hammered home: resolution must respect the model's hard constraints (width/height divisible by 32, frame count divisible by 8 plus 1) or the sampler fails rather than rounds, so encode your endpoints at a size that fits the model.
Install
Part of the VRGameDevGirl pack: ComfyUI Manager → search vrgamedev (or add https://github.com/vrgamegirl19/comfyui-vrgamedevgirl), restart, hard-refresh the browser. Manual: git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl into ComfyUI/custom_nodes, then pip install -r requirements.txt. Windows portable builds: install Cython and scikit-build-core first, and prefer Python 3.12.
Troubleshooting
The most common complaint is "it ignored my last image." Check last_strength first - below about 0.3 the model treats it as a vague suggestion. Then check that both images are encoded with the same VAE you'll decode with; mixing VAEs gives muddy color. And if the middle of the clip looks like a jump cut between two poses instead of a motion, the two endpoints are probably too different - LTX has to guess the entire path, and it's far more cooperative when you give it a chained sequence of small jumps than one big one.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| latent | LATENT | — | |
| first_image | IMAGE | — | |
| last_image | IMAGE | — | |
| first_strength | FLOAT | 1.000–1 | — |
| last_strength | FLOAT | 1.000–1 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |