Feature · Determinism

The same data, the same image, every time

On-brand is not a style setting. It is the property that two runs of the same job cannot disagree. You design the template, mark what changes, and send data; the renderer does the rest without inventing anything.

Measured

Two renders,one hash.

Determinism is easy to claim and easy to check, so it is worth checking. We rendered one design twice with the same field values and compared the files.

Run one

27,225 bytes

SHA-256 5720d9df…

Run two

27,225 bytes

SHA-256 5720d9df…

Difference

None

Byte for byte identical. Not visually close: the same file.

That is the property a diffusion model cannot give you, and it is what makes a render safe to put in a billing run, a certificate batch, or anything a customer will read closely.

How it holds

Three things dothe work.

None of them is clever. They are constraints, and the output is predictable because of them rather than in spite of them.

01

The template is the contract

You design the layout once and mark the parts that change as dynamic fields. A render fills those fields and touches nothing else, so the only thing that can differ between two images is the data you sent.

02

Your fonts, and a warning when one is missing

Upload a family and use it as the fontFamily. If a design asks for a font that is not attached, the render still returns an image, and it returns a warning naming the family and the fallback. A silent substitution is the way brand drift usually gets into a batch.

03

A fixed canvas, on purpose

Dimensions are set at design time, not per request. That is the trade: you make one design per size, and in exchange nothing reflows, nothing crops unexpectedly, and the thousandth render has the layout you approved on the first.

Prompts and templates

Different tools,different jobs.

This is not an argument that generative models are bad at images. It is an argument that they are bad at this particular job, and the reason is structural.

Ask a model for a picture

You get something that did not exist before, which is the point. Ask twice and you get two different pictures. Put a name on it and the letters are often not quite letters. Excellent for illustration and concept work.

Ask a renderer for a document

You get the layout you approved with the values you sent. The name is real text in your font, so it is spelled correctly and it is searchable. No invention, which is exactly what an invoice needs.

Use both

Generate the artwork with a model, upload it, and set it as the background of a template. The illustration varies; your logo, headline and spacing do not.

How agents drive this

In practice

Where getting itwrong is expensive.

Consistency matters most where the image carries a fact that someone will check.

Certificates and diplomas

One recipient per render, each name spelled the way it was given. A batch that drifts is a batch you reprint.

Certificate guide

Invoices and receipts

A line-item table and a total, rendered per customer. Numbers that are real text, not a model's impression of numbers.

Invoice guide

Link previews at scale

One 1200x630 template, a URL per post. Every card the same shape, which is the whole reason the feed looks deliberate.

OG image guide

See every use case, each with a guide

Components

27 component types, each one deterministic

Text, images, QR codes, barcodes, tables, ratings, progress bars, shapes and the chart and data family. Each takes structured values rather than a description, which is why the same values always draw the same thing.

Browse the component library

Consistent images FAQ.

Yes, and that is the whole model here. You design a template and send data; nothing is inferred from a prompt. The agent or script chooses the values, and the renderer fills the fields it was given. Because no generative step sits between the data and the pixels, two runs with the same data cannot disagree.

Render it twice and compare

100 renders a month, free forever, no credit card. Enough to put the claim on this page to the test on your own template.

We use cookies to run the site and, with your consent, for analytics and marketing. See our Cookie Policy. You can change this any time from “Cookie settings” in the footer.