The difference between a set of images and one store lies inwhether the 200th SKU still looks like the 1st。
Rewriting the prompt every time can't achieve this—people forget, change words, switch phrasing. Only a reusable spec file can.
1. What it solves
| Without brand-kit | With brand-kit |
|---|---|
| Each skill writes its own model description | Defined in one place, all skills read the same one |
| Model faces differ across SKUs in the same store | Locked to the same face reference image |
| Color temperature drifts cold and warm, background drifts dark and light | Light position, color tone, and background hard-coded in the spec |
| Changing the tone once means digging through 26 prompts | Change one line of yaml |
2. Quick start
# 1. 生成模板
node scripts/brand.mjs --init > brand.yaml # 或直接改随技能分发的 examples/brand.yaml
# 2. 改成自己店铺的(见下方字段说明)
# 3. 看它会给某个技能追加什么
node scripts/brand.mjs --brand examples/brand.yaml --for flat-lay
# 4. 生成时带上,自动追加
node scripts/gen.mjs --task flat-lay --brand examples/brand.yaml \
--prompt 'On-model photo of the olive cable-knit sweater.' \
--images garment.jpg pose.jpg --save out/sku001.jpg
--brand Works for gen.mjs / run_loop.mjs / batch.mjs / video.mjs .
Add it when generating a whole batch, and the visual tone of the entire batch is locked in.
3. Fields
brand:
name: 示例品牌
tone: quiet minimalist, warm and lived-in, never glossy or commercial
model:
reference: assets/model/face-a.jpg # 锁脸
description: East Asian woman, late twenties, natural makeup
body: slim, height around 168cm
photography:
background: seamless off-white studio backdrop, RGB 248 248 246
lighting: soft large softbox from camera left, gentle fill, no hard shadows
camera: 85mm equivalent, eye level, shallow depth of field
grade: neutral white balance around 5200K, low contrast
crop: full body with headroom, product centered
layout:
margin: at least 8% empty margin on all sides
typeface: clean sans-serif, no decorative fonts
forbid:
- no text or watermark
- no oversaturated colors
compliance:
platform: amazon
Only the relevant sections go into the prompt: the detail-page skill reads layout but not model,
the watermark-removal skill reads neither. For the full mapping table see references/brand-schema.md。
4. Three lessons for writing a good spec
1. Write visual constraints in English, notes in Chinese. Image models respond more consistently to English visual terms,
tone / background / lighting write these directly in English;name ones like this are just for people, so be casual.
2. Write physical quantities, not adjectives. warm lighting The model interprets it differently every time;
neutral white balance around 5200K, soft large softbox from camera left only that is reproducible.
Write color values directly as RGB.
3. forbid is more effective than tone . Positive descriptions are easily diluted; prohibitions are hard constraints.
"What not to do" often stabilizes style better than "what to do."
5. Face lock
model.reference Give a clear front-facing face image, and it will be passed to the model as thelast reference image,
working together with the Model must stay consistent in the prompt.
| Requirement | Description |
|---|---|
| Front-facing, clear, evenly lit | Side profiles and backlighting won't lock |
| Face only, no complex background | Background will pollute the generation |
| Sufficient resolution | At least 512×512 |
| One fixed image for the whole store | Changing the image equals changing the person |
When the file isn't found, it only warns without erroring, and generation proceeds as usual—with one fewer reference image, the face is determined by the prompt description.
6. Execution flow
- When the user says "unify the style," first ask three things:Whether the model should be locked、Main color tone、Whether there are elements that must be avoided。
--initGenerate the template and fill it in based on the answers.- Run one SKU once with
--brandand once without for comparison, and have the user confirm the tone is right. - After confirmation, run the whole batch—the spec is meant for the whole batch; a single image won't show its value.
- Every subsequent image generation should include
--brand. Without it, it's as if there's no specification.
VII. Common Issues
| Symptom | Cause | What to Do |
|---|---|---|
| Adding brand makes it look less alike | Descriptions conflict with each other (for example, tone says minimalist,photography writes dramatic lighting) |
Read through it once and delete contradictory items |
| The model's face still changes | The reference image is not a frontal face, or the resolution is too low | Replace it with a standard frontal face image |
| The prompt is too long and gets truncated | The specification is written too finely | Keep only the items that truly affect the visuals, and delete irrelevant paragraphs |
| The detail page image includes the model description | Used --for in a way other than manual stitching |
Use --brand, it will automatically filter by skill |
Tips
- Put the specification into version control, together with the product data. It is an asset, not a temporary file.
- One per store. Do not share one copy across multiple stores and keep changing it; store each separately.
- Seasonal changes can be branched:
brand-aw25.yaml、brand-ss26.yaml, switching is just changing the file name.