All work

A style is a contract

Turning one art-directed look into a spec that survives thousands of inputs nobody planned for.

Year
2026
Role
Style definition, evaluation criteria, pipeline diagnosis

The ask

Take a look that worked once, in one shot, chosen by hand — and make it hold across arbitrary user input without anyone supervising it.

Constraints

Constraints are what make this engineering rather than decoration.

Unknown input
Any source footage, any subject, any lighting. No curation, no retakes, no art director in the loop.
Reads at thumb size
Most viewing is 9:16 on a phone. A look that only resolves on a 27-inch display has failed.
One pass
No human review between generation and delivery. Whatever comes out is what ships.
Bounded compute
The style cannot be the reason a generation misses its latency target.
Legible as a choice
A user picking this style from a list must get something recognisably that style, every time.

Where style lives

Claiming the whole pipeline would be less credible, not more.

PipelineMine to change (3)Not mine (4)
  1. 01

    User input

    Uncontrolled. Assume the worst case, because it arrives eventually.

  2. 02

    Shot segmentation

    Determines where continuity has to survive a boundary.

  3. 03

    Keyframe selection

    First real point of leverage — this is where a look becomes anchorable.

  4. 04

    Style conditioning

    Reference imagery, weights, and prompt structure. The core of the work.

  5. 05

    Sampler and scheduler

    Not mine to change, but its behaviour dictates what conditioning survives.

  6. 06

    Temporal pass

    Where consistency is either preserved or quietly destroyed.

  7. 07

    Grade and output

    Last chance to recover contrast and colour intent.

What broke

Four ways this failed before it worked.

  1. Failure 01

    Style collapses under strong source colour

    Cause

    When the input already carries a dominant cast, style conditioning and source colour compete rather than compose. The output lands somewhere between the two and reads as neither the style nor the footage.

    The lever

    Separate luminance intent from colour intent so the style stops fighting the source for the same channel.

    Evidence

    Style washing out against a strongly tinted source

  2. Failure 02

    Look drifts across shot boundaries

    Cause

    Each segment is conditioned independently, so two adjacent shots resolve to different points on the same style manifold. Individually both are correct. Cut together, they look like two different styles.

    The lever

    Anchor every segment to shared reference imagery rather than letting each one re-derive the look.

    AtlasThis failure class, in general
    Evidence

    Hue and saturation wandering between adjacent segments

  3. Failure 03

    Texture boils frame to frame

    Cause

    High-frequency detail is a style's most fragile component. Fine grain and surface texture are exactly what temporal instability destroys first, and the effect is far more visible in motion than in any single frame.

    The lever

    Move the texture intent later in the chain, where it is applied once rather than re-synthesised per frame.

    AtlasThis failure class, in general
    Evidence

    Fine texture reconstructing differently on every frame

  4. Failure 04

    Reads as noise at 9:16

    Cause

    A look built and judged on a large landscape display loses its structure when cropped and scaled to a phone. Contrast relationships that felt subtle at full size collapse into mud.

    The lever

    Judge every style at final delivery size, on a phone, before calling it finished.

    Evidence missing

    This failure has no clip yet. A named failure with video evidence is far more convincing than one described in prose — add one.

The fix

The useful reframe was to stop treating the style as a look and start treating it as a contract: a set of guarantees that must hold no matter what arrives at the input.

A look is a description — warm, high-contrast, grainy. A contract is testable. It says which properties are invariant, which are allowed to vary with the source, and what happens at the edges. Written down, it turns arguments about taste into arguments about whether a specific guarantee held on a specific clip, which is a much shorter conversation.

Three guarantees did most of the work:

  • Luminance structure is fixed; colour adapts. The style owns where the contrast sits. It does not own the input’s hue, and it stops trying to.
  • Texture is applied once, at a fixed stage. Anything re-synthesised per frame will eventually be re-synthesised differently per frame.
  • Every segment anchors to the same reference, not to its neighbour. Drift compounds when each shot inherits from the last; it does not compound when every shot inherits from the same origin.

The second one is the least intuitive and mattered the most. It is tempting to put every stylistic decision into the generation step, because that is where the model’s power is. But the generation step is also where the least stability is. Anything you can move out of it, you should.

Why this is a systems problem

The eye tells you something is wrong. It does not tell you where.

Almost every failure above looks the same on first viewing — the output is somehow off. Distinguishing “the style is wrong” from “the style is right and the temporal pass is destroying it” is not an aesthetic judgement, and no amount of taste will get you there. It takes knowing what each stage of the pipeline can and cannot do to an image, then testing stages in isolation until the variable that actually moves the output reveals itself.

That is the part of this work that surprises people. Most of the day is not choosing between two beautiful frames. It is figuring out which of eleven plausible explanations for a bad frame is the real one.

Result

The finished style holds its identity across source material it was never tuned on. The comparison below is the same input through the same pipeline — only the style definition changed.

First definitionShipped definition

Drag to compare. Arrow keys also work; space toggles playback.

Receipts

Regeneration rate, before → after
TK — unfilled
Styles shipped to production
TK — unfilled
Generations reviewed while tuning
TK — unfilled

What I'd do differently

I spent too long trying to fix this with better conditioning. The real lever was upstream, in what got anchored before conditioning ever ran — and I could have found that in a day by testing the pipeline's stages in isolation instead of iterating on the part I already understood. Next time I map where a variable can be influenced before I start tuning the place it is most convenient to tune.

Next case study

Keyframes as a control surface

The one place in a generative video pipeline where an art director still has direct authority.