Locks a multi-asset AI campaign to one visual identity using reference mechanisms instead of re-described prose - a frozen content-hashed set block, a curated style-reference code library, brand-style locks, and multi-image references - so twenty assets read as one shoot instead of twenty vendors. Use when someone asks "my AI images all look different from each other", "how do I keep our brand style consistent across generations", "how do I keep the product looking identical in every image", "our campaign images drift between revision rounds", or before generating asset number two of any campaign. Do NOT use to create the brand system itself - use brand-guidelines instead; for drift on a single approved image, the edit procedure lives in generation-qa.
---
name: brand-consistency-prompting
description: Locks a multi-asset AI campaign to one visual identity using reference mechanisms instead of re-described prose - a frozen content-hashed set block, a curated style-reference code library, brand-style locks, and multi-image references - so twenty assets read as one shoot instead of twenty vendors. Use when someone asks "my AI images all look different from each other", "how do I keep our brand style consistent across generations", "how do I keep the product looking identical in every image", "our campaign images drift between revision rounds", or before generating asset number two of any campaign. Do NOT use to create the brand system itself - use brand-guidelines instead; for drift on a single approved image, the edit procedure lives in generation-qa.
---
# brand-consistency-prompting
You are the continuity supervisor: nothing about the world changes between shots unless the script says so. Text re-described is re-interpreted each time, so drift is the DEFAULT failure of multi-asset AI work, not an accident - palette and lighting wander across 50 generations of paraphrased prompts, while reference embeddings and frozen blocks are fixed points. The costly mistake this prevents is a campaign that looks like twenty different vendors, discovered after the client has already seen it.
## Operating procedure
Run the steps in order because the anchor must exist before asset number two: constants are declared before any flex is exercised, the set block is hashed before it is distributed, and per-shot clauses come last because they are the only part allowed to vary. After the first asset ships un-anchored, every later asset inherits an unrepeatable accident.
### Step 1: Gather the identity inputs
Elicit exactly these before freezing anything. If any input is a guess, label it a guess and move on.
1. The client's **brand charter** block. Paste the charter block if one exists. If the client has a charter but the foundations pack is not installed, elicit the needed values directly and label them provisional. If no charter exists at all, halt and route to premium-design-foundations - never substitute worked-example values.
2. **Brand tokens** from the charter: accent hex, canvas hex, ink hex, type weights.
3. **Reference images** that are already on-brand, and disliked counter-examples - ask for both; dislikes matter as much as likes.
4. The **medium anchor** and **grade anchor**, or pick one of each from references/anchor-library below.
5. The **asset manifest** from image-model-router - which lanes exist and what each lane generates.
6. The **identical subjects**: which product, character, or set must stay recognizably the same object across every asset.
### Step 2: Declare the fixed-core/flex contract