RESEARCH PROJECTINTERACTIVE VIDEO GENERATION

Make bidirectional models interactive using

Speculative Sampling

TL;DR

We propose Speculative Sampling for serving autoregressive video generation. It preserves the strong modeling capability of large bidirectional attention windows while retaining the low-latency interaction of small bidirectional attention windows.

We therefore argue that bidirectional attention window size is no longer a necessary constraint for low-latency interactive video generation, but simply a decision variable for jointly optimizing visual quality and per-chunk sampling time.

Our method makes bidirectional MiniMax H3 interactive without Self-Forcing-style autoregressive post-training. While the model jointly samples five seconds of video at a time, the resulting system achieves approximately 1.4 seconds of end-to-end response latency—from a new user input to the first displayed video frame that responds to it.

DEMONSTRATIONS / BIDIRECTIONAL MODEL

Speculative Sampling is training-free and has the potential to be incorporated into any interactive video generation system!

0. Introduction

When we talk about interactive video generation, we care not only about whether users can freely control the subjects and environments in a video through their instructions, but also—and more importantly—about how quickly those instructions take effect. More specifically, we define end-to-end Time To First Frame (TTFF) as the time between a user issuing a new instruction and seeing the corresponding response on screen. We want TTFF to be as small as possible, as this is the foundation of a good user experience.

Therefore, even when generation is faster than playback, this only ensures that the video stream continues without interruption. There may still be a long way to go in optimizing TTFF.

In practice, interactive video generation approaches in the community are gradually converging on a combination of causal and bidirectional attention: preserving bidirectional modeling within each chunk while allowing causal attention across chunks. Interestingly, different approaches have independently adopted a similar design choice: they use bidirectional chunks that are as small as possible, yet stop short of using the smallest possible chunk size.

1. Why small chunks?

Why pursue the smallest possible bidirectional chunks? Consider a simple interactive video generation system. The generator delivers video in chunks, either periodically or non-periodically. Each chunk contains T seconds of video. Assume that generation is always faster than playback and meets every delivery deadline. In this stable system, the player receives a new chunk at regular intervals of T. Let K denote the number of temporal latents in a chunk and δ the video duration represented by each latent:

T = Kδ.

Interactive control signals V keep arriving, and we assume that their arrival times are uniformly distributed within a period T. A control signal first waits for R seconds; the generator then takes C to generate a video chunk; after a further wait Q, the player starts playing the chunk at the boundary of the next playback period.

L = R + C + Q.
R is the wait before generation starts; C is the generation critical path to the first deliverable output group; Q is the remaining wait until that group is displayed.

We encounter a frustrating fact: no matter how we shift the start of generation or choose the scheduling strategy, the expected total waiting time R + Q has a lower bound of half the chunk duration T:

E[R + Q] ≥ T / 2.

This means that even if sampling were instantaneous and network delay negligible, TTFF could still be very large, depending on the chunk period.

The chunk period depends on both the number of frames in each bidirectional chunk and the system’s nominal frame rate. This corresponds to two routes for reducing TTFF: reducing the number of frames per chunk (chunk size), or increasing the temporal frame rate used for DiT sampling (sample_fps). The latter is disruptive to existing video data assets and is not common practice. This leaves reducing chunk size—the preference for small bidirectional chunks discussed above.

2. Why not the smallest?

But why stop short of using the smallest possible bidirectional chunk size? To investigate, we conduct a controlled ablation: for different chunk sizes, we run the full streaming post-training and evaluation pipeline starting from teacher forcing. See Section 4.2 of the paper for details.

CHUNK-SIZE VIDEO COMPARISON / 480P

1-step comparison · same prompt, four chunk sizes

View full prompt

Across a snowfield under pink dawn, a skier in a crimson down jacket, fur-lined hood, and mirrored goggles dominates the frame in HDR 4K with sparkling ice detail. First, she plants her poles and adjusts the strap of a small camera on her chest, breath puffing in the cold. Then she pushes off, carves a wide S-curve through powder, and throws a spray of snow toward the lens as the camera follows low and fast, mountains glowing and the sky vast and stunning.

chunk 1 · frame-wise

832×480 · 16 fps · 5.06 s

