Brand kit
The Brand kit tab, the third at the top of the Creative pages, holds one kit per workspace: the brand every generated still is drawn in. The renderer reads its colours, typeface and logo when it sets the copy; the scene prompt reads its palette, typography descriptor and products when the model draws the picture; an agent reads its voice and forbidden words when it writes the copy. A workspace without a kit cannot generate.
The six colour roles
A colour in a kit is not a swatch in a list. It has a role, and each template asks for a role by name, so a headline is never drawn in a colour that merely happened to be in the palette.
| Role | What it does on a composite |
|---|---|
| Surface | The ground behind the scene, the shade that rises off the scene's edge so copy stays legible over any picture, and the compliance band |
| On surface | The headline, the sub-line and the compliance line |
| Primary | The badge's fill |
| Secondary | Supporting rules, such as the dividers in a spec sheet's column |
| Accent | The call to action's fill |
| On accent | The text on the badge and on the call to action |
Every role is a six-digit hex colour, # and all; shorthand, colour functions
and named colours are refused because a renderer and a browser read them
differently.
Each role also carries an intent, a sentence saying what it is for, which
the form lets you rewrite. The scene prompt describes each role's colour in
words (hue, saturation, lightness); the intent is what an agent reads in the
kit. The model is never handed a hex value; the exact colours stay with the
renderer that draws the copy.
The contrast check
Two pairs decide whether a still can be read: on surface over surface, and on accent over accent. The form shows the contrast ratio of each pair as you edit it, computed by the same function the renderer uses, and marks it Passes AA at 4.5:1 or above and Below AA under it. A low pair is a warning rather than a refusal: a brand may choose one, and the form makes sure it is a choice.
Typography
Three fields:
- Family. The typeface the copy is set in. Geist Sans ships with Tempio. Any
other family is fetched from Google Fonts at 400 and 700 when a still is
drawn and held in memory for the next one. A family that has only one weight
is drawn in that weight for both. A family that cannot be fetched is drawn in
Geist, and the still carries the
font_fallbackwarning. - Weight. The weight the brand is set in, fetched first. The templates set the headline, the badge and the call to action at 700 and the sub-line at 400; the compliance line is always set in Geist Mono, so a permit number reads the same on every still.
- Descriptor. Ten to fifteen words on how the type looks, such as "a heavy condensed sans with tight tracking, square counters and short descenders". The model cannot see a font file, so the descriptor is how the scene is told the brand's typographic mood. It never appears on the still.
Voice
Three to five lines on how the brand writes, up to 600 characters. Nothing
draws the voice: it is what an agent reads before it fills a headline, and what
the creative_brief prompt writes its five headline variants in.
The compliance line
A template for the small print a promotion must carry, with two slots:
{permit} for the first permit number and {permits} for every permit, joined
with commas. A template with no slots is a fixed line, drawn as written. No
other slot is accepted.
The line is a field typed on the still, from the kit's template: the form on
Presets shows the template beside the field, and the creative_brief prompt fills
it from the permit you give it. The four promo presets
require it, and a request without it is refused before anything is generated.
An agent that cannot find a permit writes MISSING: permit and asks you, and
that marker is refused too, so it never reaches a published ad.
Forbidden words
Up to 40 words or phrases the brand never uses. A request whose copy contains one is refused with the word and the field named, and the renderer checks again before it draws. The match is the whole word and ignores case: forbidding "win" refuses "Win big" and leaves "winter" alone.
Products and the logo
Up to 12 products, each a label, an image and a short description. A request names products by label, and the scene prompt describes them to the model; every preset except the graphic ad needs at least one. An image is picked from the media library or is a file in the workspace's own store, a still you generated included.
The logo is an image from the same places. The renderer draws it at 12% of the still's short side, in the place each template keeps for it, and never draws any logo but the kit's.
Import from a website
Import from website reads a public page and proposes a kit from it. It saves nothing: the proposal fills the form, and you change what it got wrong before you save.
What it reads is the page and its first two stylesheets, and it takes twenty seconds at most. From the colours it finds, the darkest becomes the surface, the most saturated the primary, the next the secondary, a warm saturated one the accent, and the two text roles are picked for contrast. It takes the name from the site's own name or title and the first font family it sees. The descriptor comes back empty, because a page names a typeface and never what it feels like; importing over a form you already filled keeps the descriptor you wrote.
The logo is named in the evidence under the proposal and is never fetched. Upload it, or pick it from the media library.
It reads http and https addresses on the public internet only. It resolves
the name before it connects, follows at most three redirects and checks each
one the same way, and refuses a page over 2 MB. A site that paints its colours
from scripts proposes the starter palette's roles wherever it found nothing,
because the page's scripts are never run.
Who can edit
An owner or an admin saves the kit and imports from a website. A member sees the kit read-only, under a banner saying who can change it. Any member can generate with the kit once it exists.
An agent reads the kit with get_brand_kit or the
tempio://workspace/brand-kit resource, proposes one with scrape_brand_kit,
and saves one with update_brand_kit, which refuses anyone but an owner or an
admin. Saving a kit changes no ad, so it writes no draft.
The same table holds a kit per ad account, which get_brand_kit reads when it
is given the account; the form edits the workspace's kit.
Create
Generating ad stills from a preset and your brand kit: the scene the model draws, the copy Tempio sets over it, the gallery, adding a ratio and editing copy, using a still in an ad, and what a generation costs.
Presets
The seven system presets a still is made from, what each is for, the fields and ratios it draws, and what a preset holds.