# Ecommerce Product Analysis

> 电商产品图分析——从多张产品图抽取电商转化相关属性，构建锁定规格「产品档案 Product Bible」，作为产品跨图一致性与卖点提炼的共同数据底座。当电商出图流程需要理解产品、构建产品档案时使用。

- Skill: `anbanai/ecommerce-product-analysis` (Agent Skill)
- Install (CLI): `npx skillmds@latest add anbanai/ecommerce-product-analysis`
- Raw SKILL.md: https://api.skillmd.com/api/skills/anbanai/ecommerce-product-analysis/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: anbanai (https://skillmd.com/u/anbanai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/anbanai/ecommerce-product-analysis

---


# 电商产品图分析 → 产品档案 Product Bible

## 目标

把用户提供的多张产品图压成一份**锁定规格**，服务三个电商独有需求：
1. **产品跨图一致性**——后续所有素材（主图/详情/场景/SKU）必须让买家认出是同一件商品，产品档案是注入每个生成 prompt 的强制前缀块。
2. **按需选参考图**——逐张识别每张产品图展示的**产品部位**（茶汤/干茶/叶底/包装正面…），产出「产品图清单」。生成每张电商图时，只传该图描绘部位对应的那几张产品图（而非全部），并在 prompt 点名「与第 N 张完全一致」。
3. **卖点提炼**——文案 skill 据此提炼 FABE 卖点。

这是对**实物商品**的理解（品类/品牌/材质/包装/功能），不是对线稿角色配色的分析，也不是对种草笔记爆款的拆解——目标与维度完全不同。

---

## MCP 工具

| MCP 工具 | 用途 |
|----------|------|
| `analyze_image(project_id, file_path\|image_url, prompt)` | 逐张抽取产品属性（一次一张） |
| `compress_image(file_path, max_width)` | 产品图 >10MB 时先压缩再分析 |

`file_path` 为服务端注册的产品图 server-local 路径（≤10MB）；`image_url` 为 HTTPS。二选一。

---

## 分析流程

### 步骤 1：准备产品图清单

把 `$PRODUCT_PHOTOS`（来自 `$DIR/.anban-creator/products/index.json`，见主流程「产品图发现」）写入 `$DIR/product-photos.md`，逐张标注序号、来源路径、可见性（是否可访问/是否需压缩）。任一不可访问剔除并记录，**至少保留 1 张**；全不可访问则报错停止。

### 步骤 2：逐张抽取产品属性

对**每张**产品图调 `analyze_image`（逐张单张识别，一次一张），使用下方**电商属性抽取 prompt**。一张图可能只展示部分属性（如包装图只见包装文字，场景图见使用语境），多张互补。

**`subject` 部位标签是关键产物**——它决定后续生成时「这张图该被哪些电商图当参考」。务必为每张图给出明确的 subject（**按品类用对应部位词**：茶类=茶汤/干茶/叶底/包装；服饰=平铺/挂拍/细节/材质/模特；3C数码=正面/背面/接口/屏幕/配件/参数表；美妆个护=瓶身/膏体/质地/上脸/成分表；食品=成品/原料/包装正反/保质期标识；家居=整体/细节/使用场景；通用=包装正面/包装背面/产品本体/原料/成品/剖面/细节特写/使用场景/模特手持），看不清的标注置信 low。

**电商属性抽取 prompt 模板**：

```
你是电商商品视觉分析专家。分析这张产品图，仅基于图中可见内容，抽取以下电商转化相关属性，用简体中文返回严格 JSON：
{
  "subject": "这张图展示的是产品的哪个部位/视角/状态？按品类给对应部位词：茶类=茶汤/干茶/叶底/包装；服饰=平铺/挂拍/细节/材质/模特；3C数码=正面/背面/接口/屏幕/配件/参数表；美妆个护=瓶身/膏体/质地/上脸/成分表；食品=成品/原料/包装正反/保质期标识；家居=整体/细节/使用场景；通用=包装正面/包装背面/产品本体/原料/成品/剖面/细节特写/使用场景/模特手持。该字段决定本图后续被哪些电商图选作参考。",
  "category": "品类（如：无线蓝牙耳机/羽绒服/精华液）",
  "subcategory": "细分类目",
  "brand_logo": {"visible": true/false, "text": "图中可见的品牌/logo 文字", "position": "位置", "color": "颜色"},
  "colors": {"primary": "主色（给 HEX 如 #1A1A1A + 语义名 如哑光黑）", "secondary": ["辅色1", "辅色2"]},
  "materials": ["可见材质（如 ABS 塑料/羽绒/玻璃瓶）"],
  "shape": "形状轮廓描述（如：入耳式、圆柱瓶身 30ml、方盒）",
  "size_clues": "可见尺寸线索（如与手/桌面比例、标注的规格）",
  "packaging_text": ["包装/瓶身/标签上可见的文字（品名、规格、成分、slogan 等），原样转录"],
  "visible_features": ["可见功能/设计特征（如主动降噪、USB-C、防水等级标识）"],
  "selling_point_candidates": ["可推断的卖点候选（如长续航、便携、成分天然）"],
  "shooting_angle": "拍摄角度（正面/45°/俯拍/使用场景）",
  "scene": "场景类型与调性：底质（纯白底/实景/模特手持/桌面陈列）+ 用途（lifestyle 生活场景 / 功能演示 / 卖点可视化）+ 可推断的季节/受众暗示（如夏季户外 / 居家主妇 / 商务人士）",
  "confidence": "high/medium/low（low 触发条件：光线差/产品被遮挡/包装文字模糊/疑似非本品/角度无法判断主体；medium=部分属性靠推断）",
  "missing_or_unclear": ["这张图看不清或需其他图补充的属性"]
}
只返回 JSON，不要解释。看不清的属性留空或填 null，并记入 missing_or_unclear。
```

