What if we stopped judging every block?
A video can go wrong without any single block looking obviously wrong.
This is a peculiar challenge in autoregressive video generation. Each new block builds on the ones before it, so small errors in appearance or motion can accumulate over time. A smaller model can generate these blocks quickly, but the longer it runs on its own, the further the video can drift. Periodically bringing in a larger model helps, but deciding when to do so is less straightforward.
The intuitive solution is to inspect each drafted block and invoke the larger model whenever a perceptual score falls below some threshold. This is the idea behind online routing. It sounds reasonable: spend the expensive compute only where it is needed.
But our experiments revealed something surprising. On Krea Realtime, online routing accounted for 37% of total generation time in one measured configuration. Yet across matched acceptance rates, its decisions offered no statistically significant quality improvement over random acceptance. Worse, the router sometimes allowed more than twenty consecutive blocks to be generated without a target intervention, leaving small errors to accumulate across the video.
This suggested a different way to think about the problem. Perhaps the important question isn't which individual blocks need the large model, but how long the smaller model should be allowed to run without it.
That is the idea behind SpecAR: treat target-model placement as a scheduling problem rather than a sequence of runtime decisions.
01 / Watch
Watch SpecAR finish first
Both clips start from the same prompt and opening frame. The race uses each method’s measured mean generation time, so SpecAR finishes while the target keeps generating. Select another scene and it plays automatically; switch to “Same frame” to compare the two outputs at matching video times.
B200 mean latency: SpecAR 18.5 s; target-only 51.8 s. Timing animation at 1× wall-clock speed.
Race starts as you scroll here.
02 / Mechanism
Where should the target blocks go?
Suppose we are generating a video of 36 blocks, but can afford to run the large model only seven times. Where should we spend those seven invocations?
We could concentrate them at the beginning, scatter them randomly, or decide as we go using a perceptual router. But these choices can leave long stretches where the smaller model generates without any intervention. And because each block becomes part of the context for the next, errors made early in such a stretch can propagate through everything that follows.
SpecAR takes a different approach: spread the target blocks as evenly as possible.
For 36 blocks and seven target invocations, this guarantees that the drafter never generates more than five consecutive blocks on its own. No other placement with the same budget can guarantee a shorter maximum run. The schedule is determined before generation begins, requires no training, and adds no per-block scoring overhead.
This is a guarantee about how often the target intervenes, not a guarantee of video quality. Whether such a simple schedule can actually outperform an adaptive router is an empirical question.
Try moving the target blocks below. Cluster them, scatter them, and see how the longest uninterrupted draft run changes.
You matched the minimum.
Given a rollout of H blocks and a target budget k, SpecAR places target blocks at approximately equal intervals, including block 0. Exactly one model generates each block; its output is committed to a shared context for all later blocks. The worst draft run is at most ⌈H/k⌉ − 1 blocks, which is the theoretical minimum.
See the decoding diagram from the paper
03 / Results
Can a fixed schedule outperform an adaptive router?
Even spacing gives us a useful guarantee: the drafter can never run for too long without the target intervening. But minimizing uninterrupted draft runs does not necessarily produce better video. An adaptive router has access to information that a fixed schedule ignores. In principle, that should give it an advantage.
So we compared SpecAR against SDVG, which uses perceptual scores to decide when to invoke the target model.
The results were surprising. Across all three evaluated target budgets, SpecAR was both faster and better on the measured quality metrics. On a single H100, it ran 1.63–1.73× faster than SDVG on Krea Realtime 14B, and 1.10–1.84× faster on Helios 14B, while achieving higher VisionReward and VBench Quality-6 scores at every evaluated operating point.
For example, with seven target blocks on Krea Realtime, SpecAR finished in 42.9 seconds, compared with 70.3 seconds for SDVG. Its VisionReward score was also higher: 0.0972 versus 0.0886.
The router had more information and made more decisions. Neither translated into an advantage in these experiments.
32.8 s versus 87.6 s target-only and 56.8 s SDVG. Quality-6: 77.25 for SpecAR, 76.95 for SDVG, and 78.06 for target-only.
From Hopper to Blackwell
A useful acceleration should survive beyond a single hardware configuration. We evaluated SpecAR on two generations of NVIDIA GPUs: Hopper (H100) and Blackwell (B200), using Krea Realtime 14B.
On a single H100, SpecAR reduces generation time from 87.6 to 32.8 seconds, a 2.67× speedup over target-only inference. On a single B200, generation takes just 18.5 seconds instead of 51.8, achieving 2.81× acceleration. The gains persist across all three evaluated target budgets, with speedups exceeding 2× on both architectures.
The Blackwell results also cross an important threshold. At 23.1 generated FPS, SpecAR exceeds the video's 16 FPS playback rate. Even when allocating more blocks to the target model, throughput remains between 18.0 and 19.7 FPS. In all three configurations, the model produces frames faster than they are played.
Read H100 and B200 latency, FPS and speedup
| Method | Latency | FPS | Speedup |
|---|---|---|---|
| Target-only | 87.6 s | 4.9 | 1.00× |
| SpecAR, k = 2 | 32.8 s | 13.0 | 2.67× |
| SpecAR, k = 5 | 39.0 s | 10.9 | 2.25× |
| SpecAR, k = 7 | 42.9 s | 9.9 | 2.04× |
| Method | Latency | FPS | Speedup |
|---|---|---|---|
| Target-only | 51.8 s | 8.2 | 1.00× |
| SpecAR, k = 2 | 18.5 s | 23.1 | 2.81× |
| SpecAR, k = 5 | 21.6 s | 19.7 | 2.40× |
| SpecAR, k = 7 | 23.7 s | 18.0 | 2.19× |
Read the full benchmark tables
| Latency | Speedup | VisionReward | Quality-6 | |
|---|---|---|---|---|
| Target-only | 87.6 s | 1.00× | 0.0914 | 78.06 |
| k = 2 | ||||
| SDVG | 56.8 s | 1.54× | 0.0855 | 76.95 |
| SpecAR | 32.8 s | 2.67× | 0.0876 | 77.25 |
| k = 5 | ||||
| SDVG | 63.5 s | 1.38× | 0.0872 | 77.01 |
| SpecAR | 39.0 s | 2.25× | 0.0943 | 77.32 |
| k = 7 | ||||
| SDVG | 70.3 s | 1.25× | 0.0886 | 76.91 |
| SpecAR | 42.9 s | 2.04× | 0.0972 | 77.85 |
| Latency | Speedup | VisionReward | Quality-6 | |
|---|---|---|---|---|
| Target-only | 2911.5 s | 1.00× | 0.1487 | 78.98 |
| k = 2 | ||||
| SDVG | 507.3 s | 5.74× | 0.1112 | 75.89 |
| SpecAR | 276.2 s | 10.54× | 0.1223 | 77.05 |
| k = 5 | ||||
| SDVG | 665.4 s | 4.38× | 0.1156 | 75.88 |
| SpecAR | 509.6 s | 5.71× | 0.1270 | 77.17 |
| k = 7 | ||||
| SDVG | 735.8 s | 3.96× | 0.1199 | 75.69 |
| SpecAR | 666.5 s | 4.37× | 0.1375 | 77.73 |
Quality-6 is VBench's Quality Score restricted to six dimensions. Mean latency and VisionReward are taken from the paper.
04 / Quick start
Run SpecAR yourself
The code behind these results is publicly available. We've released SpecAR with support for Krea Realtime 14B and Helios 14B, allowing you to generate videos, adjust the target-block budget, and explore the speed–quality tradeoff on a single supported GPU.
You can run SpecAR directly from the command line or use the ComfyUI integration for a visual workflow. Both expose the same central idea: control how often the target model runs, without relying on an online router.
The released code and public weights run on one NVIDIA Hopper GPU (H100 80GB or H200 141GB) with Python 3.11. Choose a way to run it below. FlashAttention 3 is fetched prebuilt on first use.
Install
git clone https://github.com/statite-ai/SpecAR && cd SpecAR python3.11 -m venv .venv-krea && source .venv-krea/bin/activate pip install ".[krea]" specar download --backbone krea
Generate
specar generate --backbone krea \
--prompt "A papercraft coral reef full of colorful fish" \
--k 2 --out reef.mp4About 50 GB download. A 26.6 s video (426 frames) generates in under a minute on an H100, after about 3 minutes of model loading.
Install
git clone https://github.com/statite-ai/SpecAR && cd SpecAR python3.11 -m venv .venv-helios && source .venv-helios/bin/activate pip install ".[helios]" specar download --backbone helios
Generate
specar generate --backbone helios \
--prompt "A papercraft coral reef full of colorful fish" \
--k 2 --out reef.mp4About 150 GB download for the two models on disk; about 66 GB of GPU memory while generating. A 74 s video (1,185 frames at 16 fps) generates in under 5 minutes on an H100 at --k 2, after about 1 minute of model loading.
Install
git clone https://github.com/comfyanonymous/ComfyUI && cd ComfyUI python3.11 -m venv .venv-krea && source .venv-krea/bin/activate pip install -r requirements.txt "specar[krea] @ git+https://github.com/statite-ai/SpecAR" git clone https://github.com/statite-ai/ComfyUI-SpecAR custom_nodes/ComfyUI-SpecAR specar download --backbone krea --weights models/specar/krea python main.py
Generate
Open http://127.0.0.1:8188, go to Templates → ComfyUI-SpecAR → SpecAR, type a prompt and click Run. If ComfyUI runs on a remote GPU machine, first run this on your own computer:
ssh -L 8188:127.0.0.1:8188 user@your-gpu-machine

