Core concepts

Brand kits

A brand kit is SteadyShot’s central hub for everything that defines how a brand looks and sounds: colors, fonts, logos, voice, characters, prompt templates, image rules, and art-direction tokens. Anything stored here automatically weaves into every generation that references the kit — no repeating yourself in every prompt.
Brand Kits is in private design. Open to a small set of design partners while we learn from real workflows. Drop your email to get early access → The concept docs below explain the model; the hub UI and the new v2 API endpoints require beta access.

What lives in a brand kit

The brand-kit hub is split into three groups in the sidebar: Brand Identity, SteadyShot, and Source Files.

  • Colors — structured rows with hex, RGB, Pantone, role (primary / accent / background / secondary / digital), and a digital-only flag. WCAG contrast checker runs on the primary + accent + background combinations automatically.
  • Typography — display, body, and mono fonts with weights and usage notes. Each font card shows a live preview using the font name as the CSS family (falls back to system if not installed locally).
  • Logos & icons — multi-variant grid: primary_dark, primary_light, icon, wordmark. SVG preferred, PNG/WebP/JPG also accepted. Each variant carries its own usage rules — rules starting with “Don’t / Never / Avoid” render with the red icon.
  • Voice & tone — a personality tag cloud (3-7 adjectives) plus Do/Avoid copy rules. Voice rules are short do/don’t sentences scoped to copy generation; the personality tags inject as guidance whenever a caption-style prompt fires.
  • Image rules — visual do/don’ts, categorized (composition / color / character / lighting / motion / other). These are the visual equivalent of voice rules and prepend to every image generation.
  • Art direction — three free-form fields: illustration_style, photography_style, and a general art_direction catch-all. Brand-level art direction that overrides any character’s local style.
  • Characters — link existing SteadyShot characters to a brand kit. Each linked character carries brand-scoped metadata (personality tags, appearance notes, brand_status, avatar emoji) on top of its base identity.
  • Prompt templates — reusable, parameterized recipes with {variables}. Variables auto-detect in the editor as you type. Each template can optionally link to a character.
  • Asset library — every generation made against the kit, searchable + filterable by character or date. Click any tile for a lightbox with prompt, score, and download.
  • Guidelines & docs — upload PDFs, ZIPs, SVGs, AI files. PDFs are parsed inline: hex codes get extracted and land in the Colors section with source=“parsed” for user review.
  • Brand assets (legacy) — the V1 reference-image table (logo / product / packaging refs). Still active; new uploads land here when you upload via the legacy /api/brand-kits/{id}/assets endpoint.

How brand data weaves into every generation

When a request includes brand_kit_id, SteadyShot fetches the kit and folds everything stored on it into a single BRAND LOCK section that gets appended to the prompt:

text
BRAND LOCK — must be obeyed:
Brand: "Acme Coffee". Reference images include the official logo and
brand assets — they must appear EXACTLY as shown, not redesigned, not
garbled, not recolored.
Approved colors only: Midnight (#1B1B2F), Spark Orange (#FF6400), ...
Brand voice / style: Warm, premium, slightly playful.
Illustration style: Flat vector, no gradients, 2px stroke, 8px corner radius.
Photography style: Natural light, warm cast, real materials.
Art direction: Focal subject in left-third, negative space ≥30%.
Always: Subjects fill 60-80% of frame / Show characters mid-action.
Never: Combine more than 3 brand colors per image / Crop at the face.

Fields that aren’t set are silently omitted from the block, so partial brand kits don’t pollute prompts with empty lines.

How brand + character compose

When you generate a scene with BOTH character_id and brand_kit_id:

  • Brand references go first (logo + product + packaging, capped at 4) so they never get truncated by character references.
  • Character references fill the remaining slots.
  • QA scoring runs both rubrics in parallel (character consistency + brand consistency) and blends them with weights that favor brand fidelity slightly more when brand kit is present.
For brand-only scenes (e.g. product hero shots, packaging composites with no character), omit character_id entirely. Credit cost stays at 1.

Creating one

UI: /brand-kit. The first time you visit, the page asks you to create or pick a kit, then drops you on the dashboard. Use the sidebar to fill in colors, fonts, logos, voice — anything you have. You don’t have to fill everything before generating; brand-locking gracefully skips empty fields.

API (V1 — broadly available):

bash
# Create brand kit (V1 — works without beta access)
curl -X POST https://steadyshot.ai/api/brand-kits \
  -H "Authorization: Bearer ss_live_xxx" \
  -F name="Acme Coffee" \
  -F logo=@logo.png \
  -F palette='[{"name":"primary","hex":"#0055FF"},{"name":"accent","hex":"#FFC400"}]' \
  -F brand_voice="Warm, premium, slightly playful"

# Upload a reference asset (product/packaging)
curl -X POST https://steadyshot.ai/api/brand-kits/{id}/assets \
  -H "Authorization: Bearer ss_live_xxx" \
  -F kind=product \
  -F label=hero-cup-front \
  -F image=@cup.png

# Generate a brand-only scene
curl -X POST https://steadyshot.ai/api/generate \
  -H "Authorization: Bearer ss_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"brand_kit_id":"{id}","prompt":"hero shot on a wooden table at sunrise"}'

# Generate a character-with-brand scene
curl -X POST https://steadyshot.ai/api/generate \
  -H "Authorization: Bearer ss_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"character_id":"{char_id}","brand_kit_id":"{kit_id}","prompt":"Luna serving an Acme Coffee espresso"}'
The v2 endpoints under /api/brand-kit/ (colors, fonts, logos, voice, image-rules, art-direction, templates, documents) are in private beta and not fully documented for external use yet. Beta partners can inspect them via the browser network tab while using the hub UI.

Suggested workflow

  • Upload your brand-guidelines PDF first (Guidelines & docs section). The parse pipeline extracts hex codes automatically and seeds the Colors section — saves you typing them out manually.
  • Add 3-5 image rules covering composition + color usage. These have the biggest leverage on output quality because they inject into every prompt.
  • Set art direction with a one-liner for illustration style (or photography style). Generations from this point forward default to that direction without you re-typing it.
  • Link your characters from the Characters section so the asset library and prompt templates can reference them by ID rather than name.
  • Save a few prompt templates for the campaigns you run regularly. Anyone on the team can re-run them with different variables without re-explaining the brand.