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
- What is a deterministic AI workflow?
- Split the work by the kind of decision, not by the tool
- What does a deterministic check actually look like?
- Five independent checks, and the maker runs none of them
- Put something cheap between approved paper and a full build
- A bad take is re-rolled, never repaired
- Where does taste actually go?
- What this does not fix
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.
- The three-way test for where any rule belongs: code, checkpoint, or human judgment
- What our own rules audit found when we counted, and why the prose rules were the ones that kept breaking
- A real check run, including the two failures the engine fixed at creation and the one it refused
- The five independent checks a film clears before anyone sees it, and why the maker never runs them
- 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| Dimension | All human | All AI | Split by decision |
|---|---|---|---|
| Time to a first cut | Weeks | Yes. Minutes | Days |
| Cost per variant | No. High enough that you defend your first idea | Near zero | Near zero after the direction is locked |
| Mechanical defects | Caught by a person, eventually | No. Shipped. Nothing in the loop knows what a plate is | Yes. Refused at creation. The box fits or the plate grows |
| Where a wrong idea is discovered | At the edit, which is expensive | No. In market, which is worse | Yes. On paper, before anything renders |
| Who owns taste | A person, and it scales like a person | No. Nobody. The model has preferences, not taste | A person, spending their eye only on verdicts |
| What a mistake costs | A day of somebody's work | No. Unbounded, because nothing caps the blast radius | Yes. Capped between two checkpoints, by design |
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 order02Split 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 themMechanically 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
Not computable, but cheap to look at
Some decisions cannot be measured and do not need a specialist either. They need a pair of eyes at a moment when changing your mind is cheap. Those get a named gate with a named artifact, not a vague review.
- Checkpoint A: the story picked on paper. Cost of a change here is minutes
- Checkpoint B: a contact sheet plus the chosen soundtrack. Thirty seconds to look
- The Mockup Gate, between B and C: rough comps or styleframes plus one motion test
- Checkpoint C: picking winners from finished variants, where rework means picking
Taste, and it stays with a person
The residue. What the film is about, which register it speaks in, whether the hook actually stops a stranger, whether the thing is any good. No metric we have built has ever substituted for this without failing confidently.
Agents and models decide inside this bucket only where the alternative is nobody deciding at all.
- Does this stop a stranger at 360 pixels, muted, among other content
- Is the claim the words and picture make together an honest one
- Is this piece different from the other four in the set in a way a viewer would notice
- Kill or keep
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 auditSee the numbers as a table
| Number of rules | Rules |
|---|---|
| Documentation only | 149 |
| Automated gate | 58 |
| Process step | 34 |
| Checklist line | 33 |
| Checker agent | 16 |
| Nothing | 2 |
| Build-script default | 1 |
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 questions03What 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 runThe 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 shapeassert 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
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 remembers05Put 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 itThe 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: minutesBeats, durations, the actual soundtrack file
Optional and cheap: a contact sheet and the chosen bed. Thirty seconds of looking and listening buys you the whole shape of the film.
Cost of a change here: an hourRough comps, styleframes, one motion test
Only the riskiest beat gets a motion test, plus a bed sketch. Minutes of compute, never hours. Full builds before this yes are not permitted.
An unintentional departure from the ratified mockup is a kill. An intentional one is declared before render.
Cost of a change here: minutes of computeVariants, in parallel, at full cost
By now every mechanical rule is enforced in the engine, so what comes back is a set of finished things to choose between.
Cost of a change here: hours, and a re-render voids every verdictIn the client's hands
The stage nothing should ever be discovered at. Everything upstream exists so that what arrives here is a taste question and not a defect report.
Cost of a change here: the relationship06A 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.
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 anatomyThe four numbers this architecture runs on
Measured in this studio08What 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 themThe 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 endThe terms in this post, defined
Search the vocabularyLayout contractCode
Mockup gateCheckpoint
Blast radiusEconomics
Checker passesGate
Checkpoint A, B and CProcess
Deviation registerProcess
Questions people actually ask
Open what you needWhat 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
- Reproducible Builds. Reproducible Builds: a set of software development practices - the software idea we borrowed: the same inputs must produce the same bytes
- Wikipedia. Poka-yoke - mistake-proofing at the point of creation, which is what a layout contract is
- 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.
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.