ltx2
AI video generation with LTX-2.3 22B — text-to-video, image-to-video clips for video production. Use when generating video clips, animating images, creating b-roll, animated backgrounds, or motion content. Triggers include video generation, animate image, b-roll, motion, video clip, text-to-video, i
By digitalsamba · 715 installs
npx skills add digitalsamba/claude-code-video-toolkit --skill ltx2
Source repository · Upstream listing
LTX 2.3 Video Generation
Generate ~5 second video clips from text prompts or images using the LTX 2.3 22B DiT model.
Runs on Modal (A100 80GB). Requires MODAL LTX2 ENDPOINT URL in .env .
LTX 2.5 is a deploy time opt in on the same endpoint; see [LTX 2.5 (opt in)]( ltx 25 opt in).
Quick Reference
Parameters
Parameter Default Description
prompt (required) Text description of the video
input Input image for image to video
width 768 Video width (divisible by 64)
height 512 Video height (divisible by 64)
num frames 121 Frame count, must satisfy (n 1) % 8 == 0
fps 24 Frames per second
quality standard standard (30 steps) or fast (15 steps)
steps 30 Override inference steps directly
seed random Seed for reproducibility
output auto Output file path
negative prompt sensible default What to avoid
lora none Style LoRA preset. Currently: crt terminal .
Style LoRAs
Style LoRAs bias the output toward a specific visual aesthetic. They're baked into the Modal image and selected per request; switching LoRAs rebuilds the server pipeline.
On an LTX2 VERSION=2.5 deployment: the presets below were trained on LTX 2.3. crt terminal was checked on 2.5 (2026 10 12) and does not reproduce its CRT look there: it changes the output, but the result is a photoreal scene with green text. Use a 2.3 deployment for it. Keys that don't match are skipped without an error, so compare any other 2.3 LoRA with 2.3 before relying on it.
crt terminal — CRT / pixel art terminals
Base: LTX 2.3 22B, trained by [@lovis93](https://huggingface.co/lovis93/crt animation terminal ltx 2.3 lora) (Apache 2.0).
What the preset changes:
Prepends crtanim, to the prompt (the LoRA's trigger word)
Defaults to 1024×1024, 121 frames (the ratio it was trained on)
Relaxes the default negative prompt so on screen text isn't filtered out
Prompt pattern: <CRT aesthetic → <color palette → <animation style → <subject → <literal text in quotes → <mood . Keep on screen text to 1–3 words — the model can't render long strings reliably. The LoRA prefers static framing; ask for camera moves explicitly if you want them.
Valid Frame Counts
(n 1) % 8 == 0 : 25 (~1s), 49 (~2s), 73 (~3s), 97 (~4s), 121 (~5s default) , 161 (~6.7s), 193 (~8s max practical).
Common Resolutions
Resolution Ratio Notes
768x512 3:2 Default, good balance
512x512 1:1 Square, fastest
1024x576 16:9 Widescreen
576x1024 9:16 Portrait/vertical
Prompting Guide
LTX 2 responds well to cinematographic descriptions. Layer these dimensions:
Camera: "Slow dolly forward", "Aerial drone shot", "Tracking shot", "Static wide angle"
Lighting: "Golden hour", "Cinematic lighting", "Neon lit", "Soft diffused light"
Motion: "Timelapse of...", "Slow motion", "Gentle camera drift", "Gradually transitions"
Style: "Shot on 35mm film", "Documentary style", "Clean minimal aesthetic"
Negative: Always implicitly avoids "worst quality, blurry, jittery, watermark, text, logo"
Keep prompts under 200 words. Be specific about the scene.
Good Prompts
Bad Prompts
Video Production Use Cases
B Roll Clips
Generate atmospheric 5s shots for cutaways between narrated scenes:
Animated Slide Backgrounds
Feed a slide screenshot and add subtle motion:
Animated Portraits
Bring still headshots to life:
Stylized Character Cameo (SadTalker Alternative)
For non realistic faces — fantasy characters, masked figures, heavy beards, helmets, illustrations — SadTalker often produces uncanny or broken lip sync because it's trained on photoreal humans. LTX 2 image to video is frequently a better choice when lip sync precision isn't critical (the viewer's brain fills in the gap as long as something is moving). Prompt for motion + atmosphere , not phonemes:
When LTX 2 wins over SadTalker:
Stylized / illustrated / fantasy characters
Heavy facial hair or accessories obscuring the mouth
Masked or helmeted figures
Short cameo lines where atmosphere matters more than precision
Dramatic VO rather than dialogue
When SadTalker still wins:
Photoreal human presenters
Full sentences where mouth shape needs to match phonemes
Tutorials / talking head explainers where the viewer is effectively reading lips
Branded Intro/Outro
Generate abstract motion backgrounds for title cards:
Combining with Other Tools
LTX 2 generates raw clips. Combine with the rest of the toolkit:
Workflow Tools
Generate clip → upscale ltx2.py → upscale.py
Generate clip → add to Remotion ltx2.py → use as <OffthreadVideo in composition
Generate image → animate flux2.py → ltx2.py input
Generate clip → extract audio ltx2.py → ffmpeg i clip.mp4 vn audio.wav
Generate clip → add voiceover ltx2.py → mix with qwen3 tts.py output
Technical Details
Model: LTX 2.3 22B DiT (Lightricks), bf16
GPU: A100 80GB on Modal (~$2.50/hr)
Inference: ~2.5 min per clip (768x512, 121 frames, 30 steps)
Cost: ~$0.07 per 5s clip warm, ~$0.12 cold at $2.50/hr (benchmark in docs/ltx2.md)
Weights: ~80GB baked into the image. Not kept in VRAM between requests: every request (warm or cold) loads the text encoder and the transformer for each stage, then frees them
Output: H.264 MP4 with synchronized ambient audio (24fps)
Max duration: ~8s (193 frames) per clip
Known Limitations
Training data artifacts: ~30% of generations may have unwanted logos/text from training data. Re run with different seed .
Text rendering: Cannot reliably generate readable text in video. Use Remotion overlays instead.
Max duration: ~8s per clip. Longer content needs stitching.
Audio: Generated audio is ambient/environmental only. Use voiceover/music tools for speech and music.
License: Community License — free under $10M revenue, commercial license needed above that.
Setup
Important: HuggingFace token needs read access scope. Its account needs access to Google's gated [Gemma 3 text encoder](https://huggingface.co/google/gemma 3 12b it qat q4 0 unquantized); Google approves these requests by hand, so ask before deploying. Unauthenticated downloads are severely rate limited.
LTX 2.5 (opt in)
LTX2 VERSION=2.5 at deploy time swaps LTX 2.3 for LTX 2.5 behind the same endpoint, request format and tool. LTX 2.3 stays the default: benchmarked against it, 2.5 is ~25 45% slower per clip and the crt terminal LoRA only works on 2.3 (see docs/ltx2.md ).
Access: Lightricks/LTX 2.5 is gated. Click "Agree and Access" on [the model page](https://huggingface.co/Lightricks/LTX 2.5) with the token's account first (approved automatically; it shares your contact info). It bundles a Gemma 4 text encoder, so 2.5 doesn't need the Gemma 3 access.
License: LTX 2.x Community License. Free under $10M annual revenue, commercial use included; don't remove watermark or provenance features.
Check: the tool prints Model: Lightricks/LTX 2.5 (or Lightricks/LTX 2.3 ) after each clip.
LoRAs: crt terminal doesn't keep its look on 2.5, see Style LoRAs above.
Speed: about 25 45% slower per clip than 2.3 (benchmark in docs/ltx2.md ).
Details, differences and the benchmark plan: docs/ltx2.md .