一键导入
meitu-product-view
从单张商品图生成多角度展示图(三视图、五视图、全角度)。支持白底、场景、透明底等背景模式,适配主流电商平台规格。当用户提到商品三视图、多角度展示、产品展示图、电商多角度、product multi-angle、三视图、转成三视图、生成多角度商品图时触发。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
从单张商品图生成多角度展示图(三视图、五视图、全角度)。支持白底、场景、透明底等背景模式,适配主流电商平台规格。当用户提到商品三视图、多角度展示、产品展示图、电商多角度、product multi-angle、三视图、转成三视图、生成多角度商品图时触发。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
用于基于用户原图制作规格化证件照、证件照换底色或单人写真套图。当用户要证件照、一寸照、二寸照、护照/签证照、白底/蓝底/红底证件版、写真照、三宫格写真、主题/场景写真时触发。不适用于多人合影、卡通化转绘、普通人像轻修。执行时会读取 Meitu 凭证、调用本地 `meitu` CLI,把人像照片、生成提示词与任务参数发送到 Meitu OpenAPI,并把结果写入本地输出目录。
Unified Meitu CLI capability skill. Covers credentials, command mapping, execution pattern, and user-facing error guidance for built-in image/video commands plus auth/account/recharge CLI capabilities.
生成无人声、无歌词的纯音乐 / BGM,适合背景音乐、氛围铺垫、情绪渲染,时长 30–120 秒。仅在用户明确要求生成纯音乐/背景音乐时触发。执行时会读取 Meitu 凭证、调用本地 `meitu` CLI,并把音频生成请求发送到 Meitu OpenAPI,结果写入本地输出目录。
歌词驱动的完整歌曲生成(含人声),也支持强节奏成品级纯音乐。仅当用户明确要求生成歌曲/音频成品,并提供或同意补充风格与歌词参数时触发;普通音乐讨论、歌词创作、闲聊式演唱请求不触发。
替换图片整体背景/换场景,保留前景主体不变。当用户说换背景、替换背景、换成 xx 背景、商品换场景、人像换背景、证件照换底色、换底时触发。本工具不能输出透明背景。执行时会使用本地 meitu CLI、Meitu OpenAPI 凭证并写入本地输出目录。
图片前景主体与背景精准分离,输出透明底 PNG(标准四类:人物、宠物、商品、图形印章)或白底图(非标准主体或用户明确要白底)。仅在用户明确要求抠图、去背景、透明背景/透明底、提取主体,或明确要求把已有图片抠成白底时触发。执行时会使用本地 meitu CLI、Meitu OpenAPI 凭证并写入本地输出目录。
| name | meitu-product-view |
| description | 从单张商品图生成多角度展示图(三视图、五视图、全角度)。支持白底、场景、透明底等背景模式,适配主流电商平台规格。当用户提到商品三视图、多角度展示、产品展示图、电商多角度、product multi-angle、三视图、转成三视图、生成多角度商品图时触发。 |
| version | 1.1.0 |
| metadata | {"openclaw":{"requires":{"bins":["meitu"],"env":["MEITU_OPENAPI_ACCESS_KEY","MEITU_OPENAPI_SECRET_KEY"],"paths":{"read":["~/.meitu/credentials.json","~/.openclaw/workspace/visual/","./openclaw.yaml","./DESIGN.md","~/.openclaw/workspace/visual/rules/quality.yaml","~/.openclaw/workspace/visual/memory/global.md","~/.openclaw/workspace/visual/memory/scenes/","~/.openclaw/workspace/visual/memory/observations/observations.yaml","$VISUAL/rules/quality.yaml","$VISUAL/memory/global.md","$VISUAL/memory/scenes/","$VISUAL/memory/observations/observations.yaml"],"write":["~/.openclaw/workspace/visual/","./DESIGN.md","./output/","~/.openclaw/workspace/visual/rules/quality.yaml","~/.openclaw/workspace/visual/memory/global.md","~/.openclaw/workspace/visual/memory/scenes/","~/.openclaw/workspace/visual/memory/observations/observations.yaml","$VISUAL/rules/quality.yaml","$VISUAL/memory/global.md","$VISUAL/memory/scenes/","$VISUAL/memory/observations/observations.yaml"]}},"primaryEnv":"MEITU_OPENAPI_ACCESS_KEY","security":{"dataFlow":"Inputs, selected local context, and generated prompts may be sent to Meitu OpenAPI when used by the workflow.","credentials":"Credentials are used only for CLI authentication and must not be disclosed.","persistence":"Record workflows may access declared project and visual memory/rules files."}}} |
| security | {"credential_use":"Uses Meitu OpenAPI credentials from env or ~/.meitu/credentials.json for CLI calls; credentials must not be echoed, logged, or embedded in prompts.","remote_processing":"Product images, selected project/platform context, selected visual-workspace brand or platform rules, and generated prompts may be sent to Meitu OpenAPI.","persistence":"Project mode may write output files and may update project or visual-memory files according to the Record workflow."} |
| requirements | {"credentials":[{"name":"MEITU_OPENAPI_ACCESS_KEY","source":"env | ~/.meitu/credentials.json"},{"name":"MEITU_OPENAPI_SECRET_KEY","source":"env | ~/.meitu/credentials.json"}],"permissions":[{"type":"file_read","paths":["~/.meitu/credentials.json","~/.openclaw/workspace/visual/","./openclaw.yaml","./DESIGN.md","~/.openclaw/workspace/visual/rules/quality.yaml","~/.openclaw/workspace/visual/rules/platforms/","~/.openclaw/workspace/visual/memory/global.md","~/.openclaw/workspace/visual/memory/scenes/","~/.openclaw/workspace/visual/memory/observations/observations.yaml","~/.openclaw/workspace/visual/assets/brands/","$VISUAL/rules/quality.yaml","$VISUAL/rules/platforms/","$VISUAL/memory/global.md","$VISUAL/memory/scenes/","$VISUAL/memory/observations/observations.yaml","$VISUAL/assets/brands/"]},{"type":"file_write","paths":["~/.openclaw/workspace/visual/","./DESIGN.md","./output/","~/.openclaw/workspace/visual/rules/quality.yaml","~/.openclaw/workspace/visual/memory/global.md","~/.openclaw/workspace/visual/memory/scenes/","~/.openclaw/workspace/visual/memory/observations/observations.yaml","$VISUAL/rules/quality.yaml","$VISUAL/memory/global.md","$VISUAL/memory/scenes/","$VISUAL/memory/observations/observations.yaml"]},{"type":"exec","commands":["meitu"]}]} |
从单张商品图生成多角度展示图,支持标准三视图、电商五视图、全角度展示。
用户上传一张商品图,自动生成不同角度的展示图。支持白底/场景/透明底背景,可选超分辨率增强,适配淘宝、京东、拼多多、亚马逊等电商平台规格。
npm install -g meitu-cli@latest
MEITU_OPENAPI_ACCESS_KEY / MEITU_OPENAPI_SECRET_KEY~/.meitu/credentials.jsonmeitu config set-ak --value "..." + meitu config set-sk --value "..."(会写入本地文件)meitu auth verify --jsonDESIGN.md 或 openclaw.yaml 显式引用品牌资产或平台规则,还可能额外读取用户启用的 $VISUAL/assets/brands/ 与 $VISUAL/rules/platforms/路径别名: 下文中
$VISUAL={OPENCLAW_HOME}/workspace/visual/
Preflight → [Context] → Execute → Refine → Deliver → [Record]
可选步骤: [Context] — 一次性模式跳过;[Record] — can_record=false 时跳过。
meitu --version → 未安装则提示 npm install -g meitu-cli@latestmeitu auth verify --json → 凭证无效则引导配置openclaw.yaml → project mode; else → one-off
检查 $VISUAL 目录 → 确定 capabilities
can_record = cwd 有 openclaw.yaml AND $VISUAL 存在(两者缺一即 false)./output/ | else → $VISUAL/output/meitu-product-view/
mkdir -p {output_dir}Execute 中所有
--download-dir {output_dir}使用此处解析的路径。
mode = one-off → 跳过此步,直接到 Execute。
mode = project → 按序加载(每步 skip if missing):
./DESIGN.md → 获取项目决策和 Context References
brand: acme)→ 尝试读 $VISUAL/assets/brands/acme/$VISUAL/rules/quality.yaml → 获取 forbidden 列表$VISUAL/memory/global.md → 获取跨场景偏好openclaw.yaml 的 project.types(数组,优先)或 project.type(单值 → 视为单元素数组)
→ 对每个 type:查找 $VISUAL/memory/scenes/{type}.md → 存在则读取并合并→ quality forbidden list 过滤生成元素,preferences 增强创意方向
→ $VISUAL 不存在 → 跳过 2-4,仅读 DESIGN.md
Step 1: 接收商品图
用户上传一张商品图。若未上传,提示:
"请上传一张商品图片(正面照效果最佳,背景简洁更利于生成质量)。"
收到图片后,分析以下信息(Agent 自行判断,不调外部工具):
| 分析项 | 用途 |
|---|---|
| 商品品类 | 决定推荐角度和场景 |
| 主体形状/比例 | 填充 prompt 的 {product_description} |
| 当前拍摄角度 | 决定是否可作为某个视角直接使用 |
| 背景情况 | 决定是否需要 cutout 预处理 |
若用户同时提供了文字描述商品信息 → 优先使用用户描述。
Step 2: 选择视图方案
展示选项:
| 方案 | 包含角度 | 适用场景 |
|---|---|---|
| 标准三视图 | 正面、右侧、背面 | 基础展示、快速出图 |
| 电商五视图 | 正面、左前45°、右前45°、背面、俯视 | 电商主图套图 |
| 全角度展示 | 正面、左前45°、右前45°、左侧、右侧、背面、俯视、特写 | 高端商品详情页 |
| 拼合三视图 | 一张图内左中右排列正面+侧面+背面 | 社交媒体、快速展示 |
| 自定义 | 用户自选角度组合 | 特殊需求 |
用户选"自定义"时,展示完整角度清单:
| 角度 | 标识 | 方位 |
|---|---|---|
| 正面 | front | 0° |
| 左前45° | front-left-quarter | 315° |
| 右前45° | front-right-quarter | 45° |
| 左侧 | left-side | 270° |
| 右侧 | right-side | 90° |
| 左后45° | back-left-quarter | 225° |
| 右后45° | back-right-quarter | 135° |
| 背面 | back | 180° |
| 俯视 | overhead | 60°仰角 |
| 微俯 | elevated | 30°仰角 |
| 仰视 | low-angle | -30°仰角 |
| 特写 | close-up | 近距离细节 |
If user mentions specific e-commerce platform → read references/ecommerce-specs.md for platform-specific angle recommendations and size requirements → auto-select matching view preset + ratio + size.
Step 3: 选择背景模式
| 模式 | 说明 | CLI 处理方式 |
|---|---|---|
| 白底 | 纯白背景 | prompt 中加白底描述 |
| 场景 | AI 生成商品使用场景 | prompt 中加场景描述 |
| 保留原背景 | 保持上传图的背景 | 使用中文角度指令 prompt |
| 透明底 | 透明 PNG | 先白底生成,再 cutout |
选择"场景"时 → 根据商品品类推荐 3 个场景描述,询问用户偏好。场景推荐原则:
| 品类 | 推荐场景方向 |
|---|---|
| 电子产品 | 极简桌面、科技感空间、办公场景 |
| 服饰/箱包 | 时尚街拍场景、衣帽间、旅行场景 |
| 食品/饮品 | 餐桌场景、厨房、野餐/户外 |
| 家居/家电 | 客厅、卧室、现代家居空间 |
| 美妆/护肤 | 化妆台、浴室、花艺/自然元素 |
| 运动/户外 | 健身房、跑道、户外自然 |
Step 4: 预处理抠图(条件执行)
触发条件:原图背景杂乱 AND 用户选择了白底或场景模式。
meitu image-cutout \
--skill_name skill_meitu-product-view \
--image_url {image_url} \
--prompt "e-commerce product foreground subject" \
--json
抠图结果作为后续生成的参考输入。cutout 失败 → 跳过,直接用原图。
Step 5: 逐角度生成
这是核心生成步骤。对用户选定的每个角度,调用 meitu image-edit。
工具调用模板:
meitu image-edit \
--skill_name skill_meitu-product-view \
--image_list {source_image_url} \
--prompt "{angle_prompt}" \
--model praline_pro \
--ratio {target_ratio} \
--json \
--download-dir {output_dir}
Prompt 构建:
## {angle}-view section 定位){product_description} ← Step 1 分析结果{background} ← Step 3 选择对应的背景后缀(见 prompts.md ## Background Suffixes){scene_description} ← Step 3 场景描述(仅场景模式)-ar、--no、(keyword:1.5)、<lora:xxx> 等平台特定语法各角度 → prompts.md section 映射:
| 角度标识 | Prompt 模板 section |
|---|---|
| front | ## front-view |
| right-side | ## right-side-view |
| left-side | ## left-side-view |
| back | ## back-view |
| front-right-quarter | ## front-right-quarter-view |
| front-left-quarter | ## front-left-quarter-view |
| back-right-quarter | ## back-right-quarter-view |
| back-left-quarter | ## back-left-quarter-view |
| overhead | ## overhead-view |
| elevated | ## elevated-view |
| low-angle | ## low-angle-view |
| close-up | ## close-up-view |
| 拼合三视图 | ## combo-three-view |
特殊情况——保留原背景模式:
使用中文 prompt(与英文模板不同,这是经验验证过的写法):
| 角度 | Prompt(原文应用,不修改) |
|---|---|
| 正面 | 将图中的商品旋转到正面朝向镜头的角度。保持商品直立,不要改变商品外观,保证背景一致性。 |
| 侧面 | 将图中的商品旋转到从右侧面观看的角度,展示商品的侧面轮廓。保持商品直立,不要改变商品外观,保证背景一致性。 |
| 背面 | 将图中的商品旋转到背面朝向镜头的角度,展示商品背部细节。保持商品直立,不要改变商品外观,保证背景一致性。 |
| 45° | 将图中的商品旋转到45度斜角观看的角度。保持商品直立,不要改变商品外观,保证背景一致性。 |
| 俯视 | 从上方俯视角度拍摄图中的商品,展示商品顶部。保持商品直立,不要改变商品外观,保证背景一致性。 |
| 特写 | 将图中的商品放大展示细节部分。保持商品一致性,不要改变商品外观,保证背景一致性。 |
特殊情况——拼合三视图:
一次性生成三个视角在同一张图内。从 references/prompts.md ## combo-three-view 取模板,填入 {product_description} 和 {background}:
meitu image-edit \
--skill_name skill_meitu-product-view \
--image_list {source_image_url} \
--prompt "{combo_three_view_prompt}" \
--model praline_pro \
--ratio 4:3 \
--json \
--download-dir {output_dir}
生成顺序策略:
换背景模式下,侧面和背面的参考图使用正面场景图(不是原图):
# 先生成正面场景图
meitu image-edit \
--skill_name skill_meitu-product-view \
--image_list {original_image_url} \
--prompt "{front_view_scene_prompt}" \
--model praline_pro \
--ratio 1:1 \
--json \
--download-dir {output_dir}
# 以正面场景图为参考,生成其余角度
meitu image-edit \
--skill_name skill_meitu-product-view \
--image_list {front_scene_result_url} \
--prompt "将图中的商品旋转到从右侧面观看的角度,展示商品的侧面轮廓。保持商品直立,不要改变商品外观,保证背景一致性。" \
--model praline_pro \
--ratio 1:1 \
--json \
--download-dir {output_dir}
--ratio 选择:
| 场景 | ratio |
|---|---|
| 默认 | 1:1 |
| 指定电商平台 | 按 references/ecommerce-specs.md 要求 |
| 拼合三视图 | 4:3 |
| 用户自定义 | 按用户指定 |
Step 6: 超分辨率增强(可选)
触发条件:用户主动要求 OR 目标平台要求 ≥2000px(如 Amazon)。
meitu image-superres-enhance \
--skill_name skill_meitu-product-view \
--image_url {generated_url} \
--prompt "e-commerce product image" \
--json \
--download-dir {output_dir}
对每张角度图逐一 upscale。
Step 7: 透明底处理(条件)
触发条件:Step 3 选择了"透明底"。
对每张生成的角度图执行:
meitu image-cutout \
--skill_name skill_meitu-product-view \
--image_url {generated_url} \
--prompt "e-commerce product foreground subject" \
--json \
--download-dir {output_dir}
错误降级策略:
| Level | 操作 | 触发条件 |
|---|---|---|
| L1 | 移除 prompt 中的修饰词(lighting、material 描述),保留核心角度+商品 | 首次生成失败 |
| L2 | ratio 改为 auto | L1 后仍失败 |
| L3 | 跳过 cutout 预处理,直接用原图生成 | L2 后仍失败 |
| L4 | 简化到最核心描述:仅 "A {angle} view of the product. White background." | L3 后仍失败 |
| L5 | 停止,报错并显示 code 和 hint | 连续 2 次 L4 失败 |
展示所有生成的角度图,说明每张的视角。
反馈分类与响应:
| 用户反馈 | 调整方式 |
|---|---|
| "角度不对" / "再偏一点" | 调整 prompt 中的角度描述词 |
| "商品变形了" / "不像原图" | 在 prompt 末尾追加 "Proportions and every detail exactly matching the uploaded photo" |
| "背景不好看" | 替换场景描述或切换背景模式 |
| "颜色偏了" | 追加 "Color accuracy strictly consistent with the original photo" |
| "要更多角度" | 从角度清单中添加,增量生成(不重新生成已完成的) |
| "换一种风格/氛围" | 调整 lighting/mood 描述词 |
| "分辨率不够" | 追加 upscale 处理 |
迭代节奏:建议最多 3 轮。超过 3 轮 → 建议:
output_dir 已在 Preflight 解析完毕,Execute 的 --download-dir 已将文件下载到 {output_dir}。Deliver 只做重命名:
mv {output_dir}/{task_id_file} {output_dir}/{date}_{product}_{angle}.{ext}
{ext} 取自 downloaded_files[0].saved_path 的实际扩展名。
命名规则:{date}_{product}_{angle}.{ext}
示例:2026-03-23_sneaker_front.png、2026-03-23_sneaker_back.jpg、2026-03-23_sneaker_quarter-right.png
前提: can_record = cwd 有 openclaw.yaml AND $VISUAL 存在(两者缺一即 false)。不满足 → 跳过全部记录,反馈仅当前对话有效。
No feedback → 完全跳过,不读 observations.yaml,零开销。
User approved style →
read $VISUAL/memory/observations/observations.yaml → scan similar key → merge or append → write back.
len(projects) >= 2 → propose promotion (non-blocking).
提议(在回复末尾提及,不打断主流程):
"顺便说一下,你在 N 个项目中都偏好 X。要保存吗? → 保存到 product-photography 场景 [默认] → 保存到全局偏好 → 不保存" User confirms → write to
$VISUAL/memory/scenes/{scope}.md或global.md,then delete observation entry User ignores → do nothing
User rejected ("不要 XX") →
has openclaw.yaml → ask scope: "仅这个项目不用 XX,还是以后都不要?"
→ 仅项目 → append to ./DESIGN.md Constraints
→ 以后都不要 → append to $VISUAL/rules/quality.yaml(需用户确认)
no openclaw.yaml → current task only, write nothing
{date}_{product}_{angle}.{ext}{variable} 部分--download-dir 始终指向 Preflight 解析的 output_dir,不指向含源文件的目录