MCPcopy Index your code
hub / github.com/Lightricks/LTX-Desktop

github.com/Lightricks/LTX-Desktop @v1.0.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.5 ↗ · + Follow
2,165 symbols 7,390 edges 262 files 82 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

LTX Desktop

LTX Desktop is an open-source desktop app for generating videos with LTX models — locally on supported Windows/Linux NVIDIA GPUs, with an API mode for unsupported hardware and macOS.

Status: Beta. Expect breaking changes. Frontend architecture is under active refactor; large UI PRs may be declined for now (see CONTRIBUTING.md).

Gen Space

Video Editor

Timeline gap fill

Features

  • Text-to-video generation
  • Image-to-video generation
  • Audio-to-video generation
  • Video edit generation (Retake)
  • Video Editor Interface
  • Video Editing Projects

Local vs API mode

Platform / hardware Generation mode Notes
Windows + CUDA GPU with ≥16GB VRAM Local generation Downloads model weights locally
Windows (no CUDA, <16GB VRAM, or unknown VRAM) API-only LTX API key required
Linux + CUDA GPU with ≥16GB VRAM Local generation Downloads model weights locally
Linux (no CUDA, <16GB VRAM, or unknown VRAM) API-only LTX API key required
macOS (Apple Silicon builds) API-only LTX API key required

In API-only mode, available resolutions/durations may be limited to what the API supports.

System requirements

Windows (local generation)

  • Windows 10/11 (x64)
  • NVIDIA GPU with CUDA support and ≥16GB VRAM (more is better)
  • 16GB+ RAM (32GB recommended)
  • 160GB+ free disk space (for model weights, Python environment, and outputs)

Linux (local generation)

  • Ubuntu 22.04+ or similar distro (x64 or arm64)
  • NVIDIA GPU with CUDA support and ≥16GB VRAM (more is better)
  • NVIDIA driver installed (PyTorch bundles the CUDA runtime)
  • 16GB+ RAM (32GB recommended)
  • Plenty of free disk space for model weights and outputs

macOS (API-only)

  • Apple Silicon (arm64)
  • macOS 13+ (Ventura)
  • Stable internet connection

Install

  1. Download the latest installer from GitHub Releases: Releases
  2. Install and launch LTX Desktop
  3. Complete first-run setup

First run & data locations

LTX Desktop stores app data (settings, models, logs) in:

  • Windows: %LOCALAPPDATA%\LTXDesktop\
  • macOS: ~/Library/Application Support/LTXDesktop/
  • Linux: $XDG_DATA_HOME/LTXDesktop/ (default: ~/.local/share/LTXDesktop/)

Model weights are downloaded into the models/ subfolder (this can be large and may take time).

On first launch you may be prompted to review/accept model license terms (license text is fetched from Hugging Face; requires internet).

Text encoding: to generate videos you must configure text encoding:

  • LTX API key (cloud text encoding) — text encoding via the API is completely FREE and highly recommended to speed up inference and save memory. Generate a free API key at the LTX Console. Read more.
  • Local Text Encoder (extra download; enables fully-local operation on supported Windows hardware) — if you don't wish to generate an API key, you can encode text locally via the settings menu.

API keys, cost, and privacy

LTX API key

The LTX API is used for:

  • Cloud text encoding and prompt enhancementFREE; text encoding is highly recommended to speed up inference and save memory
  • API-based video generations (required on macOS and on unsupported Windows hardware) — paid
  • Retake — paid

An LTX API key is required in API-only mode, but optional on Windows/Linux local mode if you enable the Local Text Encoder.

Generate a FREE API key at the LTX Console. Text encoding is free; video generation API usage is paid. Read more.

When you use API-backed features, prompts and media inputs are sent to the API service. Your API key is stored locally in your app data folder — treat it like a secret.

fal API key (optional)

Used for Z Image Turbo text-to-image generation in API mode. When enabled, image generation requests are sent to fal.ai.

Create an API key in the fal dashboard.

Gemini API key (optional)

Used for AI prompt suggestions. When enabled, prompt context and frames may be sent to Google Gemini.

Architecture

