llmman run now draws, films and records

A diffusion model is a model like any other: llmman run ltx-2.3 turns a prompt into a picture, an mp4 with a soundtrack, or a wav, on whatever GPU you have.

llmman run has always taken a model name and a prompt and given back text. As of #437 the same command, pointed at a diffusion model, gives back a picture, a video with sound, or just the sound.

An image

llmman run ltx-2.3 "A manatee in a sunlit lagoon"
Image saved to: a-manatee-in-a-sunlit-lagoon-20260907-221141.png
A manatee in a sunlit lagoon, generated by LTX-2.3

768×512, eight denoising steps. Where the terminal can show pictures (iTerm2, WezTerm, kitty, Ghostty) it appears inline; either way it is saved next to your shell.

Eight seconds of audio

llmman run ltx-2.3 --audio --seconds 8 "A manatee surfaces and snorts, gulls cry, waves lap the shore"
Audio saved to: a-manatee-surfaces-and-snorts-gulls-cry-waves-lap--20260907-220800.wav

48 kHz stereo. LTX-2.3 generates audio jointly with video, so --audio renders a small clip behind the scenes and keeps only the soundtrack.

Eight seconds of video

llmman run ltx-2.3 --video --seconds 8 "A manatee surfaces in a sunny lagoon, gulls cry overhead"
Video saved to: a-manatee-surfaces-in-a-sunny-lagoon-gulls-cry-ove-20260907-221521.mp4

768×512 at 24 fps, H.264 with an AAC track generated at the same time as the frames.

What happened underneath

The first run pulled ltx-2.3 from Docker Hub: the distilled Q4_K_M transformer (13 GB), its video and audio VAEs, the text projection, and the Gemma 3 12B text encoder the model was trained with (7 GB). Each file is a layer in one OCI artifact, annotated with its role.

llmman serve then started a backend for it, the LTX-2 pipeline (text-encoder hidden states, connectors, the audio-video transformer, both VAEs, the vocoder, the prompt enhancer) is written in Rust on top of ggml graphs, and it dlopens libggml and libllama.

The daemon exposes it as /v1/images/generations, /v1/videos and /v1/audio/speech, so anything that speaks the OpenAI image API can use it, not only llmman run.

Memory

The weights come to about 24 GB. Peak use depends on what you ask for; measured on a DGX Spark (unified memory, text encoder on the GPU):

peak
image, 768×51229 GB
audio, 8 s40 GB
video, 8 s at 768×512 with audio55 GB

So a 32 GB GPU or unified-memory machine is the practical minimum for images, and long high-resolution video wants 64 GB.

Speed

On the same machine: the image took under 30 s from a cold start, of which 17 s was loading 24 GB of weights and 5 s the prompt enhancer; the eight denoising steps were 0.6 s each. Eight seconds of audio took 45 s. The eight-second 768×512 video took four minutes: 24 s per step over 9,216 latent tokens, then 21 s to decode 185 frames. A second prompt skips the load.

The full flag list is in the README. Questions are welcome at github.com/llmmanorg/llmman.