Claude Skill

brand-kit

店铺品牌视觉锁定。一份 brand.yaml 定义模特、色温、构图、留白与文案语气,所有生图技能读它,保证跨 SKU 视觉统一。当用户说「统一风格」「同一个模特」「店铺调性」「品牌规范」「几百个 SKU 看起来像一家店」时使用。

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download dlazy-ai-ecommerce-skills-skills_brand-kit-c022f20.zip · 23 KB
Part of dlazy-ai/ecommerce-skills — 26 skills

Install

skills CLI npx skills add https://github.com/dlazy-ai/ecommerce-skills/tree/main/skills/brand-kit
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install dlazy-ai-ecommerce-skills@llmmart
Git git clone https://github.com/dlazy-ai/ecommerce-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole dlazy-ai/ecommerce-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

brand-kit — 店铺视觉统一

一套图和一家店的区别,在于第 200 个 SKU 是否还长得像第 1 个。

靠每次重写 prompt 做不到这件事——人会忘、会改词、会换说法。 靠一份可复用的规范文件才做得到。


一、它解决什么

没有 brand-kit 有 brand-kit
每个技能各写各的模特描述 一处定义,全部技能读同一份
同店铺 SKU 模特脸不一样 锁定同一张脸参考图
色温忽冷忽暖、背景忽深忽浅 光位、色调、背景写死在规范里
改一次调性要翻 26 个 prompt 改一行 yaml

二、快速上手

# 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 对 gen.mjs / run_loop.mjs / batch.mjs / video.mjs 都有效。 整批出图时加上它,一整批的视觉基调就锁住了。


三、字段

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

只有相关的段落会进 prompt:详情页技能读 layout 但不读 model, 去水印技能两个都不读。完整对照表见 references/brand-schema.md。


四、写好规范的三条经验

1. 用英文写画面约束,中文写备注。 图像模型对英文画面词的响应更稳定, tone / background / lighting 这些直接写英文;name 这类只给人看的随意。

2. 写物理量,不写形容词。 warm lighting 模型每次理解都不同; neutral white balance around 5200K, soft large softbox from camera left 才可复现。 色值直接写 RGB。

3. forbid 比 tone 更管用。 正面描述容易被稀释,禁止项是硬约束。 「不要什么」往往比「要什么」更能稳住风格。


五、锁脸

model.reference 给一张清晰正脸图,它会作为最后一张参考图传给模型, 配合 prompt 里的 Model must stay consistent 一起生效。

要求 说明
正脸、清晰、光线均匀 侧脸和逆光锁不住
只有脸,别带复杂背景 背景会污染生成
分辨率够 至少 512×512
全店固定一张 换图等于换人

找不到文件时只警告不报错,生成照常进行——少一张参考图,脸就由 prompt 描述决定。


六、执行流程

  1. 用户说「统一风格」时,先问三件事:模特要不要锁死、主色调、有没有必须避免的元素。
  2. --init 生成模板,按回答填。
  3. 拿 1 个 SKU 跑一次带 --brand 和不带的对比,让用户确认调性对了。
  4. 确认后再跑整批——规范是给整批用的,单张看不出价值。
  5. 之后每次出图都带 --brand。不带就等于没有规范。

七、常见问题

现象 原因 怎么办
加了 brand 反而更不像 描述互相打架(比如 tone 说极简,photography 写戏剧光) 通读一遍,删掉矛盾项
模特脸还是会变 参考图不是正脸,或分辨率太低 换一张标准正脸图
prompt 太长被截断 规范写太细 只保留真正影响视觉的项,删掉无关段落
详情页图带上了模特描述 用了 --for 之外的方式手工拼接 用 --brand,它会自动按技能过滤

Tips

  • 规范进版本库,和商品数据放一起。它是资产,不是临时文件。
  • 一个店铺一份。多店铺别共用一份改来改去,各存各的。
  • 换季可以分支:brand-aw25.yaml、brand-ss26.yaml,切换只是换个文件名。
