← Back to list

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
| Item | Value |
|---|---|
| API URL | https://gamma.tail5f2bae.ts.net:8001 |
| Model | LTX-2 19B (FP8 Quantized) |
| Max Resolution | 768x512 |
| Max Duration | 9.64 seconds (241 frames @ 25fps) |
| Default FPS | 25 |
| Generation Time | 1-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
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
prompt | str | required | - | What to generate |
negative_prompt | str | "blurry, low quality..." | - | What to avoid |
seed | int | 42 | 0-2^32 | Reproducibility seed |
width | int | 768 | 256-768 | Video width |
height | int | 512 | 256-512 | Video height |
num_frames | int | 121 | 25-241 | Frame count |
fps | float | 25.0 | 24-30 | Output framerate |
steps | int | 40 | 20-50 | Inference steps |
cfg_scale | float | 3.0 | 1.0-7.0 | Prompt adherence |
Duration Reference
| Frames | Duration |
|---|---|
| 25 | 1.0 second |
| 61 | 2.4 seconds |
| 121 | 4.8 seconds |
| 181 | 7.2 seconds |
| 241 | 9.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
- Subject: What is the main focus
- Action: What is happening
- Setting: Where it takes place
- Style: Cinematic, documentary, animated, etc.
- Technical: Camera movement, lighting, quality modifiers
Style Keywords
| Category | Keywords |
|---|---|
| Cinematic | cinematic, film grain, anamorphic, depth of field |
| Documentary | realistic, handheld, natural lighting |
| Animated | animated, cartoon style, vibrant colors |
| Technical | 4K, 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
- Use more specific prompts with style keywords
- Add comprehensive negative prompts
- Increase
steps(40 → 50) for better quality - 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 generationscripts/animate.py- Image-to-video animationscripts/catalog.py- Auto-cataloging with embeddingsreferences/parameters.md- Full parameter documentationreferences/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