Open video
0.00 s

Choose a sample and play all four chunk sizes together.

We observe that as chunk size increases from its minimum of one latent, video quality first rises sharply, then quickly begins to plateau, while still improving as the bidirectional modeling chunk grows. This also explains why the more balanced choice of chunk size 3 has become a mainstream setting in the community.

CHUNK-SIZE ANALYSIS / WAN1.3B
Left: Wan four-step VBench total across K=1,3,7,21 at 480p and 720p. Right: 480p H200 single-forward latency for USP1, USP2, USP4 and USP8. Larger chunks benefit from suitable parallelism.
Wan1.3B quality and H200 single-forward latency across chunk sizes.

Another interesting observation is that increasing chunk size does not significantly increase the time needed to denoise a video chunk. For example, with Wan1.3B using Ulysses SP on a single H200 node, increasing chunk size from 1 to 7 raises the time only from 77.5 ms to 78.6 ms. Taking this further, with LTX-2.3 under the same setup, increasing chunk size from 1 to 45 (about 15 seconds) raises the time only from 274 ms to 507 ms. This suggests that, at the token lengths used in streaming sampling, the compute kernels are far from fully utilized.

LTX-2.3 H200 single-forward latency (ms), 832 × 448.
KUSP1USP2USP4USP8
1274.0440.5479.6526.1
3255.6423.5457.0511.2
9426.7417.8456.6502.0
15660.3420.4461.0509.4
452016.21158.4634.0507.9

3. Speculative sampling

These two observations motivate three questions. For a frame-wise model with chunk size 1, we ask:

  1. Could we append additional noise latents as padding after the current video chunk at each sampling call, obtaining a larger bidirectional modeling window and improving its modeling capability?
  2. What padding window length hits the sweet spot between modeling difficulty and sampling time?
  3. Do we really have to discard the predictions from these padding latents afterward?

Our answer is Speculative Sampling: it jointly generates a large chunk under the current condition, assuming it will remain unchanged, and commits the predictions incrementally. Cached predictions are reused while the condition holds; otherwise, the replaceable suffix is discarded and regenerated.

Four strategies: frame-wise generation, chunk-wise generation, frame-wise generation with padding latents, and Speculative Sampling. Padding latents expand the bidirectional modeling window. Instead of discarding their predictions, Speculative Sampling caches them for reuse while the condition remains unchanged and replaces the uncommitted predictions when it changes.

Our method preserves the bidirectional modeling window of large chunks while supporting the fine-grained interaction of small chunks.

4. Managing a revocable future

To manage prediction reuse, replacement, and refill, we develop a minimal implementation of Speculative Sampling that can be described by a two-state machine.

In the Consume state, the system reuses predictions from the cache and commits them gradually. In the Produce state, the model runs a generation job either to refill the cache or to replace an uncommitted suffix.

When a new condition arrives, playback continues from the committed prefix. The controller keeps the part that can no longer be changed and regenerates the remaining future from the earliest feasible point. If the condition does not change, it simply refills the cache before the available predictions run out.

Camera pans left → right, K = 4, q = 1. Follow the state above and the output below: reuse, replace a feasible suffix, then refill. Playback continues in both states. Illustrative case; timing is schematic.

Our method predicts ahead using the latest observed condition, assuming that it will remain unchanged. If the condition stays the same, the cached predictions are reused—a cache hit. If the condition changes, the affected predictions become a cache miss and must be generated again, introducing some redundant computation.

Our TTFF analysis shows that Speculative Sampling removes the T/2 expected waiting-time lower bound, replacing it with terms tied to computation. This shifts TTFF optimization from reducing chunk duration to accelerating per-chunk sampling. See the paper for the full analysis.

5. Rethinking chunk size

Speculative Sampling opens another path to interactive video generation: retain the modeling power of large bidirectional models and focus on making sampling faster. Our H3 demonstration shows that a model generating five seconds of video at a time can support low-latency interaction without Self-Forcing-style post-training. We hope this encourages the community to rethink the role of chunk size and the need for complex streaming post-training across different scenarios.

This is an early preview. We are training a new bidirectional H3 model with a longer context window and faster responses to new prompts. Stay tuned!