Sutra

The combination that ships: deterministic pipelines plus AI generation

All-human is slow and does not scale. All-AI is fast and unreliable in the ways that cost money. The working answer splits the job by kind of decision: what a machine can check is enforced in code before render, and taste is a human verdict at a cheap moment.

What is in here
  1. What is a deterministic AI workflow?
  2. Split the work by the kind of decision, not by the tool
  3. What does a deterministic check actually look like?
  4. Five independent checks, and the maker runs none of them
  5. Put something cheap between approved paper and a full build
  6. A bad take is re-rolled, never repaired
  7. Where does taste actually go?
  8. What this does not fix
The short answer

Split the work by the kind of decision, not by the tool. Anything a machine can measure on the delivered file gets enforced in code at creation time, so a breach is refused before it renders instead of found in review. Anything that needs taste gets a human verdict at a cheap moment, on paper or on a rough mockup, before the expensive artifact exists. Models and agents decide only what cannot be made deterministic: subject, register, story, taste. That split is what makes generation safe to run at volume.

What you get out of this
  1. The three-way test for where any rule belongs: code, checkpoint, or human judgment
  2. What our own rules audit found when we counted, and why the prose rules were the ones that kept breaking
  3. A real check run, including the two failures the engine fixed at creation and the one it refused
  4. The five independent checks a film clears before anyone sees it, and why the maker never runs them
  5. The honest limits: gate-green is not good, and every metric we built to replace judgment failed confidently

All human, all AI, or split by decision

Three ways to run it
All human, all AI, or split by decision
DimensionAll humanAll AISplit by decision
Time to a first cutWeeksYes. MinutesDays
Cost per variantNo. High enough that you defend your first ideaNear zeroNear zero after the direction is locked
Mechanical defectsCaught by a person, eventuallyNo. Shipped. Nothing in the loop knows what a plate isYes. Refused at creation. The box fits or the plate grows
Where a wrong idea is discoveredAt the edit, which is expensiveNo. In market, which is worseYes. On paper, before anything renders
Who owns tasteA person, and it scales like a personNo. Nobody. The model has preferences, not tasteA person, spending their eye only on verdicts
What a mistake costsA day of somebody's workNo. Unbounded, because nothing caps the blast radiusYes. Capped between two checkpoints, by design
Filled in honestly. The middle column is not a straw man. It is genuinely the cheapest way to get something ad-shaped on screen today, and for a founder testing an idea this week it can be the right call.

01What is a deterministic AI workflow?

One where the generative part is wrapped in a path that behaves the same way every time. The model still invents the shot. Everything around the shot, the layout, the durations, the type floors, the delivery spec, is computed rather than chosen, and a violation refuses the render instead of producing a file somebody has to catch later.

The test for whether yours is deterministic

Delete your cache and rebuild. If the same inputs give you a byte-identical file, the deterministic half is real. If they do not, something in the middle of your pipeline is making a decision nobody wrote down, and that decision will drift on the day you are not watching. Software has had this argument already, and the reproducible-builds people settled it.

The order we run, and where a human verdict is cheap

The stage order
00Brand and adsstudywhat they alreadyrun, in whatregister, withwhat recurringdevices01Corpus censusevery usableasset, annotatedby what it coulddo in a film02Story menu,on papersix to twelvecandidates, eachwith its hook andits soundCHECKPOINT A03Directionlockbeats with realdurations, thesoundtrackcommitted as afileCHECKPOINT B04Cheap mockupstyleframes, onemotion test ofthe riskiestbeat, a bedsketchMOCKUP GATE05Massvariants,then selectbuild a surplus,cull hard,present the bestthree to fiveCHECKPOINT C
00Brand and ads studywhat they already run, in what register, with what recurring devices
01Corpus censusevery usable asset, annotated by what it could do in a film
02Story menu, on papersix to twelve candidates, each with its hook and its soundCheckpoint A
03Direction lockbeats with real durations, the soundtrack committed as a fileCheckpoint B
04Cheap mockupstyleframes, one motion test of the riskiest beat, a bed sketchMockup Gate
05Mass variants, then selectbuild a surplus, cull hard, present the best three to fiveCheckpoint C
Binding, in that order. It replaced the obvious order, which was idea first, then crop scenes out of whatever is on disk, then cut, then fit music to the cuts. That order produced work we scored two out of a hundred, because every correction landed at the most expensive stage.
The rule that makes the order workNothing renders before Checkpoint A. Not a test, not a quick look, not a mood piece. Once frames exist, people defend them, and the argument stops being about whether the idea was right. The longer version of this is in paper before pixels.

