Picset AI 用于设计并制作单张商品主图、单张独立详情图、多张主图套图、多张独立详情图套图、主图与详情图组合套图、Listing 图和多张统一风格的电商图片。适用于用户提出电商套图、商品套图、主图、详情图、电商图、Listing 图、上架图、卖点图、功能图、场景图、纵向详情长图或长详情页等商品图片需求,以及指定 M1、D2 等编号进行单张重做、画面修改或文字修改时使用。支持 Amazon、淘宝、天猫、1688、Temu、TikTok Shop、拼多多、抖音电商、OZON、独立站、Shopify、Shopee、Alibaba.com、AliExpress、SHEIN、京东等主流电商平台。
Scanned 9/8/2026
Install to Claude Code
npx -y skills add infometa/workbuddyskills --skill picset-commerce-image-suite --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Picset Commerce Image Suite?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/infometa-picset-commerce-image-suite)More formats (shields.io, HTML) on the badges page.
---
name: picset-commerce-image-suite
description: "Picset AI 用于设计并制作单张商品主图、单张独立详情图、多张主图套图、多张独立详情图套图、主图与详情图组合套图、Listing 图和多张统一风格的电商图片。适用于用户提出电商套图、商品套图、主图、详情图、电商图、Listing 图、上架图、卖点图、功能图、场景图、纵向详情长图或长详情页等商品图片需求,以及指定 M1、D2 等编号进行单张重做、画面修改或文字修改时使用。支持 Amazon、淘宝、天猫、1688、Temu、TikTok Shop、拼多多、抖音电商、OZON、独立站、Shopify、Shopee、Alibaba.com、AliExpress、SHEIN、京东等主流电商平台。"
---
# Picset 电商套图
## 职责与边界
规划商品主图、独立详情图、主图与详情图组合套图、Listing 图片和纵向详情长图,并在同一套视觉系统内处理指定图片返工。
开始前完整读取并遵守 [公共交接协议](../shared/handoff-protocol.md)。使用主 Skill 传入的同一份 `HandoffContext`,不要另建一份会话事实。
### 直接入口
平台可以直接触发本子 Skill。如果没有收到 `HandoffContext`,按公共协议初始化一份空的 `HandoffContext`,再把当前用户输入和已有素材写入对应字段。不得创建不同字段或第二套上下文结构;后续仍返回公共协议规定的 `HandoffReturn`。
处理单张商品主图和单张独立商品详情图。不要处理普通创意单图或生图模型选择。不要处理 Amazon A+、PSD 分层、商品原图精修,以及对已有图片进行长图拼接或切片。
第一版复用现有 `agent-mcp-v1` 完成报价、上传、生成与结果查询。不要自行调用其他图片服务。
## 不可越过的草稿确认门
本地附件到达时先读取附件并建立、展示 `SuiteDraft`。只有
`draft_confirmation.status == confirmed` 才能进入快速积分报价。在此之前禁止调用
`quote_commerce_image_credits`、获取 STS、执行上传器、登记素材或提交生成。草稿确认
只能授权报价;下文固定上传链路只适用于报价后收到新的明确积分确认之后。
## 固定状态流
```text
读取本地附件 → 建立并展示 SuiteDraft → 用户修改 → 草稿方案确认 → 快速积分报价 → 积分确认 → 上传并登记素材 → 生成 prompts 并提交 → 静默轮询 → 下载并在宿主内预览 → 稳定编号展示
```
始终更新同一份 `SuiteDraft`,不要在用户修改后重建无关部分。
## 渐进式首轮
每次最多追问一个阻塞问题。不要让用户填写完整表单。
- 同时缺少商品图和平台时,回复:"请上传商品图,并告诉我这套图主要用于哪个平台?默认规划 5 张主图 + 6 张独立详情图。"这是一个同时解除素材与平台阻塞的组合问题。
- 已有商品图但缺少平台时,只问:"这套图主要用于哪个平台?"
- 已知平台但缺少商品图时,只要求上传商品图。
- 用户问"怎么做"时,只说明三个步骤:`上传素材 → 检查并确认方案 → 确认费用并生成`。
- 只有用户明确说"查看选项"时,才一次展开平台、市场、语言、比例、数量、风格和文案选项。
- 其他非阻塞信息先根据可靠素材起草,再在草稿中标明可修改。只有无法可靠确认且会改变商业表达的关键事实才追问。
- 缺少卖点只影响单张图片时,把该图片标为待补充,不把它变成整套阻塞问题。用自然语言修改示例邀请用户稍后补充,不使用"请先告诉我"之类会阻断草稿推进的句式。
## 平台推荐
覆盖 Amazon、淘宝、天猫、1688、Temu、TikTok Shop、拼多多、抖音电商、OZON、独立站、Shopify、Shopee、阿里巴巴国际站、Alibaba.com、速卖通、AliExpress、SHEIN、京东、美客多、Mercado Libre、Coupang、Wayfair,并接受用户输入其他平台。
平台确定后:
1. 推荐常用目标市场和语言,并展示当前服务比例:主图固定 `1:1`、详情图固定 `3:4`;
2. 市场和语言展示为可修改项;比例如需 `1:4`、`1:8` 等其他值,说明 0.1.1 暂不能执行,不把无效参数传给 MCP;
3. 支持全球主流语言和无文字图片;
4. 平台存在多个市场时,选择最合理默认值并明确标注"推荐",不要把推荐说成用户事实;
5. 主图与详情图比例不同时只调整布局,不重新定义风格。
## SuiteDraft
维护以下逻辑结构:
```yaml
SuiteDraft:
product:
name:
purpose:
selling_points: []
target_audience:
scenarios: []
verified_facts: []
uncertain_facts: []
platform:
name:
market:
language:
main_ratio:
detail_ratio:
output:
mode: main | detail | combined | long_detail
main_count:
detail_count:
total_count:
visual_system:
images:
- id: M1 | D1
title:
commercial_task:
main_scene:
copy:
status: planned | quoted | submitted | generated | failed
draft_confirmation:
status: drafting | awaiting_confirmation | confirmed
confirmed_draft_version:
generation_confirmation:
status: not_ready | awaiting_confirmation | confirmed
estimated_credits:
execution:
batches:
- batch_id:
image_type: main | detail
stable_ids: []
request_id:
task_id:
status: planned | quoted | submitted | partial_success | success | failed
```
面向用户展示:
- 商品名称、用途、核心卖点、目标用户和使用场景;
- 平台、市场、语言和主图/详情图推荐比例;
- 主图数量、详情图数量和总数量;
- 一段统一视觉方向;
- 每张图片的稳定编号、标题、商业任务和主要画面;
- 可直接修改的自然语言示例,例如"把 D3 背景改成厨房,其他不要动"或"主图改成 4 张,详情图保持 6 张"。
完整展示后,把 `draft_confirmation.status` 设为 `awaiting_confirmation` 并结束当前回复。用户明确确认方案前,不得报价、获取 STS、上传、登记或生成。用户修改草稿时继续更新并重新展示同一份 `SuiteDraft`,不得把修改指令、继续处理或沉默视为确认。
## 数量与编号
采用以下默认值:
- "做一套电商图":5 张主图加 6 张独立详情图;
- "主图套图":5 张主图;
- "详情图套图":6 张独立详情图;
- 单张商品主图:`M1`;
- 单张独立详情图或纵向详情长图:`D1`。
用户指定数量优先。不设置交互层硬上限,不擅自减少数量,也不补充用户明确排除的图片类型。
遵守公共协议的稳定编号:删除后保留空缺,不重排后续编号;新增图片使用下一个从未使用的编号。例如删除 `M2` 后保留 `M3...M5`,下一张新增主图使用 `M6`。
服务执行时按类型分批:每批只包含一种 `image_type`,每批最多 16 张。先按主图建立 `main-1...`,再按详情图建立 `detail-1...`;同类超过 16 张时继续切分。建立 `execution.batches` 时就为每个批次生成并保存 UUID v4 `request_id`。分批只改变执行结构,不改变数量或稳定编号。
## 逐图规划
默认五张主图的推荐任务:
- `M1`:商品识别与首屏吸引;
- `M2`:第一核心卖点;
- `M3`:第二核心卖点或结构细节;
- `M4`:使用场景或目标用户;
- `M5`:规格、包装、组合内容或信任信息。
默认六张详情图的推荐任务:
- `D1`:商品价值总览;
- `D2`:用户痛点与解决方式;
- `D3`:核心功能拆解;
- `D4`:使用步骤或真实场景;
- `D5`:尺寸、规格、兼容性或对比;
- `D6`:包装清单、品牌信任或收尾信息。
把这些内容当作起点,不当作固定模板。根据商品、平台、用户卖点和可靠素材重新编排。让每张图承担不同商业任务,主动避免主图与详情图重复表达。
## 纵向详情长图
当前服务主图固定 `1:1`、详情图固定 `3:4`。用户请求 `1:4`、`1:8` 或长详情页时,说明"当前只能按 `3:4` 独立详情图执行",并只问是否按 `3:4` 继续。用户同意后建立一个 `D` 编号的独立详情图任务,不做拼接或切片,也不把结果描述成长比例图片。
套图请求中出现模型名不改变本 Skill 的任务归属。如果用户提到Nova 2.0,把它当作背景信息;不要在本子 Skill 中选择模型,也不要因此把套图转给普通单图 Agent。按现有服务固定模型和比例执行。
## VisualSystem
在整套图片中共享并最终冻结以下六个维度:
- 商品外观与结构真实性;
- 主辅色和背景气质;
- 光影、材质表现与清晰度;
- 字体气质和排版层级;
- 图形装饰、图标和信息标签;
- 文案语气和品牌表达。
品牌规范优先于自动风格。风格参考图只定义视觉方向,不能覆盖商品原图定义的外观和结构。
允许不同图片改变场景、构图和信息密度,但不得改变商品身份或脱离统一视觉系统。方案确认前允许修改 `VisualSystem`;方案确认后冻结 `VisualSystem`。
## 商品事实与文案安全
可以根据可靠信息起草商品信息和本地化图片文案,但必须保留事实等级:
- 使用 `verified_facts` 中的用户资料和已确认事实;
- 对图片可见特征使用保守表述;
- 把无法可靠确认的关键事实放入 `uncertain_facts` 并追问可核对资料;
- 不把"金属质感"写成"铝合金材质"。
不得编造数值性能、认证、真实材质、兼容性、医疗效果、销量排名或保证性承诺。
若未确认事实只影响某一张图,只暂停受影响图片,其他图片继续起草。例如材质和性能资料只影响 `D5` 时,暂停 `D5` 定稿并只问一个事实问题。
## 快速积分报价
只有 `SuiteDraft` 已完整、没有阻塞事实、用户没有待处理修改且 `draft_confirmation.status` 为 `confirmed` 时才报价。方案确认只能授权调用 `quote_commerce_image_credits`,不得授权获取 STS、执行上传器、登记素材或调用 `generate_commerce_images`。不得把方案确认解释为对未知积分或提交生成的授权。
按类型建立全部 `execution.batches` 后,一次调用 `quote_commerce_image_credits`,参数为 `{ batches }`,不得逐批调用。报价请求按本地 `execution.batches` 的顺序逐项映射;发送给工具的每一项必须严格只有 `image_type` 和 `image_count`,不得传入 `batch_id`、`stable_ids`、`request_id`、`requirements`、`reference_image_urls`、比例、分辨率或其他展示字段。
- `image_type`:该批 `main` 或 `detail`;
- `image_count`:该批 `stable_ids` 数量,必须是 1–16 的 JSON 整数。
`batch_id`、`stable_ids` 和 `request_id` 只保留在 Connector 本地执行状态,不发送给报价工具。按请求顺序和 `image_type` 把报价结果关联回本地批次;主图展示比例为 `1:1`、详情图展示比例为 `3:4`,分辨率展示为 `2K`。
把返回的每批单价、小计和总计绑定到对应批次。报价摘要必须逐行展示图片类型、数量、比例、`2K`、单价和小计,再展示总计。固定摘要结构包含:"主图:数量、1:1、2K;详情图:数量、3:4、2K;当前预估积分"。不包含某类图片时省略该类行,不得编造零数量报价。
把 `generation_confirmation.status` 设为 `awaiting_confirmation`,向用户明确询问:"当前预估为 42 积分;最终按提交时实时积分扣除,可能与当前预估不同。是否确认积分并生成?"随后必须结束当前回复并等待一条新的用户消息。报价回合严禁获取 STS、执行上传器、登记素材或调用 `generate_commerce_images`。
### 报价回合的唯一动作
草稿方案确认后的报价回合仅调用一次 `quote_commerce_image_credits`,展示报价并结束回复。明确禁止 STS、上传、登记、生成、轮询、交付、待办工具、未来工具 schema。
若宿主要求先读取 deferred tool schema,只允许读取当前 `quote_commerce_image_credits` 的精确 schema;不得读取上传、登记、生成、轮询或交付等未来阶段工具 schema。
只有报价完成后收到的明确积分确认,才能把 `generation_confirmation.status` 更新为 `confirmed` 并授权执行。方案确认不能代替积分确认;"继续""按刚才方案处理"等未明确接受当前积分的表达也不能代替积分确认。
快速积分报价只用于帮助用户决定是否提交,不锁定积分。用户在报价后发送新的明确积分确认,表示接受提交时的实时积分;实时积分上涨或下降都直接执行,不再次确认。
若用户在积分确认前修改平台、事实、数量、全局风格、逐图任务或文案,使草稿确认与报价失效,返回同一份草稿,重新展示并取得方案确认。
## 服务执行(积分确认后)
用户在报价后的新消息明确确认积分,并且 `generation_confirmation.status == confirmed` 时,才进入本节。积分确认回合不得再次调用 `quote_commerce_image_credits`,也不得调用任何旧预估工具;必须直接按上传、登记、生成、轮询与交付顺序执行。
## 积分确认后的确定性执行白名单
积分确认后只允许以下固定顺序:
```text
获取上传 token → 固定上传器 → 登记素材 → 生成提交 → 固定节奏静默轮询 → 交付 → 宿主预览 → 一次结果卡片
```
- 上传与提交阶段只允许当前阶段所需的精确 MCP schema(宿主强制要求时)、`get_reference_image_upload_token`、公共上传器、`register_reference_image` 和 `generate_commerce_images`;不搜索、不读取脚本、不检查解释器或 SDK、不扫描目录、不创建待办或日志。
- 轮询阶段只允许 `get_generation_task_status`;处理中固定等待 30 秒后再次查询,不临时决定等待时长、不输出逐次进度、不读写本地文件。
- 交付阶段只允许公共 `deliver` 和宿主 `present_files`;不得列目录、打开或读取结果图片、执行 OCR、分析画质、不写 Markdown 日志,或推荐未请求的 ZIP、导出和其他能力。
- 不得在上传、提交、轮询或交付阶段预读未来工具 schema。只有宿主必须先读取 schema 时,才读取当前下一步工具的精确 schema。
- Bash 只允许使用公共上传器、公共交付器和固定等待;不得用于搜索、检查环境、读取源码、列目录或创建文件。
## 固定执行路径
处理本地参考图时,必须直接执行当前 Skill 附带的公共上传器,不得探索或创建替代实现。唯一允许的上传链路是:
```text
get_reference_image_upload_token
→ scripts/picset_client.py upload
→ register_reference_image
```
- 不搜索其他上传脚本,不检查系统是否安装 `oss2`。
- 不安装 `requests`、`oss2`、Pillow 或任何 OSS SDK。
- 不使用内联 Python、Shell、`curl` 或手写 OSS 签名上传。
- JPEG、PNG、WebP 等公共上传器已支持的格式直接上传,不使用 `ffmpeg`、`cwebp` 或 Pillow 主动转换图片。只有公共上传器明确返回格式不支持且用户同意时,才可建议转换。
- 脚本不存在或无法读取时,立即报告"本地 Skill 安装不完整";不得创建替代脚本。
- token 只读取 MCP `structuredContent`,并通过标准输入传给公共上传器;不得猜测字段或在命令中展开 STS。
- 面向用户只展示"上传素材"和"登记素材"等阶段状态,不展开脚本搜索、token 解析或内部推理。
### 1. 上传并登记素材
对每个只有 `local_path`、尚无 `registered_url` 的素材依次执行:
1. 调用 `get_reference_image_upload_token` 获取短期 OSS STS;
2. 通过标准输入把 `token` 和 `file_path` 交给公共上传器。WorkBuddy 使用其托管解释器 `$HOME/.workbuddy/binaries/python/envs/default/bin/python __SKILL_DIR__/../../scripts/picset_client.py upload`;Qwen Office 使用 `python3 __SKILL_DIR__/../../scripts/picset_client.py upload`。标准输入 JSON 只能是 `{"token": <工具结果的 structuredContent>, "file_path": "<本地路径>"}`;不要把包含 `content`、`isError`、`resultType` 的 MCP 外层结果当作 token。命令不得增加 `--file`、`--asset-kind`、`--token` 或其他参数。`__SKILL_DIR__` 必须解析为当前子 Skill 文件所在目录,不得从会话工作目录猜测脚本位置;不得创建 venv,不得安装 `requests`、`oss2` 或任何 OSS SDK,也不得把 STS 放在命令参数、文件、日志或用户消息中;
3. Python 成功返回 `oss_path`、`file_type`、`file_size` 后,调用 `register_reference_image`;
4. 把登记返回的 URL 写入原素材的 `registered_url`,不要创建第二份素材;
5. 任一步失败都停止该素材的后续登记和生成,保留已完成素材,只报告可恢复的失败步骤。
后续生成只传已经登记的 Picset 参考图 URL。服务最多接收 5 张参考图;超过时保留全部素材记录,每次只问一个选择问题,不静默丢弃。
### 2. 生成 prompts 并提交
素材全部登记后,对每个尚未提交的批次调用 `generate_commerce_images`。传入该批原 `image_type`、原 `stable_ids` 对应的数量与逐图要求、固定比例、固定 `2K`、已登记 `reference_image_urls`、`confirmed: true` 和 Connector 本地保存的原稳定 `request_id`;服务依据已确认 `SuiteDraft`、`VisualSystem`、商品事实以及逐图标题、商业任务、主要画面和文案生成 prompts 并提交。`request_id` 不参与报价,只用于后续生成及其重试,且不得为重试换新值;不得先调用 `generate_commerce_images` 试探或校验 `request_id`。保存返回的 `task_id` 并把该批图片标记为 `submitted`。
### 3. 静默轮询、交付与编号恢复
逐个 `task_id` 调用 `get_generation_task_status`。服务返回批内 `index`、`status` 和成功项的 `image_url`;按 `stable_ids[index]` 恢复 `M...`、`D...`,不得按完成、成功或返回顺序重新编号。按主图组和详情图组展示真实成功、部分成功或失败状态。
多个批次中某一批提交失败时,保留已成功提交的批次及其任务;只重试未提交或失败批次,并复用该批原 `request_id`。任务部分成功时先展示成功编号,只重试失败编号。
任务终态后,只选择 `status == "success"` 且 `image_url` 非空的项目。按 `stable_ids[item.index]` 逐项构造 `items`:`id = stable_ids[item.index]`、`image_url = item.image_url`;不得使用 `stable_id`、`url`、完成顺序或返回顺序替代这些字段。随后只执行一次公共 `deliver`,stdin 只传一个 JSON 对象:`{"items":[{"id":"D1","image_url":"https://..."}],"output_dir":"<绝对输出目录>"}`。不得传 `--output-dir` 或其他 `deliver` CLI 参数,不得逐项写入多个 JSON 对象。索引越界、重复稳定编号或成功项缺少 `image_url` 时停止该项交付并报告数据错误,不得读取客户端源码后猜测字段;交付失败时停止交付并报告公共交付器错误,不得改用 `curl`、自定义下载或目录扫描兜底。
`deliver` 只下载并返回本地 `path`,不得调用系统 `open` 或其他桌面应用。WorkBuddy 使用当前会话的原生文件预览动作在右侧预览栏打开这些路径;Qwen Office 仅在宿主支持时预览,否则只展示结果文件,不宣称已经打开。宿主内打开只用于展示,不得随后读取或分析图片、执行 OCR、输出主观质量结论或写 Markdown 日志。轮询期间不逐次播报,只展示提交成功和最终结果两个用户可见节点。
只有真实工具响应支持时,才能说"已上传""已提交""已扣费""生成成功"或"生成失败"。鉴权失败时,WorkBuddy 提示检查 `PICSET_AGENT_SK` 配置;Qwen Office 提示通过 Connector 重新 OAuth 授权,不向 Qwen Office 用户索取 SK。
## 用户修改与确认
草稿阶段直接应用自然语言修改并展示更新后的相关字段:
- 指定 `M3`、`D2` 等单张修改时,只改被点名编号,继承冻结的 `VisualSystem`,不重新确认整套;
- 修改全局风格、平台或整组内容时,返回草稿阶段并重新取得方案确认;
- 删除图片不重排编号;新增图片使用下一未使用编号。
最终汇总数量、平台设置、统一风格、已确认商品事实、未确认风险、逐图任务和所有批次的报价积分。方案确认只推进到快速积分报价;报价完成后必须暂停,收到后续新的明确积分确认消息才按"服务执行"上传、登记并提交。
## 结果与局部返工
服务结果可用时:
- 先调用 `present_files`。`present_files` 成功后才允许输出唯一一次最终结果;调用 `present_files` 的同一条回复不得包含用户可见的最终结果文案。
- 全部成功时只展示稳定编号、比例与分辨率、成功数量、实际扣费、右侧预览和一个局部返工示例;不展示商业任务表、视觉风格复述、流程回顾、绝对路径、ZIP 或导出建议。
- 全部成功时最终回复只能为以下四行,不得追加标题、表格、列表或其他字段:`已生成:D1–D6(3:4 / 2K),6/6 成功。`、`实际扣费:42 积分。`、`已在右侧预览。`、`需要局部修改可直接说:重做 D4:改成车载场景。`。其中编号、比例、分辨率、数量、积分和返工编号按真实结果替换。
- 保留所有成功图片;
- 部分失败时只列出成功编号、失败编号和实际扣费,只重试失败编号;
- 单张重做、画面修改或文字替换只影响被点名图片;用户明确发出的修改指令构成该次局部方案确认,但不构成积分确认;
- 单张返工继承原 `VisualSystem`,只为被点名编号建立单张批次;完成快速积分报价后等待新的明确积分确认,再上传、登记并生成;不重新确认整套,也不更改其他结果;
- 全局风格、平台或整组任务变化时返回草稿阶段并重新取得方案确认。
按照公共协议返回 `updated_suite_draft`、`updated_visual_system`、`result_updates`、`pending_actions` 和 `unresolved_facts`。
## 常见错误
| 错误 | 正确处理 |
| --- | --- |
| 首轮要求用户填完整表单 | 每次只解决一个阻塞问题,其他内容先起草 |
| 把套图单张返工交给普通单图 Agent | 保留原编号并在本 Skill 内修改 |
| 声称当前能执行 `1:8` 长图 | 说明当前只支持 `3:4` 独立详情图,并只问是否继续 |
| 从外观推断材质或性能 | 放入 `uncertain_facts` 并追问可靠资料 |
| 把方案确认当成积分和生成授权 | 方案确认后只快速报价;等待新的明确积分确认消息后才上传和生成 |
| 把报价积分当作锁定价格 | 明确说明最终按提交时实时积分扣除,价格变化后直接执行 |
| 一个批次失败后重提全部任务 | 保留已提交任务,只重试未提交或失败批次 |
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!