Instructions to use dragonlimited/LTX2-marimo with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use dragonlimited/LTX2-marimo with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("dragonlimited/LTX2-marimo", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
LTX2-marimo
The LTX-2 weights that the diffusers pipeline actually loads β plus a marimo notebook that
runs them end to end: picture and synchronised audio in a single pass, muxed into one .mp4.
This repository exists to solve two practical annoyances:
Lightricks/LTX-2is a 314 GB repository, but the pipeline loads only 92 GB of it. Working out which 92 GB is a small research project: two different shard-naming conventions, a duplicate shard set that the loader never opens, and a config file that decides it all. That work is done here β see Why the subset is 92 GB below.- On an ephemeral GPU box the weights do not survive a restart. On molab the working directory is rebuilt when a session restarts, so a 92 GB download is repeated. This repository is a one-command restore.
Nothing here is modified. Every file is byte-identical to the file of the same path in Lightricks/LTX-2.
What is in the repository
| path | files | size |
|---|---|---|
text_encoder/ |
15 | 48.75 GB |
transformer/ |
10 | 37.76 GB |
connectors/ |
2 | 2.86 GB |
vae/ |
2 | 2.44 GB |
vocoder/ |
2 | 0.11 GB |
audio_vae/ |
2 | 0.11 GB |
tokenizer/ |
8 | 0.04 GB |
scheduler/, latent_upsampler/, model_index.json |
3 | β |
| total | 44 | 92.07 GB |
Alongside the weights:
| file | what it is |
|---|---|
notebook.py |
the marimo notebook: compute check β fetch β load β prompt β generate β renders |
fetch_weights.py |
standalone fetcher for this same subset, straight from Lightricks/LTX-2. No token needed |
LICENSE-2 |
the LTX-2 Community License Agreement, in full |
Quick start
1. Get the weights
from huggingface_hub import snapshot_download
snapshot_download(
"dragonlimited/LTX2-marimo",
local_dir="models/LTX-2",
ignore_patterns=["*.md", "*.py"], # keeps the card and scripts out of the model directory
)
That leaves model_index.json and the component directories in models/LTX-2, which is exactly where the notebook
loads from. Or fetch the identical subset from the original repository:
python fetch_weights.py # into models/LTX-2
Both are safe to re-run: every file is size-checked, so only what is missing is fetched.
2. Run it
Open notebook.py in marimo β or on molab with a GPU attached β and run it. No
Hugging Face token is required anywhere: Lightricks/LTX-2 is not a gated repository, so the weights download
anonymously.
Requirements
- A CUDA GPU. Developed on an NVIDIA RTX PRO 6000 (96 GB). The weights are 92 GB, which does not leave room for activations, so the notebook CPU-offloads them.
- ~100 GB of host RAM for that offload, and ~150 GB of disk for the weights.
- Python 3.13 with
diffusers0.41,transformers,av,torch.
The notebook, step by step
| step | |
|---|---|
| 0 | compute check β GPU, RAM, disk |
| 1 | the model β open weights, no credentials; choose where they land |
| 2 | selective download of the 92 GB, resumable and size-checked |
| 3 | load onto the GPU, CPU-offloaded when the weights will not sit resident |
| 4 | prompt and settings β duration, frame size, frame rate, denoising steps, guidance, negative prompt |
| 5 | optional assets β a still to open or close the shot, or a clip to condition the opening |
| 6 | generate β the render appears with its soundtrack already muxed in |
| 7 | renders β every take kept in outputs/, each with its own download button |
A short example prompt, written the way the model likes it (camera β subject β action β light β sound):
Wide shot at dawn: a lighthouse keeper climbs the spiral stairs, the beam swinging past the window, waves breaking below. She pauses, looks into the lens and says: "the boat comes in an hour."
What it does well, and what it does not
Good: short, atmospheric shots with genuinely well-matched sound β room tone, foley, ambience, a line of dialogue. Old-money interiors, landscapes, architecture, slow camera moves.
Honest limits:
- Frame size up to 1024 x 576. This checkpoint is not trained for 1080p, and pushing past it buys artifacts rather than detail.
- Duration: 5β30 seconds per shot is the real range. Past ~30 s the picture drifts and memory use runs away. A 30-second take at 768 x 512 has both succeeded and run out of memory on a 96 GB card. For a longer film, render 10-second shots and join them.
- Voice: the native audio is ambience and short dialogue. It will not pronounce a proper noun reliably β for a narration, synthesise it separately and mux it in.
- Text: diffusion models do not render lettering. No logos, captions or on-screen names.
- Hands and fine detail are the usual weak spots; frame shots to avoid close-ups of hands.
Why the subset is 92 GB
model_index.json names the components the pipeline loads, and each component's own index file names the shards it
reads. Two traps:
- A component's library decides its file naming.
text_encoderis declared as atransformerscomponent and loadsmodel.safetensors; the diffusers components loaddiffusion_pytorch_model.safetensors. Both naming conventions are present for the text encoder, as complete duplicate shard sets β picking the wrong one downloads ~49 GB the loader never opens while the shards it needs stay missing, and loading then fails withFileNotFoundError. - The repository carries unused variants: a second full transformer, alternate shardings, a distilled LoRA β about 222 GB beyond what the pipeline reads.
fetch_weights.py implements exactly this, and is the reason the notebook's download works at all.
Provenance and licence
The weights in this repository are an unmodified subset of
Lightricks/LTX-2, copied with their original paths. They remain governed
by the LTX-2 Community License Agreement β included in full as LICENSE-2, together with the
use-based restrictions in paragraph 4 and Attachment A. In particular:
- redistribution and third-party remote hosting are permitted only where recipients receive that Agreement in full;
this card and
LICENSE-2are that notice, and the restrictions in paragraph 4 and Attachment A apply in their entirety to anyone who uses these files; - entities with annual revenues of at least $10,000,000 require a paid commercial licence from Lightricks;
- no rights are granted to the LTX-2 name or to Lightricks' trademarks. Copyright, patent, trademark and attribution notices are retained as they appear in the original files.
notebook.py and fetch_weights.py are provided as-is for use with these weights.
- Downloads last month
- -
Model tree for dragonlimited/LTX2-marimo
Base model
Lightricks/LTX-2