02Split the work by the kind of decision, not by the tool

Most pipeline arguments are about tools, which is the wrong axis. The useful question about any rule is not who enforces it but what kind of thing it is. There are exactly three answers, and putting a rule in the wrong bucket is how it comes back.

Three buckets, and what belongs in each

Switch between them
Mechanically checkable, so it lives in the path

If a machine can measure it on the delivered file, no human should ever be the one who catches it. The check runs inside the build engine, before render, and a breach is fixed or refused rather than reported.

  • Text never exits the plate it belongs to. The box fits or the plate grows
  • Every occlusion carries a declared budget, measured after compositing
  • Dwell: every string holds for at least 1.2 seconds, or 0.35 seconds per word
  • Contrast against the worst local background under each glyph run, at delivery width and again at 360 pixels
  • Full bleed: zero letterboxed frames, 1080 by 1920, edge to edge
The classification is the whole method. A rule in the wrong bucket does not fail loudly. It fails quietly and repeatedly, which is much more expensive.

A rule is either in the path, or it is a suggestion.

the line from our own enforcement audit

That line came out of counting. We audited our own rulebook and classified every rule by how it was actually enforced, not by how important it sounded. The result was uncomfortable enough that it changed the architecture.

How 293 of our own rules were actually enforced, on the day we counted

Our own audit
Documentation only149Automated gate58Process step34Checklist line33Checker agent16Nothing2Build-script default1
See the numbers as a table
Number of rulesRules
Documentation only149
Automated gate58
Process step34
Checklist line33
Checker agent16
Nothing2
Build-script default1
Ours, counted once, in a rulebook that carried 96 kill-severity rules. Treat the exact counts as a snapshot of one day rather than a constant. The shape is the finding: over half the rules existed only as prose, and those were precisely the ones that kept getting broken.

Two weeks of evidence sat behind it. The rules that never broke were the ones with a refusing gate in the only path to the effect: spend, schema, the checker gate. The rules that broke repeatedly were the ones living as prose, which is most of the layout and hook doctrine. Prose compliance does not accumulate across people or agents. Code does.

Where does your rule actually belong?

Answer two questions
Run this on the three rules you repeat most often in feedback. If any of them ends at the first box, you are spending human attention on something a machine should be refusing.

03What does a deterministic check actually look like?

It looks like a build that argues with itself before it renders. Here is the shape of a real run: two mechanical breaches fixed at creation, one undeclared deviation refused outright, and nothing handed to a human that a machine could have settled.

A layout contract run, trimmed

Watch it run
A trimmed transcript, project name changed. The important lines are the two marked with an arrow. Neither of those defects reached a human, because neither of them is a matter of opinion.

The occlusion line is the one worth stealing. Every element that can be covered by another element carries a declared budget, written when the composition is designed, and the engine measures actual occlusion after compositing rather than trusting the layout intent. Ten percent hidden is a design decision. Forty-one percent hidden is a bug, and it used to be found by a client.

The contract, as it appears in a build

Copy this shape
assert text_bbox within plate_bbox        # box fits, or plate grows
assert occlusion(chip) <= budget(chip)    # measured post-composite
assert cap_height(run) >= 0.05 * frame_h  # measured off the plate's ink
assert contrast(run, worst_local) >= 4.5  # and >= 3.0 re-measured at 360px

DEVIATION: <what changed>
  - why the precedent does not cover this
  - risk accepted, and by whom
  # undeclared departure = automatic kill, however good it looks
Four assertions and a deviation register. The register is the part people skip, and it is the one that converts an argument about taste into a decision somebody made on purpose, before it cost anything.

04Five independent checks, and the maker runs none of them

No film is packaged here until five verdicts come back: message, visibility, physics, story and commodity. Each is run by a fresh reviewer who has seen only the delivered bundle, never the build notes, never the direction lock, never a prior verdict. A re-render voids all five, because the verdict belongs to the bytes, not to the project.

Maker never checks maker, and the reason is measurable. On the same films, the build side's self-scores ran between 36 and 76 points above mine. Self-scoring measures compliance with the brief. It does not measure whether the thing works.

Run the five on a cut you already have

Tick as you go - it remembers
0%
About twenty minutes, cold, on a phone, with sound. Give each one to somebody who did not make the ad and did not read the brief. The gap between their answers and yours is the useful output.