### 步骤 3：汇总成产品档案

把多张图的抽取结果合并去重，冲突项**以最清晰、打光最好、最代表商品的那张为准**并标注来源图序号。产出 `$DIR/product-bible.md`，结构：

```markdown
# 产品档案 Product Bible

## 锚点
- 最佳锚点参考图: $ANCHOR_REF = {选定的 server-local 路径}（来源：产品图 N，理由：最清晰/打光最好/最代表商品）

## 产品图清单（逐张识别产物 · 生成时按需选 ref 的查表依据）

**序号一经确定即在任务内固定**，作为生成 prompt「与【产品图清单】第 N 张完全一致」与视觉自检的稳定锚点（"第 N 张" = 本清单序号，非 ref 数组下标）。

> **握手机制（关键）**：本「产品图清单」（序号 + subject + server-local 路径）是 `ecommerce-visual-design` 的 **asset-plan 唯一查询表**——asset-plan 每张图填「所需产品图=[第 N 张(subject)]」时**必须读本清单**，按本张电商图描绘的部位匹配 subject，取对应序号的产品图作 ref。没有它，visual-design 无法知道「哪张是茶汤、哪张是叶底」，也无法点名「与第 N 张完全一致」。

| 序号 | subject 部位标签 | server-local 路径 | 该图可见产品信息（色泽/形态/包装文字/材质） |
|------|------------------|-------------------|----------------------------------------------|
| 1    | 包装正面         | `$DIR/.anban-creator/products/product_01.png` | 品牌文字「XX」/ 主色 #XXX / 哑光金盒 |
| 2    | 茶汤             | `.../product_02.png` | 汤色橙黄透亮 / 玻璃公道杯 |
| 3    | 干茶             | `.../product_03.png` | 条索紧结 / 墨绿润 |
| 4    | 叶底             | `.../product_04.png` | 红边显露 / 柔软亮 |

（上表为示例；实际按逐张识别结果填写，每张产品图一行。）

## 基础属性
- 品类: ...
- 细分类目: ...
- 品牌/logo: 文字=...，位置=...，颜色=...
- 主色: #XXXXXX（语义名）
- 辅色: ...
- 材质: ...
- 形状轮廓: ...
- 尺寸线索: ...

## 包装可见文字（原样转录，用于一致性校验）
- 品名: ...
- 规格: ...
- 成分/材质标: ...
- slogan: ...

## 可见功能与设计特征
- ...

## 卖点候选（供 copywriting skill 排序）
- ...

## 拍摄与场景
- 角度/场景: ...

## 一致性锁定项（生成时必须严格遵守）
- 品牌 logo 文字与颜色: ...
- 主色 HEX: ...
- 形状轮廓: ...
- 包装可见文字（不得增删改）: ...

## 缺失/低置信 (missing_data)
- ...
```

**一致性锁定项**是关键——这些是后续每个生成 prompt 的强制前缀块 `【产品档案·必须严格遵守】...` 的内容，视觉自检也据此派生。

### 步骤 4：选出最佳锚点

从产品图中选**最佳锚点** `$ANCHOR_REF`（server-local 路径）：最清晰、打光最好、最能代表商品全貌的一张。锚点用于一致性关键模块（主图①、详情核心场景）的 `ref_image_path`。理由写入档案。

---

## 常见失败与修复

| 问题 | 原因 | 修复 |
|------|------|------|
| 产品图 >10MB 无法 analyze | 超限 | 先 `compress_image` 再分析 |
| 多张图品牌/logo 矛盾 | 不同角度/版本 | 以包装文字最清晰那张为准，标注重复确认 |
| 颜色 HEX 不准 | 光线/白平衡 | 给语义色名 + 近似 HEX，标置信 medium |
| 某属性全部缺失 | 无对应角度图 | 记入 missing_data，降置信，不臆造 |
| 场景图混入非产品主体 | 背景杂物 | 区分产品主体与场景道具，档案只锁产品主体 |

---

## 产出

- `$DIR/product-bible.md`（锁定规格，含**「产品图清单」**：序号 | subject 部位标签 | server-local 路径 | 该图可见产品信息）
- `$DIR/product-photos.md`（产品图访问性清单与可见性）
- `$ANCHOR_REF`（最佳锚点 server-local 路径，写入档案与内部变量）

> 「产品图清单」的 subject 标签 + 稳定序号是 `ecommerce-visual-design`「按需选参考图 + 点名保真」的查表依据——没有它，生成时无法知道「哪张是茶汤、哪张是叶底」，也无法在 prompt 里精确点名「与第 N 张完全一致」。

