Ask an image model to draw a bar chart and you get something that looks like a bar chart. The bars won't match the data, the axis labels will be alphabet soup, and no two renders will agree with each other. For marketing assets built on real numbers, that's disqualifying.
So we route anything with structure — stat cards, charts, comparison tables, vector diagrams, full slide decks — to real layout and vector engines instead. HTML and CSS composed by code, charts plotted from the actual data series, diagrams drawn as geometry. Nothing generative in the loop.
What determinism buys
Three things, and each one compounds.
- Correctness by construction. A plotted chart cannot mistype its own values. The number in the spec is the number on the surface.
- Reproducibility. The same content spec re-renders pixel-identically, forever. Every asset's manifest carries a spec hash, so "regenerate the Q3 deck" means exactly that — not "roll the dice again and hope."
- Cost. A layout engine renders for effectively nothing. The diffusion pass is reserved for the one job it's genuinely best at: cinematic editorial photography, where variation is a feature instead of a defect.
Run the pipeline twice against one spec and you can diff the outputs — there is nothing to find:
Quality checks become math
Deterministic surfaces make quality checkable by computation instead of vibes. Contrast is verified with WCAG math — "too dark to read on a phone" is caught by an equation, not by hoping a reviewer notices. Caption fit, even sizing for video codecs, chart geometry: all assertable, all asserted.
Even the probabilistic work stays honest. When a forecast visual needs outcome ranges, the bands come from a real simulation kernel — P10 through P90, computed — not decorative gradients that imply precision nobody did the work for.
Where the model still earns its keep
None of this is model-phobia. Reasoning models plan campaigns and draft copy; the diffusion pass shoots the photography. The design principle is narrower: use a generative model where ambiguity is the value, and a deterministic engine where fidelity is the value. Most marketing pipelines get this backwards — they generate what should be computed, then burn review cycles catching what the generation got wrong.
When the chart is drawn from the data, checking it stops being a job.
The result is a quality floor that doesn't wobble. That's the kind of boring we're optimizing for.