Runway Characters: real-time video on four H100s

On November 5 Runway Research published a breakdown of the serving stack behind Characters, alongside arXiv 2611.05642. The short version: a live session moved from eight H100s to four. Here are the numbers that bought the saving and my read on who should care.

A portrait frame linked to one highlighted GPU out of four, showing an avatar session running on a single card
01

What Runway Characters does with a single photo

Characters turns one photo into a live character you can talk to. Behind it sits an autoregressive video model of roughly 57B parameters, a video DiT by architecture. It builds each chunk through four denoising passes and delivers 704×1088 at 24 fps.

The rhythm is arithmetic. Four frames every 166.7 ms. That obligation holds for every single step, and an average over a minute will not satisfy it. One session, one user: batch size one. That is the turn in the whole post.

02

Why batch size one breaks the usual GPU maths

Regular inference lives by the rule of filling a batch and spreading the cost across everyone in it. Fifty requests at once are cheaper than fifty one at a time, and most cost models are built on that.

A conversational avatar cannot work that way. The research post says it plainly: one session occupies 2.24 PFLOP/s of useful work, and a second user cannot ride along in the same tick. Everybody pays for their own GPU. A real-time video model counts hardware per person, and the old batch arithmetic has nothing to say here.

Step budget diagram: a long diffusion block overruns the frame window while two shorter blocks fit inside it
03

The 166.7 ms budget versus a 240.9 ms step

Characters launched at eight H100s per session, and that was the starting point. The honest comparison is what four cards actually produce: the baseline step on four H100s took 240.9 ms, against a budget of 166.7 ms. That is more than seventy milliseconds over, and in live video it shows up as visible lag.

Production settings take it to 159.3 ms, which is 24.5 fps sustained, a 1.51× speedup. A fused kernel that pulls the all-reduce inside the FP8 matrix multiply reaches 147.4 ms, 1.63× over baseline.

04

Cache: 240 attention calls and work moved to write time

The second saving lived in how the model reads its own memory. Every chunk takes 240 attention calls, and each call reads a 5,788-slot KV cache in which only 757 tokens are new. In the original step, 29% of GPU time went to recomputing a nearly unchanged cache, while attention itself took about 6%.

That work moved to write time: a ring cache, RoPE and FP8 quantization applied once per write, and a delta rotation whenever positions reset. Cache upkeep dropped from 69.7 ms to 6.2 ms per step. Positions reset every 42 steps.

Ring-shaped attention cache: a narrow arc of new slots highlighted while the rest is pre-written
05

The decoder gets its own GPU

The third decision is about hardware. The decoder that turns latents into finished frames got a GPU of its own and runs in parallel with denoising. It costs 114 ms but fits inside the same window where diffusion is computed. On a shared B200 with a power cap, that arrangement slows diffusion by 18-26%.

06

Launch lessons: a fused kernel, an OOM and a rollback

The fused kernel shipped in August 2026 and went straight into production. After a PyTorch and NCCL upgrade it started throwing memory errors: OOM under real load. The team rolled back, found the cause and re-enabled the kernel on October 8. Over the fifteen days that followed, sessions dropping to 24 fps or below made up 0.7% of the total, against 7-23% before the fix.

07

How they measured quality

Measuring an autoregressive model in pixels is pointless: PSNR has no reference to compare against here. The baseline is different, a run against another run. Across 51 scored clips the mean lip-sync difference stayed at or under 0.03, which sits inside the model's own run-to-run variation. Four ten-minute sessions produced the same order of magnitude.

Latency came from live conversations. The median from the end of a user's sentence to the avatar's response was 2.13 s. Inside that turn the voice agent takes 1.42 s, the video pipeline 0.49 s, and delivery about 190 ms.

08

Blackwell: three B200s against four H100s

Numbers for newer hardware exist too. Three B200s deliver about 154.3 ms. Eight H100s compute diffusion in 118.2 ms but bottleneck on the decoder, landing at 128.7 ms, or 31 fps. The compute headroom is real, it just goes to the decoder and the small steps around it.

09

A talking avatar from one photo: what it does to a budget

My read is short, and it is about the second half of the post. There is no pricing in the research write-up, it is an engineering report about serving, and I am not going to hang a number on Characters that Runway never published.

Look at what did change: a live session is now counted in four GPUs instead of eight. For a studio pricing a live avatar, that is a direct cut to the denominator. It matters more to teams designing conversational products and estimating GPU cost per hour, and it barely matters to anyone rendering 15-second ad clips offline. There you pay per second of render. Sustained pace is a separate line item.

Yesterday's roundup on Kling 4.0 Flash, Gemini Omni and Muse added a third story about real time, and the difference finally reads clearly: one is serving at batch one, one is clip length, one is a conversational toy.

For day-to-day production the reference point stays the same. Conversational spots and scenes with a talking person we build on a pipeline with a human owning the frame, handcrafted AI videos from $190, where everything except the GPU hour is predictable. Batches of vertical scenes where AI video runs at volume live on a different calculation, up to $2.40 per 1000 views. When the job is literally a conversation with a character and nothing gets filmed, we have a separate guide to a real-time talking avatar. The hardware underneath is getting cheaper, so the limit on session length will stop being a technical one.

frequently asked

01What is Runway Characters
It is a Runway product that turns a single photo into a live character you can talk to. Behind it is an autoregressive video model of roughly 57B parameters, four denoising passes per chunk, 704×1088 at 24 fps.
02Why can't sessions be batched
Every user takes a whole GPU, because one step holds 2.24 PFLOP/s of useful work. A second person cannot ride along in the same tick, so a live session is its own line in the cost sheet.
03How many GPUs does one session need
Originally eight H100s per session. After optimisation the diffusion step landed at 159.3 ms, then 147.4 ms with the fused kernel, and the session moved to four H100s. The projection for three B200s is about 154.3 ms.
04How did they measure quality without PSNR
PSNR is useless on an autoregressive model, since there is no reference frame to compare with. Differences were measured against run-to-run variation. Across 51 clips the mean lip-sync divergence stayed at or under 0.03.
05How much does Characters cost
There is no pricing in the Runway Research write-up, it is a report about serving and inference. I will not attach a number to Characters that Runway did not publish.