05Put something cheap between approved paper and a full build

We learned this one the hard way. A review came back with a film scored one out of a hundred for having no visual hook, and eight statics carrying mechanical layout breakage, after hours of compute had already been spent. The verdict was to fix the system before the outputs. Two rules came out of it: the layout contract, and a gate that sits between approved paper and any full-cost build.

What a change costs at each stage

Click along it
The story menu, before anything exists

Six to twelve candidates, each with its hook, its sound direction and its corpus coverage. Changing your mind means editing a sentence.

Cost of a change here: minutes
The whole architecture is an argument about this one column. Every checkpoint exists to move a decision leftward, into a stage where being wrong is affordable.

06A bad take is re-rolled, never repaired

This is the rule that keeps the deterministic half honest. When a generated take is wrong, we do not patch it, paint it out or stabilize it into acceptability. It gets generated again, from a changed instruction, and every re-roll needs explicit permission before it runs because it costs real money.

Why repair is the expensive optionRepair hides the cause. A patched take teaches you nothing about why the instruction produced the wrong thing, so the same defect comes back on the next brand. A re-roll forces the instruction to change, which is the only thing that compounds. There is more on the economics in re-roll, never repair.

07Where does taste actually go?

Into verdicts, and nowhere else. My own standard for this system is that my review should be taste-only. If I have to say change this image, the system worked and I am spending my attention on the job only I can do. If I have to say your text escapes its box, the system failed, and no amount of care from whoever built that file would have fixed it.

Change this image is a legitimate note for me to have to give. Your text escapes its box is a system failure.

the standard the layout contract was written to meet

The stack, with taste sitting on top of it

Layer anatomy
SPECDelivery spec, computed not chosen1080 by 1920, 24fps, full bleed, one grain plateCODELayout contract, asserted at creationthe box fits or the plate grows. A breach refuses the renderGATEFloors measured on the delivered bytesdwell, contrast at 360, cap height, no force flag, no skipEYESFive checker passes, bundle onlyfresh reviewers, no build notes, maker never checks makerTASTEOne human verdict: kill or keepthe only layer that cannot be moved downward
Read it bottom up. Every layer below the top one exists so that the top one is the only thing a person has to spend attention on. Add a layer at the wrong height and it turns into a review note somebody has to keep repeating.

The four numbers this architecture runs on

Measured in this studio
3checkpoints - A paper, B direction, C picks - plus the Mockup Gate between B and CSutra Haus pipeline
5independent checker passes before a film is packaged, run by people who saw only the bundleSutra Haus
43%of films that clear every automated gate survive the first human eyeSutra Haus verdict log
2xminimum surplus built before selection, so the last creative act is picking rather than correctingSutra Haus
All four ours, counted off our own production log and verdict log. The third one is the number most studios would not publish, and it is the most useful one on this page.

08What this does not fix

Gate-green is not good. Fewer than half the films that clear every automated check here survive the first human viewing, and that number is not a bug in the gates. It is what the gates are for. They clear the floors so that the argument can be about whether the thing works, which is the only argument worth having.

Every metric we built to replace judgment failed confidently

We built a hook gate around change in the first two seconds. The gate ranked our accepted films below our rejected ones and was withdrawn. What actually separated them was whether the first two seconds contained a legible proposition, which is information rather than motion. The measurements are in deterministic creative QA.

The second failure was worse and it produced the rule we run on: a lint is a floor, not a target, and when a check fails you fix the thing rather than the number. The soundtrack that taught us that, tuned green and shipped anyway, is in sound is 40% of the ad.

Five things people believe about automating creative

Flip them
None of these are strawmen. Four of the five are positions we held ourselves and had to abandon after they cost us something.

The promise this architecture makes is not that we are never wrong. Taste is genuinely non-deterministic, and a film can clear every gate and still be dead. The promise is about blast radius: between any two human checkpoints, spend is capped and compute is capped at one cheap mockup pack, so a bad idea dies on paper-scale money. Wrong should be cheap. The full QA version of this argument lives in deterministic creative QA.

What comes out of a pipeline built this way

Ours, out the far end
Ephoria - campaign ad
Hotel client - campaign reel
Beauty device - campaign ad
Fashion - studio demo
Four finished films that went through the order on this page: paper first, sound committed before the first cut, five checker verdicts before packaging. The gates did not make any of them good. They made it possible to spend the argument on whether they were.

The terms in this post, defined

