# LTX-2.5 first-and-last-frame — the config that actually works Extracted from `video_ltx2_5_flf2v fresg.json`, the workflow Radek confirmed produces good output. Recorded because getting this wrong looks like a broken model rather than a wrong preset. ## The trap There are **two LTX-2.5 transformers and they need opposite sampling regimes.** Running one at the other's settings produces soft, washed-out, distorted frames that read as a bad model or bad anchors. It is neither. | | distilled (what the preset uses) | dev | |---|---|---| | transformer | `ltx-2.5-22b-distilled-transformer-comfy-int8-convrot` | `ltx-2.5-22b-dev-transformer-bf16` | | text encoder | `gemma4-12b-with-proj-ltx-2.5-comfy-int8-convrot` | `gemma4-12b-with-proj-ltx-2.5-bf16` | | steps | **8** | ~24 | | guidance | `LTXVDualCFGGuider` at **1, 1** | CFG ~4 | | sampler | `SamplerEulerAncestral` (eta 0, s_noise 1) | euler | | sigmas | `ManualSigmas`, explicit 9-value list | `LTXVScheduler` | ## Verified working values ``` UNETLoader ltx-2.5-22b-distilled-transformer-comfy-int8-convrot.safetensors, default CLIPLoader gemma4-12b-with-proj-ltx-2.5-comfy-int8-convrot.safetensors, type=ltxv VAELoader ltx-2.5-video-vae-bf16.safetensors (video) VAELoader ltx-2.5-audio-vae-bf16.safetensors (audio) ManualSigmas 1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0 SamplerEulerAncestral eta 0, s_noise 1 LTXVDualCFGGuider 1, 1 LTXVAddGuide frame_idx 0, strength 0.7 (first frame) LTXVAddGuide frame_idx -1, strength 0.7 (last frame, chained off the first) LTXVPreprocess img_compression 18 size / length 1280 x 720, 5 s @ 24 fps audio LTXVEmptyLatentAudio — the model generates its own audio ``` Both guides run at strength **0.7**, not 1.0, and the second consumes the first's conditioning *and* latent. `LTXVCropGuides` strips the guide frames before decode. ## prompt_enhance The preset ships it **on**, loading `gemma4_e2b_it_bf16.safetensors` as a second CLIP. It rewrites the prompt through Gemma before encoding. **Turn it off when the prompt contains dialogue you need spoken verbatim, or a trigger word.** The rewriter will paraphrase both. It is also the documented reason a Comfy Cloud test destroyed the `AKUSPACE` trigger and the level words. Leave it on only for loose scene prompts where wording does not matter. ## The AKUSPACE LoRA does not belong in this graph Tested and confirmed on 2026-08-13: the adapter is **reference-conditioned**. It was trained to transform a reference audio input, so with no reference present it is off-distribution and produces near-silence at any strength. In a graph where audio is pinned by a zero noise mask it never runs at all. The working chain is **video render → take its generated audio → a2a pass with the LoRA → remux onto the same frames**. That also gives the before/after pair for free: the untouched render is the base-model baseline. Note `loras/ltx-2.5-22b-distilled-lora-450-bf16.safetensors` in the LTX repo is an unrelated distillation-acceleration LoRA, not ours. ## Serving ComfyUI on **8189** (8188 is a proxy on some templates). Reachable across a tailnet as `http://:8189`. ComfyUI holds its weights in VRAM after a run — call `POST /free {"unload_models":true,"free_memory":true}` before running the trainer on the same GPU, or the a2a pass dies with CUDA OOM while Comfy sits on 66 GB.