Skip to content
OMNI Labs
WorkLookbookMusicJournal
TalentMethodCertificationWardrobe
BuildAutomationEmbodimentAutonomyPen
Contact
Creative AI Production Studio
OMNI Labs
01Home02Work03Lookbook04Music05Journal
StudioTalentMethodCertificationWardrobe
LabBuildAutomationEmbodimentPen
06Contact
hello@omnilabs.studioIstanbul · Global

Start a project →

© OMNI Labs · Creative AI Production Studio

← Journal
  1. Home
  2. Journal
breakdown

A Joke Only Lands When Its Setup Carries the Story

Our AI talk show test: blind viewers skipped every joke whose setup needed the news, and the one episode that won 3 of 3 was a single connected chain. The video model is the camera; the writing, the laughs and the sound are ours.

OMNI Labs25 Oct 2026

The OMNI late-night show set: a 1970s wood-panelled studio with the host desk, a guest armchair and the control booth

On this page

  1. A Silent Camera, Not a Performer
  2. Check the Frame Count Before the Edit
  3. Prompt Fixes That Held
  4. Stabilize, Track and Blend the Upscale
  5. Laughs, Loudness and Silence
  6. Blind Viewers Want the Whole Setup

Key takeaways

  • Laughs, stings, the band and the talkback voice are laid in post; every video prompt bans audience, laughter, applause, music and any other voice.
  • Blind viewers skipped every joke whose setup needed the news; the one episode that won 3 of 3 was a single connected chain, and standalone bits lost every time.
  • A 15 s take carries at most 21 words, each 10 s clip at most 14 words and 2 shots, and the whole 35 s episode at most 50 words.
  • For the final v26 upscale, FlashVSR+ Turbo blended 70% with the Lanczos source: 60% read waxy, 80% hardened hair and earrings.
  • Laughs run 1.1 to 1.7 s with a 0.35 s fade, and the episode is mastered to -14 LUFS with a two-pass loudnorm.

A Silent Camera, Not a Performer

Our AI talk show treats the video model as a camera. It renders a host at a desk. It does not write the jokes, time the laughs or supply the band. Every video prompt bans audience, laughter, applause, music and any other voice, and all of those sounds are laid in post.

The default episode is 35 s: a 15 s single take plus two 10 s clips. We move to 45 s only when four bits each test well on their own.

The word budgets are the real constraint:

  • The 15 s take: at most 21 words.
  • Each 10 s clip: at most 14 words and 2 shots.
  • The whole episode: at most 50 words.

Twenty-one words leave no room for exposition. Every line has to land on its own beat, and the jokes have to work inside that count.

The 45 s version is a promotion, not a default. A bit has to earn a longer episode by testing well on its own, so a weak bit cannot hide inside a longer runtime. The budgets are set per take and per clip as well as for the whole episode, so no single part can carry the rest.

Check the Frame Count Before the Edit

Frame counts are not something to trust from the render. We check them on every take before editing.

One take came back 3 frames short. We cloned its last frame to fill the gap. The fill was manual, so the check is part of the pipeline, not a tidy-up step at the end.

Every cut depends on that count. A take that is short by a few frames shifts the timing of the line that follows it, and that shift is easy to miss while watching the raw render. So the frame check happens before the cut list is locked, not after the episode is assembled.

The 10 s clips carry the same budgets, at most 14 words and 2 shots each, so there is less room for a miscount to hide.

Prompt Fixes That Held

Three prompt problems came back in our takes, and each had a wording that fixed it.

  • Props get lettering. A "red on-air lamp" came back with ON AIR written on it. "Plain red lamp with no letters" fixed it.
  • Some actions win over the negative. A trumpet was played although the prompt said it does not play. We allow the action and handle the sound in post.
  • Hands need a boundary. Hands dropped below the desk until the prompt said "never below the desk edge."

The pattern is the same each time. The model follows the object you name, so describe the object as you want it, and state the limit in the same sentence.

Each fix is a sentence in the prompt rather than a correction in post, which makes it reusable. A fix that lives in the template holds for the next episode. A fix that lives in an edit has to be repeated by hand every time, and that is the cost we are trying to avoid.

Stabilize, Track and Blend the Upscale

Camera stability and overlays fight each other. Seedance drifted the camera about 2 px over the first frames of a take. A static logo on top made that drift read as a shake, so a stabilize pass runs before anything is laid over the picture.

Tracking a logo onto a plain back panel failed: the tracker followed the head. We use a channel bug in the opening only, fading out before the first pan.

The upscale needed a blend too. For the final episode (v26), FlashVSR+ Turbo was blended 70% with the Lanczos source. At 60% the skin read waxy. At 80% the hair and earrings hardened. The 70% setting was the one where the picture held both texture and skin.

The order of operations matters. Stabilize first, then overlay, because a static logo can only sit still on a picture that has already been steadied. The channel bug is a deliberate compromise: it appears in the opening only and fades out before the first pan, so the moving picture after that carries no overlay to expose the drift.

Laughs, Loudness and Silence

The audio is built from scratch in post, and the rules are strict.

  • Laughs run 1.1 to 1.7 s and end with a 0.35 s fade.
  • No sound crosses a cut, and no laugh plays under a line.
  • The loudness target is -14 LUFS with a two-pass loudnorm.
warning

ebur128 reads -70 on clips shorter than 400 ms, so a short laugh or sting gives a meaningless number. Measure those clips with astats instead.

Stings, the band and the director's talkback voice are all laid in the same post pass, so the mix is built in one place rather than inherited from the picture.

Silence does part of the timing work. Because no sound crosses a cut, every cut starts clean. Because no laugh plays under a line, the viewer hears the line before the reaction. The laughs are short on purpose, at 1.1 to 1.7 s with the 0.35 s fade, so the reaction never runs into the next line.

Blind Viewers Want the Whole Setup

We ran a blind cold test on the episodes, and the result changed how we write. Jokes landed only when the setup carried the whole story.

Blind cold test, three viewers per cut · measured 23 Oct 2026
CutResult
Joke whose setup needed the newsSkipped by every viewer
Name the viewer had not heard beforeConfused 2 of 3 viewers
Single connected chain of jokesWon 3 of 3 viewers
Standalone bitsLost every time
A small sample. It is one test, but the direction was the same on every cut.

A chain builds momentum because each joke uses the setup of the one before it. Standalone bits have to carry their own context, and in this test none of them did. If a joke needs the news to make sense, it does not go out. The setup has to be on screen, in the 21 words.

The result says as much about the writing as about the video. A standalone bit can read as funny to someone who knows the news and still fail with a viewer who does not. That is why the blind cut is the check we trust, and why the connected chain is the format we write to.

OMNI Labs is a creative AI production studio.Everything in the Journal comes from our own productions and tests.Start a project