Search the vocabulary
6 terms
Layout contractCode
Mechanical layout correctness enforced deterministically at creation time, inside the build engine. Text never exits the plate it belongs to, and every occlusion carries a declared budget the engine measures after compositing.
Mockup gateCheckpoint
A cheap ratified artifact between approved paper and any full-cost build, sitting between Checkpoint B and Checkpoint C. For films, styleframes plus a short motion test of only the riskiest beat plus a bed sketch. Minutes of compute, never hours.
Blast radiusEconomics
The maximum damage a bad creative decision can do between two human checkpoints. Capped by a spend governor for money and by one mockup pack for compute. The system does not promise being right, it promises that wrong is cheap.
Checker passesGate
Five verdicts required before packaging: message, visibility, physics, story and commodity. Run by fresh reviewers who see only the delivered bundle. Maker never checks maker, and a re-render voids every verdict.
Checkpoint A, B and CProcess
The three cheap human gates. A is paper, and nothing renders before it. B is a thirty-second look at a contact sheet and the chosen soundtrack. C is picking winners, where rework means picking rather than re-directing. The Mockup Gate sits between B and C.
Deviation registerProcess
A written list of departures from established practice, each recorded before rendering as what changed, why precedent does not cover it, and what risk was accepted. An undeclared deviation is an automatic kill.
House vocabulary. Lift it into your own process if it is useful. The names matter less than having one name per idea that everybody uses.

Questions people actually ask

Open what you need
What is a deterministic AI workflow?

A pipeline where the generative step is wrapped in machinery that behaves identically every run. The model still invents the shot, but layout, durations, type floors and delivery spec are computed rather than chosen, and a violation refuses the render. The practical test: delete the cache, rebuild, and check whether you get a byte-identical file.

How do you combine AI and traditional production without the seams showing?

Decide the split by kind of decision, not by tool. Real footage and real photography carry product truth and any physical event. Generation carries coverage, environments and the variants nobody would pay to shoot.

Then unify with two mechanical things: one grade and one grain plate over everything. Most visible seams are not model artifacts, they are two sources that were never brought into the same image.

Can I automate creative quality control?

You can automate the floors and you cannot automate the ceiling. Contrast, dwell, full bleed, loudness, tempo and layout geometry are all measurable and belong in code. Whether an ad is any good is not measurable, and every metric we built to stand in for that judgment failed toward a confident wrong answer.

How many human review points does a creative pipeline need?

What we run is three checkpoints - A paper, B direction, C picks - plus the Mockup Gate between B and C. The number matters less than the placement. Each one should sit at a moment where changing your mind costs minutes rather than hours, and no review should ever be the first time a person sees pixels.

Does enforcing rules in code slow production down?

It speeds it up, because the expensive part of creative production is not making things, it is discovering that something needs remaking. A check that refuses a composition before render costs a second. The same defect found by a client costs a rebuild, a re-render, and every verdict that was attached to the old bytes.

What should never be automated in an ad pipeline?

The subject, the register, the hook and the kill decision. Also anything where the automated version could be confidently wrong without saying so. We once had a tempo detector report 165 BPM on a track built on a 90 BPM grid, and a speech-check tool return a clean result without being given an audio file at all. Measure your measurements before you trust them.

A person only has so many good verdicts in a day. Every one spent on a text box that escaped its plate never got spent on whether the ad was worth running.

Where the numbers came from

  1. Reproducible Builds. Reproducible Builds: a set of software development practices - the software idea we borrowed: the same inputs must produce the same bytes
  2. Wikipedia. Poka-yoke - mistake-proofing at the point of creation, which is what a layout contract is
  3. W3C. Understanding Success Criterion 1.4.3: Contrast (Minimum) - the 4.5:1 ratio our contrast gate measures against

Every figure above links to the place it was published. Numbers marked as ours are measured inside this studio and we say so where they appear. We do not print a statistic we cannot point at.

Badal Kariwal

Runs Sutra Haus, a one-person ad studio that has shipped over a thousand finished creatives - film and stills - for DTC brands and hotels. Writes here about what the work actually taught him, including the parts that failed. The person who reads your brief is the person who builds the work. Send him something to make.

The pipeline, run on your product instead of ours

Send a link. Get one finished ad back.

One finished cut built from your own product, inside three days, free and yours to run whether or not we ever work together. It goes through the same gates described on this page, and if it fails one of them you will hear about it from us first.

Replies within a day. Ad within three.
Read next