Use
Video
Clips with sound from LTX-2.5, from a prompt or from a picture.
Video runs on the GPU engine, so it needs a Mac, and LTX-2.5 is a large model: the download is about 52 GB.
kvad pull Lightricks/LTX-2.5
kvad videos make "a lighthouse on a cliff at dusk, waves breaking below" --out lighthouse.mp4A video takes minutes, and it is the server's job from the moment it is asked
for. make follows it and writes the file, and stopping the wait does not
stop the video.
kvad videos # ls
kvad videos show 3 # how far along it is
kvad videos watch 3 # follow it again
kvad videos get 3 --out clip.mp4
kvad videos rm 3 # delete it, stopping it if it is still being made#Length and size
kvad videos make "…" --size 768x512 --seconds 5
kvad videos make "…" --frames 121 --fps 24With no --seconds or --frames, LTX-2.5 chooses the length from the prompt.
--silent leaves the sound out.
#From a picture
kvad videos make "the boat drifts slowly to the left" --image boat.jpgThe picture becomes the first frame, scaled to cover the video's size and cut
from the middle. This needs ffmpeg on the server.
#Quality and speed
| Option | What it does |
|---|---|
| (nothing) | LTX-2.5's distilled model in two stages. The fast path. |
--steps, --guidance, --negative |
Runs the dev model with guidance instead: 30 steps at guidance 3 unless given, about four times as long. Its files come from kvad pull Lightricks/LTX-2.5 --dev. |
--pipeline dfr |
The reference's production pipeline: generated keyframes, a detailing pass and a keyframe-aware decode. Slower, and finer. |
--fps above 30 |
Runs DFR, making the clip at half or a quarter of the rate and doubling it: 48, 50, 60, 96, 100 or 120 fps. |
--epilogue |
Runs DFR at half the width and height, then details the clip at the size asked for, in tiles. For large sizes: see below. |
--decoder conv |
The convolutional decoder instead of the diffusion one: lighter, and about twice as fast to decode. |
--lora NAME[:SCALE] |
Applies a LoRA to every DiT the pipeline runs. |
DFR's detailing LoRA is gated on Hugging Face, and the first DFR video fetches it, so you need to have accepted its terms there.
#Large sizes
DFR's second stage holds the whole clip at once, which sets how large a clip
this machine can make. --epilogue gets past that: the clip is made at half
its width and height, then upsampled once more and detailed at the size asked
for, with each pass over it cut into overlapping tiles.
kvad videos make "…" --size 1536x1024 --seconds 3 --fps 48 --epilogueBoth sides must be multiples of 128, and it takes several times as long. On an M5 Pro, that clip took 18 minutes to denoise and 2 to decode, and held 27 GB at its peak.
#Against the fast pipeline
The fast pipeline makes 1536×1024 too, at 30 frames a second or fewer and with no detailing pass. Two prompts were made both ways on an M5 Pro, 3 seconds each, and the front page plays all four clips.
kvad videos make "a fox trots through fresh snow towards the camera, snow falling, photograph" --size 1536x1024 --seconds 3 --seed 3 --fps 24 --pipeline fast
kvad videos make "a fox trots through fresh snow towards the camera, snow falling, photograph" --size 1536x1024 --seconds 3 --seed 3 --fps 48 --epilogue
kvad videos make "waves break against a lighthouse on a rocky coast at dusk, spray in the wind, gulls calling, photograph" --size 1536x1024 --seconds 3 --seed 11 --fps 24 --pipeline fast
kvad videos make "waves break against a lighthouse on a rocky coast at dusk, spray in the wind, gulls calling, photograph" --size 1536x1024 --seconds 3 --seed 11 --fps 48 --epilogue| Frames | Denoise | Decode | Sharper by | |
|---|---|---|---|---|
| Fox, fast | 73 | 147 s | 39 s | |
| Fox, with the epilogue | 145 | 1058 s | 104 s | 5 to 29% |
| Lighthouse, fast | 73 | 144 s | 38 s | |
| Lighthouse, with the epilogue | 145 | 935 s | 100 s | 15 to 37% |
"Sharper" is the spread of a Laplacian over three frames of each clip. So the epilogue buys detail and twice the frames for six to seven times the denoising. It does not buy a better picture every time: the fast pipeline's fox is the likelier animal, and of the lighthouses neither is the worse.
A seed draws a different scene in each pipeline, so this compares what each makes of a prompt, and not one scene made twice. It is two prompts on one machine, judged from frames.
It is for sizes DFR cannot make without it. At 768×512 the clip is worse than plain DFR's, because its first stage is then only 192×128.
#Compression
Kvad writes an MP4 itself that compresses nothing, about 14 MB a second at
768×512. With ffmpeg available the server compresses each video once it is
made, to H.264 and AAC, at about a thirtieth of the size.
[videos]
ffmpeg = "auto" # or "off", or a pathauto looks on PATH and then in /opt/homebrew/bin, /usr/local/bin and
/usr/bin, because a background service's PATH has only the system
directories.
#From the API
POST /v1/videos is OpenAI's video endpoint: a job that answers at once and
is watched until it is done.
curl http://127.0.0.1:5823/v1/videos \
-H 'content-type: application/json' \
-d '{"model": "Lightricks/LTX-2.5", "prompt": "waves breaking below a lighthouse", "size": "768x512", "seconds": 5}'
curl http://127.0.0.1:5823/v1/videos/3 # status and progress
curl http://127.0.0.1:5823/v1/videos/3/content -o clip.mp4