━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ LTX-2.5 Image-to-Video AUTO — Native Synced Audio, Two-Stage Distilled Workflow (16GB VRAM)
ComfyUI · LTX-2.5 (Lightricks) · int8-convrot quant · Auto-Orientation · QwenVL Motion Caption
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Drop a photo in → get back an animated MP4 with native synced audio, no separate audio model needed. LTX-2.5's joint video+audio latent space means the model generates picture and sound together in one pass — footsteps, water, wind, fire, whatever the scene calls for comes out matched to the motion. Two-stage distilled pipeline (fast 8-step draft → 2x spatial upscale → 3-step refine) keeps this runnable on a 16GB card. Auto-detects portrait vs landscape from your source image — no manual orientation knob.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ Features
✅ Native Synced Audio — LTX-2.5's joint A/V latent space decodes video and audio from the same diffusion pass, no bolt-on audio model, no lip-sync/foley hacks. Unplug the audio wire on Create Video to mute.
✅ Two-Stage Distilled — Stage 1: 8-step draft at half-res (960×544 / 544×960). Stage 2: 2x spatial upscale + 3-step refine to full res (1920×1088 / 1088×1920). Distilled model — no separate turbo LoRA needed.
✅ Auto-Orientation — GetImageSize → compare → switch reads your source image and picks portrait/landscape automatically, no manual toggle.
✅ Dual Motion-Caption Mode — Motion Switch: 0 = QwenVL auto-captions the scene straight from your image (visual + audio description), 1 = type your own motion+audio text manually for tighter control.
✅ 16GB VRAM Target — int8-convrot quantized DiT (22B distilled) + soft VRAM flush between stage1→stage2. Tested stable on RTX 5080 16GB, batch-3 sequential with no crash/leak (peak ~15.2GB).
✅ Frame Grid (N×8+1) — 121 frames = 5.0s @ 24fps default; 49–241 frame table included on the workflow canvas (2.0s–10.0s range).
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📦 Required Models (6 files, ~40GB, HuggingFace gated — accept the license on the model page before downloading)
LTX-2.5 core (int8-convrot quant, ~40GB):
• ltx-2.5-22b-distilled-transformer-comfy-int8-convrot.safetensors (~21.5GB) — DiT, distilled 22B
• gemma4-12b-with-proj-ltx-2.5-comfy-int8-convrot.safetensors (~15.4GB) — main text encoder
• ltx-2.5-video-vae-bf16.safetensors (~1.4GB) — video VAE
• ltx-2.5-audio-vae-bf16.safetensors (~0.4GB) — audio VAE
• ltx-2.3-spatial-upscaler-x2-1.1.safetensors — stage1→stage2 latent upscaler bridge
Optional (enhancer branch, not wired by default):
• gemma4_e2b_it_bf16.safetensors — smaller Gemma-4 variant, only needed if you build out the optional text-enhancer path
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⬇️ Download Links
📁 ComfyUI/models/diffusion_models/
• ltx-2.5-22b-distilled-transformer-comfy-int8-convrot.safetensors — https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-comfy-int8-convrot.safetensors
📁 ComfyUI/models/text_encoders/
• gemma4-12b-with-proj-ltx-2.5-comfy-int8-convrot.safetensors — https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4-12b-with-proj-ltx-2.5-comfy-int8-convrot.safetensors
• gemma4_e2b_it_bf16.safetensors (optional) — https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4_e2b_it_bf16.safetensors
📁 ComfyUI/models/vae/
• ltx-2.5-video-vae-bf16.safetensors — https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors
• ltx-2.5-audio-vae-bf16.safetensors — https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors
📁 ComfyUI/models/latent_upscale_models/
• ltx-2.3-spatial-upscaler-x2-1.1.safetensors — https://huggingface.co/Lightricks/LTX-2.3/blob/main/ltx-2.3-spatial-upscaler-x2-1.1.safetensors (cross-version bridge file, from the LTX-2.3 repo — tested working with this 2.5 pipeline in P2/P3 smoke+showcase gates. LTX-2.5 has since released its own native upscaler, ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors in Lightricks/LTX-2.5/latent_upscale_models/ — untested swap, not used in this shipped version.)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧩 Required Custom Nodes (3 packs — LTX A/V stack itself is comfy-core, no extra install for that part)
1. ComfyUI-QwenVL (AILab / 1038lab) — motion captioning via AILab_QwenVL node. https://github.com/1038lab/ComfyUI-QwenVL
2. ComfyUI-Easy-Use (vjumpkung) — anythingIndexSwitch (motion/orientation switches), easy compare/ifElse (auto-orientation logic), easy cleanGpuUsed (VRAM flush). https://github.com/vjumpkung/ComfyUI-Easy-Use
3. WAS Node Suite (was-ns) — Save Text File node (caption sidecar for Civitai metadata). https://github.com/WASasquatch/was-node-suite-comfyui
Optional (present in graph, unwired by default):
• ComfyUI_Image_Anything (Kelin) — ImageIterator batch-loader node is on the canvas but not connected in the default single-image path; only needed if you wire up folder-batch mode. Install via git clone if ComfyUI Manager doesn't resolve it: git clone https://github.com/ComfyUI-Kelin/ComfyUI_Image_Anything into custom_nodes/
Requires ComfyUI ≥ 0.30. LTX-2.5 A/V nodes (LTXVConditioning, LTXVPreprocess, LTXVConcatAVLatent, LTXVSeparateAVLatent, LTXVAudioVAEDecode, LTXVLatentUpsampler, etc.) are native comfy-core — no custom node pack needed for the LTX pipeline itself.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 How to Use
Setup:
1. Download all 6 model files → place in ComfyUI/models/ (exact paths above)
2. Install the 2 required custom node packs (QwenVL, Easy-Use) via ComfyUI Manager, plus WAS Node Suite
3. Confirm ComfyUI ≥ 0.30
4. Load the workflow JSON into ComfyUI
Generate:
5. Drag your source photo into the "SOURCE IMAGE" LoadImage node
6. Orientation is auto-detected — no manual switch needed
7. Motion Switch: leave at 0 (QwenVL auto-caption) for simplest path, or flip to 1 and type your own motion+audio text in the Manual Motion Text box
8. Click Queue → stage1 (8-step draft) → VRAM flush → stage2 (2x upscale + 3-step refine) → dual VAE decode (video + audio) → MP4 out with native audio
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ Settings & Parameters
| Setting | Default | Purpose |
|---------|---------|---------|
| Orientation | Auto | Detected from source image — 960×544 landscape / 544×960 portrait at stage1, 2x at stage2 |
| Motion Switch | 0 | 0 = Auto (QwenVL captions image); 1 = Manual (type motion+audio text) |
| Frames | 121 | 5.0s @ 24fps. Valid (N×8+1): 49/73/97/121/145/169/193/217/241 |
| Stage1 steps | 8 | Distilled model, fixed sigma schedule |
| Stage2 steps | 3 | Refine pass after 2x upscale |
| CFG | 1 | Both stages (distilled model default) |
| Sampler | euler_ancestral | Both stages |
| Audio | native, connected | Unplug wire on Create Video to mute |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 Performance Tips
Minimum Spec — 16GB VRAM (int8-convrot + offload), tested RTX 5080. Batch of 3 sequential clips ran with no crash and no VRAM leak (peak ~15.2GB).
Motion Caption Quality — QwenVL auto-caption (Motion Switch=0) reads your source frame directly; well-lit, clear compositions produce richer audio-tailored captions. For guaranteed specific sounds, use Manual mode (Motion Switch=1) and write your own "VISUAL... AUDIO: [sound list]" text.
Known model-level quirk — on source images with sheer/mesh fabric over skin (e.g. lace sleeves), LTX-2.5 can occasionally warp that specific region mid-clip (~60–65% through the frame count). Confirmed via A/B (tiled vs non-tiled VAE decode — same artifact either way) and cross-checked against community reference workflows showing the same pattern — this is a model limitation, not a workflow bug. If you hit it, reroll the seed.
Two-Stage Cost — stage2's 2x-area upscale + refine is the expensive step; if you only need quick previews, you can bypass stage2 nodes and decode stage1's latent directly (lower res, much faster).
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 Also Check Out
Sister workflows by the same author:
• LTX-2.3 Image-to-Video AUTO — the previous-generation version of this line (QwenVL auto-prompt, no drift)
• Krea2 → MiniMax H3 Motion Suite — text-to-image → video, one graph, native H3 audio
GitHub mirror: [github.com/Thinni63/comfyui-workflows](https://github.com/Thinni63/comfyui-workflows)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Notes & AI Disclosure
• Version History
– v1.2 (2026-08-12) — bug fix: Save Text File write-protected-path crash on Queue, fixed
– v1.1 (2026-08-12) — canvas layout tidy (node/group cleanup), no functional change
– v1.0 (2026-08-12) — initial release
• AI-Generated Content — all example clips are AI-generated by LTX-2.5. Respect local AI disclosure laws when publishing your own outputs.
• Configuration Only — no model weights in JSON; download all 6 files separately from the HuggingFace links above.
• Workflow Reuse — free to modify, share, and fork (CC0).
• Content Scope — this listing is SFW-only by design (see Licensing below for why).
• Hardware Tested — RTX 5080 16GB VRAM, int8-convrot, native resolution, no manual upscale beyond the built-in stage2.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⭐ Found this useful?
• Like if it saved you time animating stills with real audio
• Comment your results — I read every one
• Follow for new ComfyUI workflows, all tested on 16 GB VRAM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚖️ Model Attribution & Licensing
LTX-2.5 (Lightricks) — LTX-2.x Community License Agreement (https://github.com/Lightricks/LTX-2/blob/main/LICENSE.md). Free commercial use for entities under $10M annual revenue (paid Commercial Use Agreement required at ≥$10M ARR). No explicit NSFW ban in Attachment A's use restrictions — this listing is SFW-only regardless. No territory restriction beyond standard US export/sanctions compliance. Licensor claims no rights in generated outputs.
Gemma-4 Text Encoder (Google) — Gemma is provided under and subject to the Gemma Terms of Use (https://ai.google.dev/gemma/terms) and Prohibited Use Policy (https://ai.google.dev/gemma/prohibited_use_policy). This workflow's SFW scenic/nature content is fully compliant with the Prohibited Use Policy (which restricts sexually explicit content, dangerous/violent content, hate speech, etc.). Gemma's ToU cascades downstream to anyone using this workflow — by using it you agree to Gemma's Terms of Use.
License verified: 2026-08-12.
ComfyUI Custom Nodes
• ComfyUI-QwenVL (1038lab) — Apache-2.0/BSD — https://github.com/1038lab/ComfyUI-QwenVL
• ComfyUI-Easy-Use (vjumpkung) — https://github.com/vjumpkung/ComfyUI-Easy-Use
• WAS Node Suite (WASasquatch) — MIT — https://github.com/WASasquatch/was-node-suite-comfyui
• ComfyUI_Image_Anything (Kelin, optional/unwired) — https://github.com/ComfyUI-Kelin/ComfyUI_Image_Anything
Workflow JSON — CC0 Public Domain. Free to use, modify, redistribute without attribution (credit appreciated).
All example outputs are AI-generated. Model weights remain the property of their respective owners and are downloaded separately from official HuggingFace sources.
Description
v1.2 — Bug fix. v1.0/v1.1 crashed on Queue with a "write-protected path" error from the caption-saving step (WAS Node Suite's Save Text File node rejected the relative output path). Fixed the path so it resolves correctly under ComfyUI's output folder — no other changes, same pipeline/layout as v1.1.
FAQ
Comments (1)
ComfyUI_Image_Anything node is not working. Even after cloning from the github, it does not appear under the normal manager.