mcpField
E
ecommerce-image-workflow

ecommerce-image-workflow

github.com/nexu-io创意与媒体104.6k2.0k 次安装今天更新
代码仓库

关于 ecommerce-image-workflow

基于真实产品参考图制作三张电商图片的工作流技能。它强调保持产品特征,并在图片之外生成清单文件和本地 HTML 画廊。

主要功能

  1. 01要求提供产品参考图
  2. 02规划主图、卖点图和场景图
  3. 03在提示词中保留产品细节
  4. 04生成图片清单
  5. 05创建本地 HTML 画廊
  6. 06通过 OpenDesign 媒体分发器生成

适用场景

  1. 01为商品列表准备一组图片
  2. 02无需小字展示产品卖点
  3. 03将产品置于合理的使用场景
  4. 04查看生成素材与保真说明

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nexu-io/open-design --skill ecommerce-image-workflow

安装后在 Claude Code 中输入/ecommerce-image-workflow确认已加载。

附带文件example.htmlreferences/checklist.md

详细介绍

电商图片工作流

根据真实产品参考图,制作一组精简的电商图片。 此 V1 技能的适用范围有意限定为仅支持参考产品模式。如果用户只描述产品,但未提供产品照片,请让用户提供照片,然后停止。此版本不创建仅基于产品简报构想的产品。

资源映射

ecommerce-image-workflow/
|-- SKILL.md
|-- example.html
`-- references/
    `-- checklist.md

此技能的产出

默认情况下,为一个产品生成三张适用于电商的图片素材:

  1. 主图 - 以产品为主体的干净白底或柔和中性色背景商品图。
  2. 卖点图 - 清晰展示一个卖点,并留出合适的标注空间,不依赖图片中难以辨认的小字。
  3. 场景图 - 在合理的使用场景中展示产品,同时确保产品忠实还原参考图。

另外还会创建:

  • image-manifest.json,用于描述参考输入、图片位、提示词、输出、宽高比和保真度说明。
  • ecommerce-gallery.html,作为简易预览画廊,链接生成的文件并概述各图片的用途。

输入要求

必需:

  • 当前项目中至少上传一张产品参考图。

仅询问缺少的必要信息:

  • 如果无法明显判断,请询问产品名称或简短标签。
  • 如果无法安全推断卖点图的内容,请询问主要卖点。
  • 仅在用户要求按平台调整构图时,询问目标平台或宽高比。

不要提出宽泛的探索性问题。保持工作流顺畅推进。

工作流

第 0 步 - 确认参考产品模式

开始规划前,确认当前项目中包含真实产品参考图。

如果没有产品图片,请回复:

请先上传至少一张产品参考图。此 V1 工作流会根据参考照片还原真实产品;仅基于产品简报生成概念产品的功能将在后续版本中提供。

然后停止。

第 1 步 - 提取产品身份锚点

检查参考图,并撰写一份简短的内部产品特征锁定说明:

  • 产品类别和形态。
  • 外形和轮廓。
  • 主色和材质。
  • 标志、标签、图案、紧固件、端口、肩带、把手或其他固定细节。
  • 尺度参照和比例。
  • 不得更改的内容。

在每条生成提示词中使用这些锚点。

第 2 步 - 制定三张图片的拍摄方案

开始生成前,先制定精简的拍摄方案:

图片位默认宽高比目标
主图1:1在白色或柔和中性色背景上呈现以产品为主体的平台商品图
卖点图4:5通过特写细节或简洁的标注空间,清晰展示一个卖点
场景图4:5展示真实的使用场景,同时确保产品的视觉效果忠实于参考图

如果项目元数据提供了 imageAspect,且用户希望整组图片使用统一的宽高比,则使用该值。否则使用上表中的默认值。

第 3 步 - 添加保真度约束并编写提示词

每条提示词都必须在靠前的位置包含以下产品保真度说明:

Preserve the exact product identity from the reference image: shape,
silhouette, color, material, logo/label placement, visible construction
details, and proportions. Do not redesign the product. Do not add, remove,
or relocate product features.

然后添加针对图片位的说明:

主图提示词
  • 产品居中且完整可见。
  • 使用白色、米白色或极浅灰色背景。
  • 柔和的棚拍灯光,搭配干净的阴影。
  • 除非用户要求,否则不添加道具。
  • 画面中不添加营销文字。
卖点图提示词
  • 聚焦于用户提供或可安全推断的一个特征。
  • 使用特写构图、剖面式裁切,或为设计师后续添加标签留出简洁的留白。
  • 让产品在画面中保持视觉平衡。如果不生成明确的标注结构,则让产品居中。如果需要留出标签空间,只稍微偏移产品,并让留白看起来经过精心设计。
  • 不要编造认证、性能数据、材质或宣传内容。
  • 避免生成难以辨认的小字;改为留出标签空间。
