What landed on October 21
FastH3 Omni was shown on October 20: it takes text, images, video and voice, and returns a finished clip with synchronised sound. On eight GB200s, a five-second 768p clip from one photo took 5.7 seconds.
On October 21 the Hao AI Lab team at UC San Diego published a breakdown of the local run: identical prompts, references and seeds, executed on one and two DGX Sparks, an RTX 5090, an RTX 3090 and an Apple M5 Max with 64 GB. The same day, a commit in the FastVideo repository added Apple Silicon support through MLX, timestamped 19:01 UTC.
Why it matters: until now these models lived in the cloud, and running one locally meant trading away quality or clip length. The new numbers show that trade has moved to time and memory.
Numbers that convert into money
Everything below refers to a five-second clip, 124 frames, 24 frames per second, stereo, 832 by 480, with one photo as a reference.
On a single DGX Spark that request takes 192 seconds, on two Sparks 130 seconds. At 768p the same requests stretch to 361 and 218 seconds. One RTX 5090 finishes in 62 seconds. An RTX 3090 needs almost 17 minutes, and that excludes loading the model, which adds about seven minutes. An Apple M5 Max reports 19.5 minutes on a single run.
Three photos change the picture: 640 seconds on one Spark, 390 seconds on two. Requests with three photos, and the long-clip request, do not fit the memory profile of a 24 or 32 GB card, while the M5 Max handles them in 44 to 59 minutes.

References cost more than they look
The authors explain the gap in tokens. A five-second 480p clip is about 14,400 video tokens. Every reference photo is read on the 2048-pixel canvas the model was trained on, which adds about 7,100 VAE tokens and another 7,100 vision tokens to the prompt. One photo doubles the sequence to about 29,000 tokens, and three photos take it to nearly 60,000.
That is why a request with a photo runs 3.3 to 4.4 times longer than a text-only request on the same machine. On two Sparks, a text clip takes 33.6 seconds, while the same request with one photo takes 130. On the 5090 it is 14 seconds against 62.
Why it matters: advertising work almost always carries a reference, a product photo or a face. That reference, more than generation itself, sets the price of a take.
One flag cuts the estimate by four
FastH3 Omni has an option called --reference-max-pixels match. It shrinks each reference to the size of the clip itself, and on the M5 Max a one-photo request falls from 19.5 minutes to 4.7 minutes, a factor of 4.2.
The flag is off by default, and honestly so: it departs from the training canvas and changes framing and action. The authors say reference detail suffers. For draft iterations that is a fair trade, for a final frame probably not.
Why it matters: local video generation hinges on a setting that is easy to miss. Budget with the default and the estimate comes out several times higher than reality.

How a 35-billion model fits in desktop memory
FastH3 Omni pairs a transformer of roughly 35 billion parameters with a Qwen3-VL text encoder of about 32 billion, well over 100 GB in BF16. Each machine accommodates them differently.
On a DGX Spark everything stays resident in 128 GB of unified memory with no offloading between stages. The transformer, encoder and decoder stay in NVFP4, attention is sparse over 128-token tiles, and the text, reference and audio rows run densely at 8 bits.
The RTX 5090 uses a different trick: a precomputed table of 155 MB replaces 26 GB of timestep-projection weights, shrinking the transformer from 44.5 GB to 18.5 GB. The text encoder loads only while the prompt is encoded. An RTX 3090 has no FP4 or FP8 hardware, so it runs FP8 weights with BF16 maths and streams the transformer a few blocks at a time.
Apple Silicon: INT6, Metal and 27 to 31 GB
On a Mac the model runs through MLX. The transformer is quantised to INT6 and occupies 17 GB, timestep projections are precomputed, and no FP4 weights are needed. References are read by a LightVAE Lite encoder of 406 MB, frames are written by the same NVFP4 decoders used on Blackwell, and sparse attention over 128-token tiles is implemented as a separate Metal kernel.
Peak memory on the M5 Max stays between 27 and 31 GB across all five workloads. A laptop with 36 GB or more can technically run this, though the lifetime of one clip is measured in tens of minutes.
What this changes for a client
First, estimates no longer have to start from cloud pricing. AI video production can be costed in machine time, with no service credits involved, and that changes the economics of repeated takes.
Second, a reference is no longer a free add-on to a prompt. If a project covers five products, each photo adds 7,100 tokens and roughly doubles the time. For a batch of similar clips it pays to lock the framing once and keep the settings, then to run the full canvas every time.
Third, an AI YouTube channel on local hardware becomes realistic, with a caveat. Five seconds is not an episode, and stitching a dozen clips on a 3090 takes hours. For now, handcrafted videos with actors and editing sit outside this pipeline, though a guide to AI video models gets easier to write when ten models can be tested on one machine.