Runs on Krea Realtime 14B and needs about 45 GB of GPU memory. About 50 GB download. The first run loads the models in about 3 minutes; a 26.6 s video then takes about a minute on an H100, including saving the mp4.
--k is the number of target blocks: 2 is the fastest setting in the paper, 7 the default. Set the length with --seconds or try a curated prompt with --example cat; all options are in the README.
References
- Hassan, H. (2026). SpecAR: Distributed Target Blocks for Fast Autoregressive Video Generation. Preprint. H100 benchmarks and routing ablations.
- Hu, Y., & Zhang, J. (2026). Speculative Decoding for Autoregressive Video Generation. arXiv:2604.17397. SDVG baseline.
- Millon, E., & Krea AI. (2025). Krea Realtime 14B: Real-Time, Long-Form AI Video Generation. Model description.
- Yuan, S., et al. (2026). Helios: Real Real-Time Long Video Generation Model. arXiv:2603.04379.
- Huang, X., et al. (2025). Self Forcing: Bridging the Train-Test Gap in Autoregressive Video Diffusion. arXiv:2506.08009. Krea drafter.
- Huang, Z., et al. (2024). VBench: Comprehensive Benchmark Suite for Video Generative Models. CVPR 2024.
- Xu, J., et al. (2026). VisionReward: Fine-Grained Multi-Dimensional Human Preference Learning for Image and Video Generation. AAAI 2026.
B200 measurements on this page average four Krea prompts and are separate from the preprint.
Cite this work
@misc{hassan2026specar,
title = {SpecAR: Distributed Target Blocks for Fast Autoregressive Video Generation},
author = {Hassan, Hudeifa},
year = {2026},
note = {Preprint},
url = {https://statite.ai/specar}
}