CivArchive
    LTX-2.5 Image-to-Video AUTO — Native Synced Audio, Two-Stage Distilled (16GB) - v2.1
    NSFW

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    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; verified stable up to 481 frames (20.0s) — full frame table + the 3 widgets that must move together for longer clips documented on the workflow canvas. 3 of the example clips below (torii, bamboo, koi pond) are 10s/241-frame runs made with this longer-clip setup, not the 5s default — see each clip's caption for the exact settings.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    📦 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

    – v2.1 (2026-08-17) — Long-clip documentation + Manual-mode prompt fix, no change to the 121f (5.0s) default output. If you push past the default length: (1) three widgets must move together — Empty LTXV Latent Video length, LTXV Empty Latent Audio frames_number, LTXV Context Windows context_length — they're independent and nothing warns you if they drift apart (audio silently truncates under a longer picture); (2) context_length below your target length splits the clip into segments that each invent their own pose — set it ≥ length for one continuous take; (3) the QwenVL auto-caption path (Motion Switch=0) is only reliable at the 121f default — for anything past ~15s switch to Manual (Motion Switch=1) and write your own motion text, since a 2B captioner can't hold position-lock + bounded-action + audio-matching at once; (4) Manual-mode prompts need a position lock up front and exactly one bounded action with a clear end state — continuous verbs ("reclining", "leaning", "settling") get read as "sustain this for the whole clip" and the subject visibly drifts out of position on long clips. Manual-mode example text on the canvas rewritten accordingly, with an explicit "Static camera" instruction (camera-movement directives are ignored by the model — do zooms in post).

    – v2.0 (2026-08-14) — Full canvas reorganization: groups now follow a "Cockpit-Left / Pipeline-Right" layout — 📖 Start Here → 🧠 Setup (one-time) → 🎛️ Run (per-run knobs) → 📚 Reference on the left, ▶ PIPELINE 1/55/5 (execution order, hands-off) on the right. Makes it much faster to spot what you actually need to touch on first open. No change to sampling/decode logic — same output as v1.4.

    – v1.4 (2026-08-14) — Fixed periodic micro-stutter (VAEDecodeTiled temporal_size 64→128): eliminates 2 temporal-chunk seam artifacts per clip (~every 2.3s), confirmed via optical-flow measurement + A/B decode test. All 6 example clips regenerated stutter-free, replacing the previous 9.

    – v1.3 (2026-08-14) — QwenVL auto-caption prompt (node86) tightened for cleaner AUDIO: tag format compliance; 3 new example clips added (golden-hour meadow, forest mist, neon night street)

    – 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

    v2.1 — Long-clip documentation + Manual-mode prompt fix. No change to the 121f (5.0s) default output/pipeline. If you push past the default length: three widgets must move together (Empty LTXV Latent Video length, LTXV Empty Latent Audio frames_number, LTXV Context Windows context_length) — they're independent and nothing warns you if they drift (audio silently truncates under a longer picture). Also: context_length should be set >= your target length (one continuous window) — setting it lower splits the clip into segments that can each subtly reinterpret the scene at the seam, seen as a soft blend/ghost artifact around the boundary frame; validated fix across 3 test clips at 241 frames (10s). Manual-mode motion-text example rewritten with a position-lock + single bounded action + "Static camera" instruction — continuous verbs like "reclining"/"leaning" were read by the model as "hold this motion the whole clip" and caused visible subject drift on long clips.

    FAQ

    Workflows
    LTXV 2.5

    Details

    Downloads
    341
    Platform
    CivitAI
    Platform Status
    Available
    Created
    8/17/2026
    Updated
    8/25/2026
    Deleted
    -

    Files

    ltx25ImageToVideoAUTONative_v21.json

    Mirrors