Back to list
arthurelgindell

ltx-video

by arthurelgindell

Arthur's AI-powered content creation toolkit: video generation, carousel creation, image generation, and automation scripts

0🍴 0📅 Jan 15, 2026

SKILL.md


name: ltx-video description: This skill should be used when the user asks to "generate video with LTX-2", "create video from text", "animate an image", "use GAMMA for video generation", or needs local AI video generation on the GAMMA GPU server. Covers text-to-video, image-to-video, and auto-cataloging workflows with the LTX-2 19B model. version: 1.0.0 license: MIT

LTX-2 Video Generation

Generate AI videos using the LTX-2 19B model running on the GAMMA GPU server.

Quick Reference

ItemValue
API URLhttps://gamma.tail5f2bae.ts.net:8001
ModelLTX-2 19B (FP8 Quantized)
Max Resolution768x512
Max Duration9.64 seconds (241 frames @ 25fps)
Default FPS25
Generation Time1-3 minutes typical

Architecture

GAMMA (Linux GPU Server)          ALPHA (Current Machine)
┌────────────────────┐            ┌────────────────────┐
│  LTX-2 API :8001   │◄──────────►│  ltx2_client.py    │
│  • RTX 4090        │  Tailscale │  • Job submission   │
│  • 24GB VRAM       │            │  • Status polling   │
│  • FP8 inference   │            │  • Auto-cataloging │
└────────────────────┘            └────────────────────┘

Generation Workflow

1. Text-to-Video

from ltx2_client import LTX2Client

client = LTX2Client()

# Check server health
health = client.health()
print(f"GPU: {health.gpu}, Active Jobs: {health.active_jobs}")

# Submit generation job
job = client.text_to_video(
    prompt="A serene mountain lake at sunrise, mist rising from the water, cinematic drone shot",
    negative_prompt="blurry, shaky, overexposed",
    num_frames=121,  # ~4.8 seconds at 25fps
    seed=12345,
)
print(f"Job submitted: {job.job_id}")

# Wait for completion and download
path = client.download(job.job_id)
print(f"Video saved: {path}")

2. Image-to-Video (Animation)

# Animate a static image
job = client.image_to_video(
    image_path="/path/to/image.jpg",
    prompt="Camera slowly zooms out revealing the full scene",
    num_frames=121,
    seed=42,
)

3. Complete Workflow with Progress

def on_progress(stage, job):
    print(f"[{stage}] {job.job_id}: {job.status}")

path = client.generate_and_download(
    prompt="Futuristic cityscape with flying vehicles",
    progress_callback=on_progress,
    num_frames=121,
    seed=42,
)

CLI Usage

# Check server health
python ltx2_client.py health

# Generate video (submit only)
python ltx2_client.py generate "A beautiful sunset over the ocean" --frames 121

# Generate and wait for download
python ltx2_client.py generate "Mountain landscape with clouds" --wait --output my_video.mp4

# Check job status
python ltx2_client.py status <job_id>

# Download completed job
python ltx2_client.py download <job_id> --output video.mp4

# List recent jobs
python ltx2_client.py list --limit 10

Generation Parameters

ParameterTypeDefaultRangeDescription
promptstrrequired-What to generate
negative_promptstr"blurry, low quality..."-What to avoid
seedint420-2^32Reproducibility seed
widthint768256-768Video width
heightint512256-512Video height
num_framesint12125-241Frame count
fpsfloat25.024-30Output framerate
stepsint4020-50Inference steps
cfg_scalefloat3.01.0-7.0Prompt adherence

Duration Reference

FramesDuration
251.0 second
612.4 seconds
1214.8 seconds
1817.2 seconds
2419.6 seconds

Prompt Writing Guide

Effective Prompts

Good: "A golden retriever running through a sunlit meadow, slow motion,
      shallow depth of field, cinematic 4K"

Bad:  "dog running"

Structure

  1. Subject: What is the main focus
  2. Action: What is happening
  3. Setting: Where it takes place
  4. Style: Cinematic, documentary, animated, etc.
  5. Technical: Camera movement, lighting, quality modifiers

Style Keywords

CategoryKeywords
Cinematiccinematic, film grain, anamorphic, depth of field
Documentaryrealistic, handheld, natural lighting
Animatedanimated, cartoon style, vibrant colors
Technical4K, high detail, professional, smooth motion

Negative Prompts

Common negative prompts to improve quality:

blurry, low quality, distorted, watermark, text, logo,
overexposed, underexposed, shaky, jittery, artifacts,
morphing faces, unnatural motion

Auto-Cataloging

Generated videos are automatically cataloged to MediaDB:

from ltx2_client import LTX2Client
from media_db import MediaDB
from embedding_service import EmbeddingService

# Generate video
client = LTX2Client()
path = client.generate_and_download(prompt="...")

# Catalog with metadata
db = MediaDB()
embedding = EmbeddingService().embed(prompt)

record = {
    "id": generate_id(),
    "filename": path.name,
    "filepath": str(path),
    "media_type": "video",
    "description": prompt,
    "quality_class": 1,  # AI-generated = high quality
    "style_tags": ["ai_generated", "ltx2"],
    "vector": embedding,
    # ... additional metadata
}
db.add_record(record)

API Reference

Health Check

curl https://gamma.tail5f2bae.ts.net:8001/health

Response:

{
  "status": "healthy",
  "model": "ltx-2-19b-dev-fp8",
  "pipeline_loaded": true,
  "cuda_available": true,
  "gpu": "NVIDIA RTX 4090",
  "active_jobs": 0
}

Text-to-Video

curl -X POST https://gamma.tail5f2bae.ts.net:8001/api/v1/text-to-video \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A futuristic cityscape with flying vehicles",
    "num_frames": 121,
    "seed": 42
  }'

Job Status

curl https://gamma.tail5f2bae.ts.net:8001/api/v1/status/{job_id}

Download

curl -o video.mp4 https://gamma.tail5f2bae.ts.net:8001/api/v1/download/{job_id}

Troubleshooting

Server Not Responding

# Check if GAMMA is reachable
tailscale ping gamma

# Check API directly
curl -k https://gamma.tail5f2bae.ts.net:8001/health

GPU Out of Memory

Reduce parameters:

  • Lower num_frames (try 61 instead of 121)
  • Use smaller resolution (512x384 instead of 768x512)

Generation Quality Issues

  1. Use more specific prompts with style keywords
  2. Add comprehensive negative prompts
  3. Increase steps (40 → 50) for better quality
  4. Adjust cfg_scale (higher = more prompt adherence)

Integration with Other Skills

With Gemini Super Gems (Veo)

Use LTX-2 for quick iterations, Veo for final production:

# Quick prototype with LTX-2
ltx_path = ltx_client.generate_and_download(prompt)

# Review and refine...

# Final production with Veo (higher quality)
# Use Super Gems browser automation

With LM Studio (Embeddings)

Generate embeddings for semantic search:

from embedding_service import EmbeddingService

embedding = EmbeddingService().embed(prompt)
# Use for semantic search in MediaDB

Bundled Resources

  • scripts/generate.py - Text-to-video generation
  • scripts/animate.py - Image-to-video animation
  • scripts/catalog.py - Auto-cataloging with embeddings
  • references/parameters.md - Full parameter documentation
  • references/prompt-guide.md - Prompt writing best practices

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon