You have a mascot you like. Image one is perfect. Image two has a different jaw, image three has a different jacket, and by image six the brand colour has drifted from teal to green. Consistency is the hard part of using AI images for a brand, and no single parameter solves it. This post is a workflow: reference sheet in, check list out, with what the vendor docs I could read on 2026-10-09 actually say.
What the docs I could read say (and what I could not)
Per the Gemini API image docs (a fetch-tool summary on 2026-10-09, then re-read as page text by an editor the same day, which corrected the table below), you can mix up to 14 reference images in one request, split by model:
| Model (as named in the docs) | Object images | Character images | Style references |
|---|---|---|---|
| Nano Banana 2 Lite (gemini-3.1-flash-lite-image) | up to 14 | N/A | N/A |
| Nano Banana 2.1 and Nano Banana 2 | up to 10 | up to 4 | N/A |
| Nano Banana Pro (gemini-3-pro-image) | up to 6 | up to 5 | up to 3 |
"N/A" is how the docs table lists those cells. The same page describes Nano Banana 2 Lite as not optimised for multiple reference inputs or multi-turn editing, and says every generated image carries a SynthID watermark. Model names and limits change quickly, so read the live docs before building on them.
OpenAI's image generation guide (read the same day, and re-read as page text by an editor) says you can combine several input images into one new image, and the edit endpoint accepts multiple images. For masked edits, the mask applies only to the first image when several are given, and masking is guided by the prompt, so the output may not follow the mask's shape. It also notes the model can struggle to keep recurring characters or brand elements visually consistent across separate generations. That is the vendor telling you consistency is not guaranteed.
What I could not verify: Midjourney's reference and seed parameters (docs returned 403), Stability's seed and style-control endpoints (the docs page I reached was gated), and Canva's tools. Where this post mentions them, it says "unverified" and tells you what to look up rather than stating how they behave.
Step 1: build a character spec before you generate anything
A reference image helps, but a written spec is what you check against. Write it once and reuse it.
CHARACTER SPEC: "Mira", mascot for a tea subscription brand
Fixed (never change):
- Round face, short black bob with straight fringe
- Mustard-yellow raincoat with two buttons, no hood
- Small round glasses, thin dark frames
- Teal (brand colour) tote bag on left shoulder
Variable (allowed to change):
- Pose, facial expression, background, camera angle
Style:
- Flat vector illustration, soft shadows, no outlines
Never include:
- Text, logos, real brands, other people
This is an untested template of mine; the names and colours are made up for the example. The point is the split between fixed and variable traits. Anything unlisted will drift.
Step 2: make a reference sheet
Generate one sheet, not many images, and treat it as the master.
- Ask for a front view, a three-quarter view and a side view of the character on a plain background, in one image.
- Ask for a second image with three expressions (neutral, happy, surprised).
- Pick the best result, fix problems by editing, and stop when it matches the spec. Do not move on with a sheet that is "close enough"; every later image inherits its mistakes.
- Save the sheet as PNG with a filename that includes the date and tool.
If your tool supports separate character and style references, keep them separate: character images show who, style images show how it looks. If it does not support style references, put the style in the text and rely on the character sheet for identity.
Step 3: a generation template that carries the references
For tools that take image input plus a prompt, reuse a single wrapper so only the scene changes.
Use the attached reference sheet as the character. Keep every
"Fixed" trait from the spec exactly. Do not redesign the character.
Scene: [Mira carries a parcel up a rainy street, three-quarter view]
Style: flat vector illustration, soft shadows, no outlines
Palette: brand teal #1A9A8F, mustard #E1A927 (use only these accents)
Output: 1:1, plain or simple background, no text in the image
Untested template; swap in your own hex values. Models treat hex codes as hints, not exact colour control, so check output colours with a colour picker.
Step 4: seed and style handling per tool, honestly
| Tool | Reference images | Seed | Style control | Status on 2026-10-09 |
|---|---|---|---|---|
| Google Gemini API image models | Verified in docs: up to 4 or 5 character refs by model | Not checked | Style refs on Nano Banana Pro only (3) | Verified (summarised page) |
| OpenAI image API | Verified: multiple input images supported | Not checked | Not checked | Partially verified; consistency not guaranteed per the guide |
| Midjourney | Unverified | Unverified | Unverified | Docs returned 403 |
| Stability AI | Unverified | Unverified | Unverified | API docs gated |
| Canva | Unverified | Unverified | Unverified | Pages returned 403 |
Rule of thumb that holds regardless of tool: a seed reproduces one result when everything else is identical. It does not carry a character across different prompts. Record the seed anyway, along with model version and every input image, so you can redo a specific frame.
Step 5: check each output against the spec
Do not eyeball. Use a checklist per image and reject on any miss.
- Face shape, hair and glasses match the sheet
- Clothing count correct (buttons, pockets, straps)
- Hands have five fingers and hold objects naturally
- Brand colour within tolerance (sample it)
- No stray text, logos or watermarks other than expected metadata
- Background style matches the rest of the set
You can ask a vision model to compare an output to the reference sheet and list differences. That is a useful first pass, but untested here, so treat it as a second pair of eyes. Our Claude vision guide covers sending two images for comparison.
Failure cases you should expect
- Accessory swap. A bag moves shoulders, glasses change shape. Fix: name the side and shape in the spec, and reject on a miss.
- Style creep. After a few edits in one conversation the image slides toward a generic look. Fix: restart from the original sheet and spec, not from the last output.
- Colour drift. The brand teal turns green under different lighting. Fix: ask for even lighting, then correct colour in an editor rather than prompting again.
- Text artefacts. Any text in the image may be garbled. Fix: leave space and add text in a layout tool.
- Mask surprises. OpenAI's guide says masked edits may not follow the mask's shape exactly. Fix: inspect the edge pixels before shipping.
- Lookalike risk. A character that resembles a real person or an existing franchise can cause trouble. Check before commercial use; see our licensing table and product ad prompts.
When to stop using AI for the character
If you need one character across dozens of fixed poses in print, or the character is a core brand asset, hire an illustrator to draw the master and use AI for backgrounds and variations. A hand-made asset is also easier to protect and license. For the edit-and-refine side of this process, see the product photo workflow.
Keep a style log
For every set, store: tool, model name and date, spec version, reference sheet filename, seed if shown, prompt, and the pass or fail checklist. When a model updates, rerun two old prompts against the same sheet and compare. If the look moved, you have proof, and a reason to pin a model version where the tool lets you.