生活方式图片提示词
  • 使用与产品类别相匹配的真实环境。
  • 让产品成为视觉焦点。
  • 仅当有助于说明用法且不会遮挡产品时,才展示人与产品的互动。
  • 保持产品的比例和结构。
第 4 步 - 通过媒体合约分发

使用统一的 OpenDesign 媒体分发器。不要直接调用提供商 API 或自定义模型命令。

对每个槽位,运行标准的生成/等待循环:

# POSIX bash. Do not call provider APIs directly.
out=$("$OD_NODE_BIN" "$OD_BIN" media generate \
  --project "$OD_PROJECT_ID" \
  --surface image \
  --model "<imageModel from metadata>" \
  --aspect "<slot aspect or imageAspect from metadata>" \
  --image "<project-relative product reference image>" \
  --output "<product-slug>-<slot>.png" \
  --prompt "<full slot prompt>")
ec=$?
if [ "$ec" -ne 0 ]; then echo "$out" >&2; exit "$ec"; fi

last=$(printf '%s\n' "$out" | tail -1)
task_id=$(printf '%s\n' "$last" |
  python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('taskId',''))" 2>/dev/null)
since=$(printf '%s\n' "$last" |
  python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('nextSince',0))" 2>/dev/null)
since="${since:-0}"

while [ -n "$task_id" ]; do
  out=$("$OD_NODE_BIN" "$OD_BIN" media wait "$task_id" --since "$since")
  ec=$?
  last=$(printf '%s\n' "$out" | tail -1)
  since=$(printf '%s\n' "$last" |
    python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('nextSince',0))" 2>/dev/null)
  since="${since:-0}"
  if [ "$ec" -eq 0 ]; then
    task_id=""
  elif [ "$ec" -ne 2 ]; then
    echo "$out" >&2
    exit "$ec"
  fi
done

printf '%s\n' "$last"

最后一行必须是包含 {"file": {"name": "...", ...}} 的 JSON。 将每个最终返回的文件名记录在 image-manifest.json 中。

如果当前图像模型或提供商无法使用 --image,请停止并告知用户,此工作流需要支持参考图的图像生成路径,才能确保产品还原度。

第 5 步 - 编写 image-manifest.json

生成后,创建一个名为 image-manifest.json 的项目文件:

{
  "workflow": "ecommerce-image-workflow",
  "mode": "reference-product",
  "productName": "Example product",
  "referenceImages": ["reference-product.png"],
  "fidelityNotes": [
    "Preserve product identity, color, material, construction, and proportions.",
    "Do not treat these outputs as platform-compliance proof without human review."
  ],
  "slots": [
    {
      "id": "main",
      "role": "marketplace packshot",
      "aspect": "1:1",
      "output": "example-product-main.png",
      "promptSummary": "Centered product-first packshot on a clean neutral background."
    },
    {
      "id": "feature",
      "role": "single feature highlight",
      "aspect": "4:5",
      "output": "example-product-feature.png",
      "promptSummary": "Close-up or negative-space composition for one verified selling point."
    },
    {
      "id": "lifestyle",
      "role": "usage context",
      "aspect": "4:5",
      "output": "example-product-lifestyle.png",
      "promptSummary": "Realistic scene with the product as the focal point."
    }
  ]
}

确保清单内容真实。如果某项信息未知,请填写 null 或简短说明,不要编造内容。

第 6 步 - 编写 ecommerce-gallery.html

创建一个简单的单文件 HTML 图库,其中:

  • 首先展示参考图片。
  • 展示生成的三个槽位,并标明其角色名称。
  • 列出产品还原度说明。
  • 链接到 image-manifest.json。
  • 仅使用系统字体和项目本地文件;不导入 CDN。
第 7 步 - 交接

回复中包含:

  • 生成的文件名。
  • 一句话概述所使用的保真锁定方式。
  • 提醒用户,平台特定的合规检查、最终文字叠加,以及声明/法律审核仍需人工完成。

不要输出 <artifact> 标签。

硬性规则

  • V1 必须使用真实产品参考图像。不接受仅基于简报的概念产品。
  • 每次运行仅处理一个产品。
  • 默认生成恰好三个槽位:主图、特征图、生活方式图。
  • 保留产品原貌;不要重新设计。
  • 不要编造声明、认证、尺寸、成分或性能数据。
  • 使用 "$OD_NODE_BIN" "$OD_BIN" media generate;不要直接调用提供商 API。
  • 生成后始终创建 image-manifest.json。
  • 交接前运行 references/checklist.md。

评论

支持 Markdown