LTX Desktop is split into three main layers:

  • Renderer (frontend/): TypeScript + React UI.
  • Calls the local backend over HTTP at http://localhost:8000.
  • Talks to Electron via the preload bridge (window.electronAPI).
  • Electron (electron/): TypeScript main process + preload.
  • Owns app lifecycle and OS integration (file dialogs, native export via ffmpeg, starting/managing the Python backend).
  • Security: renderer is sandboxed (contextIsolation: true, nodeIntegration: false).
  • Backend (backend/): Python + FastAPI local server.
  • Orchestrates generation, model downloads, and GPU execution.
  • Calls external APIs only when API-backed features are used.
graph TD
  UI["Renderer (React + TS)"] -->|HTTP: localhost:8000| BE["Backend (FastAPI + Python)"]
  UI -->|IPC via preload: window.electronAPI| EL["Electron main (TS)"]
  EL --> OS["OS integration (files, dialogs, ffmpeg, process mgmt)"]
  BE --> GPU["Local models + GPU (when supported)"]
  BE --> EXT["External APIs (only for API-backed features)"]
  EL --> DATA["App data folder (settings/models/logs)"]
  BE --> DATA

Development (quickstart)

Prereqs:

  • Node.js
  • uv (Python package manager)
  • Python 3.12+
  • Git

Setup:

pnpm setup:dev

Run:

pnpm dev

Debug:

pnpm dev:debug

dev:debug starts Electron with inspector enabled and starts the Python backend with debugpy.

Typecheck:

pnpm typecheck

Backend tests:

pnpm backend:test

Building installers: - See INSTALLER.md

Telemetry

LTX Desktop collects minimal, anonymous usage analytics (app version, platform, and a random installation ID) to help prioritize development. No personal information or generated content is collected. Analytics is enabled by default and can be disabled in Settings > General > Anonymous Analytics. See TELEMETRY.md for details.

Docs

Contributing

See CONTRIBUTING.md.

License

Apache-2.0 — see LICENSE.txt.

Third-party notices (including model licenses/terms): NOTICES.md.

Model weights are downloaded separately and may be governed by additional licenses/terms.

Extension points exported contracts — how you extend this code

PythonSetupProgress (Interface)
(no doc)
electron/python-setup.ts
AppState (Interface)
(no doc)
electron/app-state.ts
BackendHealthStatus (Interface)
(no doc)
electron/python-backend.ts
ExportSubtitle (Interface)
(no doc)
electron/export/video-filter.ts
Window (Interface)
(no doc)
frontend/vite-env.d.ts
EffectParamDef (Interface)
(no doc)
frontend/types/project.ts
PythonSetupProps (Interface)
(no doc)
frontend/components/PythonSetup.tsx
ParsedMediaRef (Interface)
(no doc)
frontend/lib/timeline-import.ts

Core symbols most depended-on inside this repo

k
called by 178
frontend/lib/keyboard-shortcuts.ts
get
called by 142
backend/tests/fakes/services.py
post
called by 124
backend/tests/fakes/services.py
useEditorStore
called by 112
frontend/views/editor/editor-store.tsx
json
called by 76
backend/tests/fakes/services.py
updateClip
called by 53
frontend/views/editor/editor-actions.ts
updateSession
called by 49
frontend/views/editor/editor-actions.ts
set
called by 49
backend/services/services_utils.py

Shape

Function 1,109
Method 614
Class 230
Interface 185
Route 27

Languages

Python52%
TypeScript48%

Modules by API surface

frontend/views/editor/editor-actions.ts199 symbols
frontend/views/editor/editor-selectors.ts110 symbols
backend/tests/fakes/services.py100 symbols
backend/tests/test_generation.py91 symbols
backend/api_types.py54 symbols
frontend/views/editor/ProgramMonitor.tsx41 symbols
backend/tests/test_hf_auth.py33 symbols
frontend/views/editor/editor-state.ts32 symbols
backend/tests/test_settings.py31 symbols
backend/tests/test_models.py28 symbols
backend/state/app_state_types.py28 symbols
backend/services/pose_processor_pipeline/dw_pose_pipeline.py28 symbols

For agents

$ claude mcp add LTX-Desktop \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact