What we do

~/brand-design capability 06 of 6 · The system, automated

Consistent at a scale no team can check by hand.

Brand AI Tools are the AI-enabled tooling that keeps a brand system consistent and efficient at scale. Models tuned on your brand, guardrails that hold, and every part of it yours.

Typical length
6–10 weeks
Tooling
Flux · Firefly · ComfyUI
Ownership
You own the model

Illustration: a brand content pipeline in six stages — training set, tuned model, generation, automated brand check, human review by a brand lead, and publish — with job counts and a streaming run log.

$ brandctl --help six tools · one brand model

Six tools, one brand model

Generation starts from your identity, a check catches what slips, and a person signs off wherever the stakes are high.

USAGE brandctl <command> [flags]

COMMANDS

select a command

brandctl tune --image --language --from ./brand-system

Brand-tuned models

Image and language models fine-tuned on your identity, so generation starts on brand instead of drifting toward it.

People decideWhich references the model may learn from, and whether a version ships.

  1. brandctl tune --image --from ./brand-system/v7
  2. reading 2,418 references · 311 rules · 64 examples
  3. fine-tuning image model · epoch 12/12
  4. eval brand fidelity 0.93 ≥ gate 0.90 · awaiting sign-off

Illustrative run

$ brandctl curate ./references phase 01 · Ground · Wk 01–02

A model learns what it is shown. People choose what it sees.

Before any tuning, the brand system becomes a training set. An agent sorts, labels and rights-checks every reference and suggests a verdict; a person approves or rejects each one. Nothing enters the set without a name against it.

batch 14 · 0 left to decide A approve R reject U undo
  • A white porcelain teapot lit from the side against black

    ref-0231Product

    Studio 2 · owned

    Agent: approve · palette match 0.94

  • ref-0232Rules

    Brand system v7

    Agent: approve · tokens v7 · exact

  • A soft abstract wash of blue light

    ref-0233Mood

    Stock · licence ends

    Agent: reject · rights unclear

  • A single white seashell on a pale grey ground

    ref-0234Texture

    Studio 2 · owned

    Agent: approve · tone match 0.91

  • ref-0235Rules

    Archive 2019

    Agent: reject · superseded identity

  • A sculptural object casting a long shadow on a wall

    ref-0236Product

    Archive 2023 · owned

    Agent: approve · palette match 0.89

  • ref-0237Rules

    Brand system v7

    Agent: approve · type scale · exact

  • A ceramic vase on a table in soft daylight

    ref-0238Product

    Agency upload

    Agent: reject · near-duplicate of ref-0231

$ brandctl run --watch one brief · checked · approved · live

One brief in. Checked, approved and live in every format.

Generation starts from the tuned model with the identity locked. Every variant is scored by the brand check, only passing work reaches a person, and nothing publishes until someone approves it. Try a run, or watch one.

Interactive demo. Choose a product, market, format and mood, then press Generate. Four variants are scored for colour, clear space, tone and rights; variants that pass wait for your approval; approving one publishes it to six formats in nine markets.

Brief brand-locked

Product
Market
Format
Mood

Palette v7LockupClear spaceType scaleVoice

Product C · still life · Market 03 · 4:5 · calm — locked: palette v7, lockup, clear space, type, voice

Illustrative

Variant A

Pass · 0.91
  • Colour
  • Clear space
  • Tone
  • Rights

Variant B

Pass · 0.94
  • Colour
  • Clear space
  • Tone
  • Rights

Variant C

Fail · clear space
  • Colour
  • Clear space
  • Tone
  • Rights

Variant D

Blocked · rights
  • Colour
  • Clear space
  • Tone
  • Rights

Review queue Brand lead

Only variants that pass the check reach a person. Failures go back with the reason attached.

  • Variant APass · 0.91
  • Variant BPass · 0.94
  • C · DReturned to generation

Publish 54 of 54 live

Variant B approved by Brand lead · published to 6 formats × 9 markets · credentials signed

$ brandctl test ./guardrails runs on every model version and every output

Guardrails written as tests, not hopes.

Before anything is generated, the rules are written as tests that can fail. When one does, you see exactly what broke, what changed to fix it and who signed the fix off. The same suite runs again on every new model version.

guardrails.spec 11 tests

11 passed (1 after a fix) · 0 failing

  1. describe palette

    • uses palette v7 tokens only · ΔE ≤ 2.012ms

    • keeps text contrast at AA or above9ms

  2. describe logo

    • keeps clear space ≥ 1× mark height14ms

    • never recolours or stretches the lockup8ms

  3. describe voice

    • reads at tone score ≥ 0.8033ms

  4. describe rights

    • uses only references with cleared rights11ms

    • blocks the likeness of a real person17ms

  5. describe review

    • sends regulated claims to a person6ms

    • sends pricing and apologies to a person6ms

  6. describe log

    • records who, what, when and model version4ms

$ brandctl eval --gate release every version against the same eval set

A version ships when it clears the gate and a person signs it off.

Each tuned model is scored on a fixed evaluation set built from your brand. The gate is automatic; the release is not. A version that passes on numbers can still be held on judgement.

Compare version

Gate passed

v4.2 cleared all 6 gates. Released after sign-off by the Brand lead.

Illustrative Domain 0.50–1.00 · gate marked

  • Brand fidelity

    0.93

    Eval set rated against the identity · gate 0.90

    gate 0.90
  • Palette accuracy

    0.98

    Outputs within ΔE 2.0 of palette v7 · gate 0.95

    gate 0.95
  • Clear space held

    0.99

    Lockups placed inside the rule · gate 0.98

    gate 0.98
  • Tone score

    0.86

    Copy scored against the voice · gate 0.80

    gate 0.80
  • Review approval

    0.79

    Share approved at first human review · gate 0.70

    gate 0.70
  • Rights blocked

    1.00

    Unclear references stopped before render · gate 1.00

    gate 1.00

$ brandctl inspect 0409-b content credentials · signed manifest

Every output can say where it came from.

Each published asset carries a signed record: the reference it came from, the model version, every edit, every check and the person who approved it. Open any file and read its history.

The published asset: a white vase, a pear and grapes on a linen table
Asset
0409-b · Product C · Market 03
Signature
Valid · your key
Disclosure
AI-generated · edited by a person
Record
8 events · 4 people

Person Automated Illustrative

05 · Edit · a person decided

Crop and headline adjusted

A person tightened the crop and the headline. The edit is recorded, not hidden.

Who
Designer
What
Crop 4:5 safe area · kerning
When
09-03 11:48 UTC
Hash
5e2b…40f9
A reviewer leaning over a light table, checking a print by hand
Sign-off stays with people

$ brandctl vault ls ownership · You own the model

Weights, prompts, data and logs. Yours, all of it.

Who owns the trained model? You do. Weights, datasets, prompts and logs ship into your accounts. We do not retain them or train anything else on them.

Where a part runs is a practical choice. Who owns it is not.

Model weights, datasets, prompts and logs belong to you. Nothing is retained, resold or trained on elsewhere. Choose for each part whether it lives in your cloud or is run for you. The answer to “whose is it?” stays the same either way.

Rows of network cables and lit ports in a server rack
Your accounts · your keys
vault/your-brand owner Your brand Illustrative
  • .safetensors

    Image model weights

    v4.2 · fine-tuned on training set v7 · 4.1 GB

    In your cloud account · your keys owned by you

    Where image model weights runs
  • .json

    Language adapter and prompt set

    prompt set v3.1 · lexicon v3.1 · 38 MB

    In your cloud account · your keys owned by you

    Where language adapter and prompt set runs
  • .parquet

    Training set

    v7 · 2,418 references · rights records · 19 GB

    In your cloud account · your keys owned by you

    Where training set runs
  • .spec

    Eval set and guardrail tests

    11 guardrails · 640 eval cases · 210 MB

    In your cloud account · your keys owned by you

    Where eval set and guardrail tests runs
  • .log

    Output log

    every output · who, what, when, model · streaming

    Run for you · export or delete at any time owned by you

    Where output log runs
  • .rules

    Brand check rules

    311 rules · plugin and API · 2 MB

    Run for you · export or delete at any time owned by you

    Where brand check rules runs

4 in your cloud · 2 managed for you · 6 of 6 owned by you

$ brandctl deploy --log how the programme runs · 6–10 weeks

Shipped in stages, every stage logged.

The brand system becomes the training set. Guardrails are written as tests before anything is generated.

  1. deploy #01 · a41c9e2 queuedrunningsucceeded Wk 01–02

    Ground

    The brand system as training data. Assets, rules and examples curated, labelled and rights-checked.

    1. agentsorted and labelled 3,112 brand assets into 14 categories
    2. agentflagged 188 references with unclear rights
    3. personBrand lead approved training set v7 and the tool scope

    artefactsTraining setRights checkTool scope

  2. deploy #02 · 7f03bd1 queuedrunningsucceeded Wk 03–05

    Tune

    Models fine-tuned and evaluated against the brand. Guardrails written as tests, not hopes.

    1. agentfine-tuned the image model · 4 versions evaluated
    2. agentguardrails written as 11 tests · 640 eval cases
    3. personBrand lead signed off v4.2 at the release gate

    artefactsTuned modelsEval setGuardrails

  3. deploy #03 · c58e21a queuedrunningsucceeded Wk 06–08

    Build

    Brand check, generation and templates built into the tools your team uses. Every output logged.

    1. agentbrand check shipped as a design-tool plugin and an API
    2. agentgeneration pipeline wired into your asset library
    3. personDesign lead approved templates and locked slots

    artefactsBrand checkGeneration pipelineTemplate engine

  4. deploy #04 · 0e9d6f4 queuedrunningsucceeded Wk 09–10

    Run

    A pilot team live, the model re-tuned on what they make, and the whole thing handed over with your name on it.

    1. personpilot team live in Market 03
    2. agentre-tuned on 1,240 approved pilot outputs
    3. personhandover: weights, datasets, prompts and logs moved to your accounts

    artefactsPilotRe-tuneHandover

$ brandctl registry ls deliverables · 7 artefacts

Every artefact versioned, registered and handed over.

What the programme builds lands in a registry you control, each with a format, a version and a named owner. Pull any of it without asking us.

7 of 7 match Illustrative versions

  • U01 released v4.2.0

    Brand-tuned image model

    Image model fine-tuned on your identity, so generation starts on brand.

    Formats:Weightsyours

    Owner
    Your brand
    Size
    6.4 GB
    brandctl pull image-model@4.2.0
  • U02 released v3.1.0

    Brand-tuned language model or prompts

    Adapter and prompt set that write in your voice and lexicon.

    Formats:Weightsprompt set

    Owner
    Your brand
    Size
    380 MB
    brandctl pull language-kit@3.1.0
  • U03 released v2.3.1

    Brand check

    Scores any asset against the rules and returns fixes with reasons.

    Formats:PluginAPI

    Owner
    Your brand
    Size
    42 MB
    brandctl pull brand-check@2.3.1
  • U04 released v1.8.0

    Generation pipeline

    Generates variants from approved sources in every format you ship.

    Formats:ComfyUIAPI

    Owner
    Your brand
    Size
    120 MB
    brandctl pull gen-pipeline@1.8.0
  • U05 released v1.4.2

    Template engine

    Fills templates with content and keeps layout inside the rules.

    Formats:WebAPI

    Owner
    Your brand
    Size
    64 MB
    brandctl pull template-engine@1.4.2
  • U06 released v1.1.0

    Guardrails & eval set

    Tests and eval set every model version must pass before release.

    Formats:Tests

    Owner
    Your brand
    Size
    8 MB
    brandctl pull guardrails@1.1.0
  • U07 streaming live

    Output log & governance

    Who made what, with which model, and who approved it.

    Formats:Dashboard

    Owner
    Your brand
    Size
    Events today
    18,204
    brandctl pull output-log@live

$ brandctl report --outcomes what changes once it runs

Three jobs that keep running after we hand over.

The programme ends; the outcomes do not. Each one is a job that runs every day inside your tools, and each one reports back.

  • job/on-brand-by-defaultexit 0

    On brand by default

    Generation starts from your identity. The check catches what slips.

    1. generation starts from tuned model v4.2
    2. brand check runs on every output
    3. flagged work fixed or returned with a reason

    96%pass the check first time

    owner · Your brandschedule · continuousIllustrative

  • job/volume-without-driftexit 0

    Volume without drift

    Nine markets, six formats, one source. The system does the repetition; people do the judgement.

    1. 1 approved source in
    2. 6 formats × 9 markets out
    3. people review the judgement calls only

    54renditions per approved source

    owner · Your brandschedule · continuousIllustrative

  • job/yours-all-of-itexit 0

    Yours, all of it

    Model weights, datasets, prompts and logs belong to you. Nothing is retained, resold or trained on elsewhere.

    1. weights, datasets, prompts, logs → your accounts
    2. copies retained by us: 0
    3. trained on elsewhere: never

    0copies kept by us

    owner · Your brandschedule · continuousIllustrative

$ man brandctl questions enterprise teams ask first

Read the manual before you ask.

The questions that come up in the first meeting, answered plainly. Anything else goes in the brief.

Ask something else

NAME

brand-ai-tools — AI-enabled tooling that keeps a brand system consistent and efficient at scale

SYNOPSIS

brandctl [tune | check | generate | write | render | govern] --brand your-brand

Flux, Adobe Firefly and ComfyUI pipelines for image work; Gemini, OpenAI or Anthropic models for language, chosen per task on evidence. We hold no partner badges and swap tools when the evidence changes.

You do. Weights, datasets, prompts and logs ship into your accounts. We do not retain them or train anything else on them.

You need a defined identity. If the rules do not exist yet, we build Brand Systems first, because a model can only learn what has been decided.

Guardrails written as tests, a brand check on every output, and a human review step wherever the stakes are high. Every output is logged.

Let’s build what happens next.

Tell us what you’re building. We’ll answer straight.

Book a discovery call