Files (ecommerce-skills)
  • assets
    • brand.example.yaml 1.6 KB
      # ⚠️ 由 scripts/build-skills.mjs 从 shared/assets/brand.example.yaml 同步生成,不要直接改这里。
      # 店铺品牌视觉规范 —— 所有生图技能读这一份,保证几百个 SKU 看起来像同一家店。
      #   node scripts/brand.mjs --brand brand.yaml --for flat-lay
      #   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'
      
      brand:
        name: 示例品牌
        # 一句话概括调性,会原样进 prompt
        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, shoulder-length black hair
        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, slightly lifted blacks
        crop: full body with headroom, product centered
      
      layout:
        # 给带排版的技能(主图 / 详情页)用
        margin: at least 8% empty margin on all sides
        typeface: clean sans-serif, no decorative fonts
        text_color: near-black on light background
      
      forbid:
        - no visible brand logos other than the product's own
        - no text or watermark
        - no exaggerated poses or dramatic wind effects
        - no oversaturated colors
      
      # 可选:把这些直接写进合规目标,生成时就按平台要求出图
      compliance:
        platform: amazon
      
  • examples
    • brand.yaml 1.6 KB
      # ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成,不要直接改这里。
      # 店铺品牌视觉规范 —— 所有生图技能读这一份,保证几百个 SKU 看起来像同一家店。
      #   node scripts/brand.mjs --brand brand.yaml --for flat-lay
      #   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'
      
      brand:
        name: 示例品牌
        # 一句话概括调性,会原样进 prompt
        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, shoulder-length black hair
        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, slightly lifted blacks
        crop: full body with headroom, product centered
      
      layout:
        # 给带排版的技能(主图 / 详情页)用
        margin: at least 8% empty margin on all sides
        typeface: clean sans-serif, no decorative fonts
        text_color: near-black on light background
      
      forbid:
        - no visible brand logos other than the product's own
        - no text or watermark
        - no exaggerated poses or dramatic wind effects
        - no oversaturated colors
      
      # 可选:把这些直接写进合规目标,生成时就按平台要求出图
      compliance:
        platform: amazon
      
  • references
    • brand-schema.md 2.5 KB
      <!-- 由 scripts/build-skills.mjs 从 shared/references/brand-schema.md 同步生成,不要直接改这里。 -->
      # brand.yaml 字段说明
      
      一份文件定义店铺的视觉规范,所有生图技能读它。改一处,全店跟着变。
      
      ```yaml
      brand:
        name: 品牌名                    # 仅用于记录
        tone: 一句话调性                # 原样进 prompt,写英文效果更稳
      
      model:                           # 只有出人像的技能会读
        reference: assets/model/face-a.jpg   # 锁脸:会作为额外参考图传入
        description: 模特外形描述        # 英文
        body: 身形与身高
      
      photography:                     # 出实拍类图的技能会读
        background: 背景描述
        lighting: 光位
        camera: 镜头与视角
        grade: 色调与白平衡
        crop: 景别与构图
      
      layout:                          # 只有带排版的技能会读(主图 / 详情页)
        margin: 留白要求
        typeface: 字体倾向
        text_color: 文字颜色
      
      forbid:                          # 硬性禁止项,会拼成一句 Hard constraints
        - no text or watermark
        - no oversaturated colors
      
      compliance:
        platform: amazon               # 可选:默认合规目标
      ```
      
      ## 哪个技能读哪几段
      
      | 段落 | 读它的技能 |
      | --- | --- |
      | `brand.tone` | 全部 |
      | `model` | 出人像的:flat-lay、wear-everything、image-fusion、one-shot、fission-pattern、creative-scene、clothing-grass-planting、batch-image、三个视频技能、listing-optimizer |
      | `photography` | 出实拍类图的(含上面这些,再加 item-change-background、to-3d、clothing-detail、item-repair) |
      | `layout` | 带排版的:item-detail、item-selling-point、listing-optimizer、cross-border-localize |
      | `forbid` | 全部 |
      
      不相干的段落不会进 prompt——给详情页技能塞模特脸的描述只会干扰它。
      
      ## 用法
      
      ```bash
      node scripts/brand.mjs --init > brand.yaml           # 生成模板
      node scripts/brand.mjs --brand brand.yaml --for flat-lay          # 看会追加什么
      node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'   # 自动追加
      ```
      
      `--brand` 对 `gen.mjs` / `run_loop.mjs` / `batch.mjs` / `video.mjs` 都有效。
      
      ## 注意
      
      - `model.reference` 路径相对于**运行命令的目录**,不是 brand.yaml 所在目录。
      - 文件找不到时只警告不报错,生成照常进行(少一张参考图而已)。
      - 支持的是 YAML 的常用子集:2 空格缩进、映射、标量、`- ` 列表。
        锚点、多行标量这些没实现——用到了就换成 `brand.json`,同样能读。
      
    • provider-cli.md 4.7 KB
      <!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成,不要直接改这里。 -->
      # 后端调用参考
      
      技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里,
      **用到时再读**,不占技能的常驻上下文。
      
      ---
      
      ## 一、认证
      
      ### 默认后端 dLazy
      
      ```bash
      dlazy login            # 设备码流程,远程 shell 也能用,自动写入本地配置
      dlazy auth set <KEY>   # 已有 key 时直接写入
      ```
      
      key 存在用户配置目录(macOS/Linux `~/.dlazy/config.json`,Windows `%USERPROFILE%\.dlazy\config.json`),
      权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。
      
      手动获取:登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。
      key 按组织隔离,可随时轮换或吊销。
      
      ### 其他后端
      
      本技能库不锁定单一厂商。配好任意一家的 key 即可跑:
      
      | 后端 | 环境变量 | 说明 |
      | --- | --- | --- |
      | `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认,最省事 |
      | `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |
      | `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |
      | `fal` | `FAL_KEY` | |
      | `replicate` | `REPLICATE_API_TOKEN` | |
      | `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟,模型 ID 需按开通情况填 |
      
      选路优先级:`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。
      
      ```bash
      node scripts/gen.mjs --doctor     # 看当前哪个后端可用
      ```
      
      各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /
      `GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变,以各家最新文档为准。**
      
      ---
      
      ## 二、两种调用方式
      
      ### 方式 A:统一入口(推荐)
      
      ```bash
      node scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg
      ```
      
      它负责:后端选路、默认尺寸档位、失败重试(429/5xx 指数退避)、落盘建目录、成本估算。
      
      ```bash
      node scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费,只看要发什么
      node scripts/gen.mjs --help
      ```
      
      ### 方式 B:直接用 dLazy CLI
      
      不想引入 Node 依赖时,技能正文里的 `dlazy ...` 命令可以原样执行,效果等价。
      
      ```bash
      npx @dlazy/cli@1.2.3 <command>     # 不装全局二进制
      ```
      
      - CLI 源码:[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`
      
      ---
      
      ## 三、数据流向
      
      调用 dLazy 时:提示词与参数发往 `api.dlazy.com`;传入的本地图片会上传到 `files.dlazy.com`
      供模型读取;产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。
      换成其他后端时,数据流向对应厂商,不经过 dLazy。
      
      ---
      
      ## 四、输出结构
      
      `gen.mjs`(加 `--json`):
      
      ```json
      {
        "ok": true,
        "task": "flat-lay",
        "provider": "dlazy",
        "model": "gpt-image-2",
        "files": ["docs/flat-lay/output-sku001.jpg"],
        "texts": [],
        "estimatedCredits": 60,
        "elapsedMs": 58213
      }
      ```
      
      dLazy CLI 原生:
      
      ```json
      {
        "ok": true,
        "result": {
          "tool": "gpt-image-2",
          "data": { "urls": ["https://files.dlazy.com/data/ai/....jpg"] },
          "savedPath": "docs/flat-lay/example-output.jpg"
        }
      }
      ```
      
      加 `--no-wait` 的异步任务不返回 `data`,返回 `task: { generateId, status }`,
      用 `dlazy status <generateId> --wait` 轮询。
      
      文本类模型(如质检)产出在 `result.data.texts[0]`:
      
      ```bash
      dlazy claude-sonnet-5 --prompt '...' --images x.jpg \
        | python3 -c 'import sys,json;print(json.load(sys.stdin)["result"]["data"]["texts"][0])'
      ```
      
      ---
      
      ## 五、错误处理
      
      | Code | 类型 | 示例 |
      | --- | --- | --- |
      | 401 | 未授权 / 无 key | `ok: false, code: "unauthorized"` |
      | 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |
      | 502 | 本地文件读不到 | `Error: Image file not found: ...` |
      | 503 | 余额不足 | `ok: false, code: "insufficient_balance"` |
      | 503 | 服务端错误 | `HTTP status code error (500)` |
      | 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |
      
      **给 Agent 的硬性要求**
      
      1. 命中 `insufficient_balance` → 明确告诉用户算力不足,并给出充值入口
         <https://dlazy.com/dashboard/organization/settings?tab=credits>
      2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>
         取 key,用 `dlazy auth set <key>` 存好再继续。
      3. 用 `gen.mjs` 时,429 与 5xx 已自动重试;仍失败才向用户报错。
      4. **不要**为了「跑通」而偷偷降级参数(尺寸、档位、批量),先问用户。
      
  • scripts
    • lib
      • miniyaml.mjs 2.8 KB · in bundle
      • providers.mjs 11.9 KB · in bundle
      • tasks.json 3.1 KB
        {
          "_note": "技能 → 默认模型与参数。dlazy 列为默认后端的模型名;其他后端走 providers.mjs 的通用映射,可用 GEN_MODEL_<PROVIDER> 覆盖。",
          "_credits": { "gpt-image-2": 60, "seedream-5.0": 30, "seedream-5.0-pro": 45, "banana-pro": 25, "claude-sonnet-5": 3 },
          "tasks": {
            "flat-lay":                { "model": "gpt-image-2",      "size": "1024x1536", "quality": "high",   "format": "jpeg" },
            "wear-everything":         { "model": "gpt-image-2",      "size": "1024x1536", "quality": "medium", "format": "jpeg" },
            "image-fusion":            { "model": "seedream-5.0",     "size": "3:4",       "resolution": "2k" },
            "one-shot":                { "model": "gpt-image-2",      "size": "1024x1536", "quality": "medium", "format": "jpeg" },
            "fission-pattern":         { "model": "gpt-image-2",      "size": "1024x1536", "quality": "medium", "format": "jpeg" },
            "item-detail":             { "model": "seedream-5.0-pro", "size": "3:4",       "resolution": "2k" },
            "creative-scene":          { "model": "banana-pro",       "size": "1024x1536", "format": "jpeg" },
            "batch-image":             { "model": "seedream-5.0",     "size": "3:4",       "resolution": "2k" },
            "to-3d":                   { "model": "gpt-image-2",      "size": "1024x1024", "quality": "high",   "format": "jpeg" },
            "clothing-extraction":     { "model": "gpt-image-2",      "size": "1024x1024", "quality": "high",   "format": "jpeg" },
            "fabric-on-body":          { "model": "gpt-image-2",      "size": "1024x1536", "quality": "high",   "format": "jpeg" },
            "clothing-detail":         { "model": "gpt-image-2",      "size": "1024x1024", "quality": "high",   "format": "jpeg" },
            "clothing-grass-planting": { "model": "gpt-image-2",      "size": "1024x1536", "quality": "medium", "format": "jpeg" },
            "item-selling-point":      { "model": "seedream-5.0-pro", "size": "1:1",       "resolution": "2k" },
            "item-change-background":  { "model": "gpt-image-2",      "size": "1024x1024", "quality": "high",   "format": "jpeg" },
            "remove-watermark":        { "model": "gpt-image-2",      "size": "1024x1024", "quality": "high",   "format": "jpeg" },
            "material-enhancement":    { "model": "gpt-image-2",      "size": "1024x1024", "quality": "high",   "format": "jpeg" },
            "item-repair":             { "model": "gpt-image-2",      "size": "1024x1024", "quality": "high",   "format": "jpeg" },
            "detect-task":             { "model": "claude-sonnet-5",  "text": true },
            "listing-optimizer":       { "model": "gpt-image-2",      "size": "1024x1024", "quality": "high",   "format": "jpeg" },
            "cross-border-localize":   { "model": "seedream-5.0-pro", "size": "1:1",       "resolution": "2k" },
            "brand-kit":               { "model": "gpt-image-2",      "size": "1024x1536", "quality": "high",   "format": "jpeg" },
            "platform-compliance":     { "model": "claude-sonnet-5",  "text": true },
            "main-image-video":        { "model": "$DLAZY_VIDEO_MODEL", "video": true },
            "product-video-ad":        { "model": "$DLAZY_VIDEO_MODEL", "video": true },
            "ugc-testimonial":         { "model": "$DLAZY_VIDEO_MODEL", "video": true }
          }
        }
        
    • brand.mjs 4.4 KB · in bundle
    • gen.mjs 9.3 KB · in bundle
  • skill.md 5 KB
    ---
    name: brand-kit
    description: 店铺品牌视觉锁定。一份 brand.yaml 定义模特、色温、构图、留白与文案语气,所有生图技能读它,保证跨 SKU 视觉统一。当用户说「统一风格」「同一个模特」「店铺调性」「品牌规范」「几百个 SKU 看起来像一家店」时使用。
    ---
    
    # brand-kit — 店铺视觉统一
    
    一套图和一家店的区别,在于**第 200 个 SKU 是否还长得像第 1 个**。
    
    靠每次重写 prompt 做不到这件事——人会忘、会改词、会换说法。
    靠一份可复用的规范文件才做得到。
    
    ---
    
    ## 一、它解决什么
    
    | 没有 brand-kit | 有 brand-kit |
    | --- | --- |
    | 每个技能各写各的模特描述 | 一处定义,全部技能读同一份 |
    | 同店铺 SKU 模特脸不一样 | 锁定同一张脸参考图 |
    | 色温忽冷忽暖、背景忽深忽浅 | 光位、色调、背景写死在规范里 |
    | 改一次调性要翻 26 个 prompt | 改一行 yaml |
    
    ---
    
    ## 二、快速上手
    
    ```bash
    # 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` 对 `gen.mjs` / `run_loop.mjs` / `batch.mjs` / `video.mjs` 都有效。
    整批出图时加上它,一整批的视觉基调就锁住了。
    
    ---
    
    ## 三、字段
    
    ```yaml
    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
    ```
    
    **只有相关的段落会进 prompt**:详情页技能读 `layout` 但不读 `model`,
    去水印技能两个都不读。完整对照表见 [`references/brand-schema.md`](references/brand-schema.md)。
    
    ---
    
    ## 四、写好规范的三条经验
    
    **1. 用英文写画面约束,中文写备注。** 图像模型对英文画面词的响应更稳定,
    `tone` / `background` / `lighting` 这些直接写英文;`name` 这类只给人看的随意。
    
    **2. 写物理量,不写形容词。** `warm lighting` 模型每次理解都不同;
    `neutral white balance around 5200K, soft large softbox from camera left` 才可复现。
    色值直接写 RGB。
    
    **3. `forbid` 比 `tone` 更管用。** 正面描述容易被稀释,禁止项是硬约束。
    「不要什么」往往比「要什么」更能稳住风格。
    
    ---
    
    ## 五、锁脸
    
    `model.reference` 给一张清晰正脸图,它会作为**最后一张参考图**传给模型,
    配合 prompt 里的 `Model must stay consistent` 一起生效。
    
    | 要求 | 说明 |
    | --- | --- |
    | 正脸、清晰、光线均匀 | 侧脸和逆光锁不住 |
    | 只有脸,别带复杂背景 | 背景会污染生成 |
    | 分辨率够 | 至少 512×512 |
    | 全店固定一张 | 换图等于换人 |
    
    找不到文件时只警告不报错,生成照常进行——少一张参考图,脸就由 prompt 描述决定。
    
    ---
    
    ## 六、执行流程
    
    1. 用户说「统一风格」时,先问三件事:**模特要不要锁死**、**主色调**、**有没有必须避免的元素**。
    2. `--init` 生成模板,按回答填。
    3. 拿 1 个 SKU 跑一次带 `--brand` 和不带的对比,让用户确认调性对了。
    4. 确认后再跑整批——规范是给整批用的,单张看不出价值。
    5. 之后每次出图都带 `--brand`。不带就等于没有规范。
    
    ---
    
    ## 七、常见问题
    
    | 现象 | 原因 | 怎么办 |
    | --- | --- | --- |
    | 加了 brand 反而更不像 | 描述互相打架(比如 `tone` 说极简,`photography` 写戏剧光) | 通读一遍,删掉矛盾项 |
    | 模特脸还是会变 | 参考图不是正脸,或分辨率太低 | 换一张标准正脸图 |
    | prompt 太长被截断 | 规范写太细 | 只保留真正影响视觉的项,删掉无关段落 |
    | 详情页图带上了模特描述 | 用了 `--for` 之外的方式手工拼接 | 用 `--brand`,它会自动按技能过滤 |
    
    ---
    
    ## Tips
    
    - **规范进版本库**,和商品数据放一起。它是资产,不是临时文件。
    - **一个店铺一份**。多店铺别共用一份改来改去,各存各的。
    - **换季可以分支**:`brand-aw25.yaml`、`brand-ss26.yaml`,切换只是换个文件名。
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related