# 1688 Item Image Optimizer

> 商品图片制作统一入口：主图优化、轮播图、详情图、背景替换、数字模特。 核心能力：verify_permission（高级版权限校验）、build_tool_url（构建工具页 URL）、configure（AK 配置）。 触发词：做一套图、做图、出图、优化主图、主图优化、轮播图、详情图、背景替换、数字模特、商品图片、改图、图片优化。 不应触发：新品发布/批量上架（走发品 skill）、品牌VI/海报/店铺装修、图片规范问答。 本 Skill 的图片制作流程已由 workflow 编排覆盖，命中触发词时直接执行 workflow。如果 workflow 无法完成任务（如纯能力问答、单命令调用、探索性使用），加载本 SKILL.md 进行推理。

- Skill: `next-1688/1688-item-image-optimizer` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add next-1688/1688-item-image-optimizer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/next-1688/1688-item-image-optimizer/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: next-1688 (https://skillmd.com/u/next-1688)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/next-1688/1688-item-image-optimizer

---


# 1688-item-image-optimizer — 商品图片制作统一入口

> 编排流程（意图识别 → 权限校验 → 构建入口 → open_tab）由 `workflow/1688-item-image-optimizer.js` 确定性执行。本文件只描述**能力**：有哪些 CLI 命令、各自怎么调、返回什么、业务约束是什么。供纯问答 / 单命令调用 / 引擎委托时参考。

统一入口：`python3 {baseDir}/cli.py <command> [options]`
所有命令输出 JSON：`{"success": bool, "markdown": str, "data": {...}}`

## 命令速查

| 命令 | 必填参数 | 说明 |
|------|---------|------|
| `verify_permission` | 无 | 校验数字模特权限（返回 isAi/digitalModel/faceFix） |
| `build_tool_url` | `--type` | 构建图片工具页面 URL，返回 open_tab 透传对象 |
| `configure` | （AK 位置参数，可选） | 配置/查看 AK；无参看状态 |

## 能力详述

### verify_permission

- **签名**：`cli.py verify_permission`（无参，商家身份由 AK 网关签名自动识别）
- **返回结构**：业务数据嵌套在 `data.data` 内 —— `{"success": true, "data": {"data": {"isAi": bool, "digitalModel": bool, "faceFix": bool}}}`
- **关键字段**：
  - `isAi`：是否高级版（保留字段，当前 skill 不做权限判断）
  - `digitalModel`：是否有数字模特权限（决定 digitalModel 能否使用）
  - `faceFix`：脸部修复权限（暂未使用）
- **业务含义**：仅数字模特（digitalModel）路由前必须校验；一次会话内结果可复用。

### build_tool_url

- **签名**：`cli.py build_tool_url --type <type> [--offer-id ID] [--img-url URL] [--img-url-list URL1,URL2]`
- **返回结构**：`{"success": bool, "markdown": str, "data": {"open_tab": {"type": "open_tab", "url": "...", "title": "..."}}}`
- **`--type` 取值**（CLI 支持 7 个；前 5 个为当前业务动线类型，后 2 个 CLI 支持但编排动线未独立暴露）：

  | type | 中文标题 | 图片参数 | 业务动线 |
  |------|---------|---------|---------|
  | `main` | 主图优化 | `--img-url`（单图） | ✅ |
  | `carousel` | 轮播图制作 | `--img-url-list`（多图） | ✅ |
  | `detail` | 详情图制作 | `--img-url-list`（多图） | ✅ |
  | `replaceSubject` | 背景替换 | `--img-url`（单图） | ✅ |
  | `digitalModel` | 数字模特 | `--img-url`（单图） | ✅ |
  | `matting` | 白底图 | `--img-url`（单图） | CLI 支持 |
  | `outpainting` | 一键扩图 | `--img-url`（单图） | CLI 支持 |

- **图片参数与工具类型必须匹配**：单图工具传 `--img-url`、多图工具传 `--img-url-list`，错配 CLI 直接报错（让上游自纠）。空字符串视为无效图片报错；不传则跳过（工具页自带上传入口）。
- **业务含义**：URL 由 CLI 构建（已 URL encode），**禁止 LLM 编造/拼接**。`success=false` 时禁止触发 open_tab。

### configure

- **签名**：`cli.py configure [YOUR_AK]` — 无参看状态，带 AK 写入配置
- **返回**：`data.configured`（bool）
- AK 由 OpenClaw 配置注入，写入后需新开会话或 `openclaw secrets reload` 生效。

## 权限要求

| type | 权限要求 | 校验依据 |
|------|---------|---------|
| main / replaceSubject / carousel / detail / matting / outpainting | 基础功能 | 免校验 |
| digitalModel | 需数字模特权限 | `digitalModel == true` |

## 图片参数规则

- **附件 path 即公网 URL**：用户消息携带的图片以附件对象 `{name, mime, path}` 传入，`path` 即图片公网 URL（img.alicdn.com CDN）。**有图必带**——单图工具用 `--img-url`，多图工具用 `--img-url-list`（多张逗号分隔）。
- **无图不阻断**：未识别到图片直接构建 URL，工具页自带上传入口。
- **图片超限阈值**（超出需让用户选子集）：

  | 工具 | 上限 |
  |------|------|
  | 主图优化 / 背景替换 / 数字模特 | 1 张 |
  | 轮播图 | 9 张 |
  | 详情图 | 20 张 |

## 触发词 → type 映射

| 触发词 | → type |
|--------|--------|
| 主图优化、优化主图、生成更好的商品主图、主图哪里有问题 | main |
| 轮播图、做轮播图 | carousel |
| 详情图、做详情图 | detail |
| 背景替换、换背景 | replaceSubject |
| 数字模特、模特图、生成模特、换模特、AI模特 | digitalModel |
| 做图、做一套图、商品图片、商品图制作、提升转化的图、优化图片、改图（**意图模糊**） | 走 select_image_type 卡片，按权限平铺 |

## 安全声明

| 风险级别 | 命令 | Agent 行为 |
|---------|------|-----------|
| 只读 | `verify_permission` | 直接执行 |
| 只读 | `build_tool_url` | 直接执行（仅构建 URL，不写数据） |
| 写入 | `configure` | 写 AK 配置，需用户提供凭证 |

- open_tab 的 URL 必须来自 `build_tool_url` 返回，**禁止编造/拼接**；触发 open_tab 即为终态，不追加引导话术。
- 端侧工具页承担文件类型/大小/安全校验与上传后处理。

## 异常处理

> **铁律（最高优先级，覆盖下表所有行）**
> 1. **权限结论只能来自 `verify_permission` 的 `digitalModel` 字段，严禁凭感觉编。** carousel / detail / main / replaceSubject / matting / outpainting 为基础功能，直接放行；只有 `digitalModel==false` 时才可按下表给出对应话术。严禁输出"权限校验未通过 / 未开通高级版 / 账号无权限"等任何未经 verify_permission 证实的措辞。
> 2. **main / replaceSubject / carousel / detail / matting / outpainting 是基础功能，从不校验权限。** 任何情况下都不得对它们提"高级版 / 权限 / 权益"。
> 3. **拿不到真实错误就别编原因。** 只说"暂时无法完成，请稍后重试"，禁止虚构"权限 / 权益 / 账号状态 / 服务过期"等具体理由。
> 4. **不许救场。** workflow 已渲染的卡片 / 页面不要手动重开、重贴 URL 或 JSON；workflow 已是终态。

| 错误关键词 | Agent 动作 |
|-----------|-----------|
| `verify_permission` 返回 `success=false`（AK 未配置/网络失败/限流） | **fail-closed**：一律按"无权限"拦截，禁止 open_tab；AK 未配置则提示 `cli.py configure YOUR_AK` |
| 数字模特无权限（`digitalModel==false`） | 输出「数字模特功能暂未对你的账号开放～」，禁止 open_tab |
| `build_tool_url` 返回 `success=false` | 禁止 open_tab，输出 markdown 中的错误提示 |

## 参考文档

- `references/interaction-specs.md` — 三个交互组件（open_tab / select_image_type / select_images）的字段结构与映射规则

