关于 ecommerce-image-workflow
基于真实产品参考图制作三张电商图片的工作流技能。它强调保持产品特征,并在图片之外生成清单文件和本地 HTML 画廊。
主要功能
- 01要求提供产品参考图
- 02规划主图、卖点图和场景图
- 03在提示词中保留产品细节
- 04生成图片清单
- 05创建本地 HTML 画廊
- 06通过 OpenDesign 媒体分发器生成
适用场景
- 01为商品列表准备一组图片
- 02无需小字展示产品卖点
- 03将产品置于合理的使用场景
- 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
此技能的产出
默认情况下,为一个产品生成三张适用于电商的图片素材:
- 主图 - 以产品为主体的干净白底或柔和中性色背景商品图。
- 卖点图 - 清晰展示一个卖点,并留出合适的标注空间,不依赖图片中难以辨认的小字。
- 场景图 - 在合理的使用场景中展示产品,同时确保产品忠实还原参考图。
另外还会创建:
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。