CivArchive
    LTX-2.5 Image-to-Video AUTO — Native Synced Audio, Two-Stage Distilled (16GB) - v2.0
    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.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/5–5/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.3

    FAQ

    Comments (3)

    jappa123Aug 14, 2026· 1 reaction
    CivitAI

    Hmm, rendered video looks really nice!

    There is only 1 thing that bothers me, every like 1-2 second there is like "micro stutter" in rendered videos idk why :(

    Also it's only for cinematic video like you attached right? Because there is no place where I can type positive prompts, i can after disconnecting motion switch with clip text encode but not sure if i should. Thanks!

    TP_AI_63
    Author
    Aug 14, 2026

    Thanks for flagging this — confirmed it on my end too, the micro-stutter shows up in my own published showcase clips, not just your renders. So it's a real pipeline characteristic right now, not something specific to your setup. I don't have a fix yet, still digging into root cause (my current best guess is a seam at the causal VAE's temporal chunk boundaries, but unconfirmed — need to test frame-interval alignment and tiled vs non-tiled decode specifically for this before I can say). Will follow up here if I trace it to something fixable.

    On the prompt question — no rewiring needed. The WF has a built-in "Manual Motion Text" box already wired in (set the Motion Switch node to 1 instead of 0/QwenVL-auto) — that's the direct way to type your own motion/positive prompt without touching the graph. Disconnecting Motion Switch entirely would just drop that input, not add manual control, so the switch flip is the cleaner path.

    TP_AI_63
    Author
    Aug 14, 2026

    Update — found it and shipped a fix. Ran optical-flow + autocorrelation analysis across my showcase clips: two hard seams per clip, right at frame ~56 and ~112 (~every 2.3s) — matches what you described almost exactly. Root cause is VAEDecodeTiled's temporal chunking (node 131, temporal_size=64) — each chunk boundary shows up as a visible seam in the output. Fix: temporal_size 64→128, so the full 121-frame clip decodes in one temporal pass instead of two — no boundary, no seam. A/B'd on two different source images before shipping, seam's gone in both, no OOM, runtime barely moved. It's live now in v2.0 (also tidied up the node layout while I was in there). Same 16GB/RTX 5080 setup, no extra installs. Re-download and let me know if it's clean on your end too — appreciate you flagging it, made the WF better for everyone downloading it.

    Workflows
    LTXV 2.5

    Details

    Downloads
    269
    Platform
    CivitAI
    Platform Status
    Available
    Created
    8/14/2026
    Updated
    8/25/2026
    Deleted
    -

    Files

    ltx25ImageToVideoAUTONative_v20.json

    Mirrors