소스 정보
- 저장소
- meitu/meitu-skills
- 최근 소스 활동
- 2026년 6월 15일 15:15
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 31
- 포크
- 2
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/meitu/meitu-skills --skill meitu-product-swap명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | meitu-product-swap |
| description | "对电商图片中的商品进行智能替换,支持一对一、一对多、多对一映射关系。当用户提到商品替换、换商品、复刻爆款图片、替换商品主体时触发。" |
根据用户上传的商品原图与目标参考图,对图片中的商品进行智能替换,生成高质量的商品融合效果图。支持一对一、一对多、多对一映射关系。
不适用场景:背景生成、模特换装
npm install -g meitu-cli@latest(包名 meitu-cli)meitu image-edit(默认优先 praline_pro 路径,适用于多图融合/商品替换/合成)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/{OPENCLAW_HOME}/workspace/visual/
路径别名: 下文中
$VISUAL={OPENCLAW_HOME}/workspace/visual/
流程按实际执行顺序排列:
Preflight → [Context] → Execute → Refine → Deliver → [Record]
↑ 项目模式时执行 ↑ 项目模式时执行
↑ 一次性模式跳过 ↑ 一次性模式跳过
meitu --version → 未安装则提示 npm install -g meitu-cli@latest
meitu auth verify --json → 凭证无效则引导配置
Detect mode: cwd has openclaw.yaml → project mode; else → one-off
can_record = cwd 有 openclaw.yaml AND $VISUAL 存在(两者缺一即 false)
Resolve output_dir: openclaw.yaml → ./output/ | else → $VISUAL/output/meitu-product-swap/
mkdir -p {output_dir}
硬约束:output_dir MUST NOT 指向 skill 文件夹内部
项目创建(仅当用户主动要求时):
已在项目目录中(有 openclaw.yaml)→ 跳过。否则:
mkdir -p $VISUAL/projects/{name}/output
创建 openclaw.yaml:
project:
name: "{name}"
type: "meitu-product-swap"
brand: "{brand}"
created: "{date}"
创建 DESIGN.md(空模板,含 Context References + Project Decisions + Iteration Log 三个空 section)。
mode = one-off → 跳过此步,直接到 Execute。以下仅限 project 模式:
逐步读取上下文(均 skip if missing):
图片标记与分析
Agent 必须使用自身多模态视觉能力查看每张图片,提取商品特征(材质、颜色、结构、Logo 等),不依赖用户描述也不调用外部图片分析工具。
判断用户上传图片数量,分析用户指令:
命令与参考图路由
命令选择决策表:
| 用户意图 | 命令 | model | 关键参数 | 说明 |
|---|---|---|---|---|
| 商品替换到场景图 | image-edit | praline_pro(默认主路径) | --image_list <目标参考图> <商品原图> | 多图融合/合成的标准命令 |
| 商品替换 + 风格化 | image-edit | praline_pro | 同上 | 风格化通过 prompt 描述,不切换 model |
| 仅改画风/卡通化 | image-edit | nougat | --image_list <单图> | 非本 Skill 核心场景,建议用其他 Skill |
本 Skill 固定使用
image-edit,默认优先走praline_pro主路径;nougat(风格化)和gummy_pro(人像写真)都不适用于商品替换主场景。
参考图路由表:
| 意图模式 | 参考输入 | --image_list 传递方式 | prompt 中引用 |
|---|---|---|---|
| 一对一(图A商品→图B场景) | 商品原图 + 目标参考图 | --image_list <目标参考图URL> <商品原图URL> | Image 1 = 场景,Image 2 = 商品 |
| 一对多(图A商品→图B/C/D场景) | 商品原图 + 多张目标参考图 | 逐组调用:--image_list <参考图N> <商品原图> | 同上,每组独立 prompt |
| 多对一(图A/B商品→图C场景) | 多张商品原图 + 目标参考图 | 逐组调用:--image_list <目标参考图> <商品原图N> | 同上,每组独立 prompt |
图片顺序规则:CLI
--image_list参数顺序始终为目标参考图在前(Image 1),商品原图在后(Image 2)。Prompt 中统一用 CLI 位置编号引用:Image 1 = 场景/目标参考图,Image 2 = 商品原图。
Prompt 组装
不要调用图片分析工具(图片标记与分析步骤已通过 Agent 视觉完成特征提取),基于 references/prompts.md 模板自行组装 Prompt。
## ROLE_AND_CONTEXT — 角色设定## GUIDELINES — 替换策略、特征提取、一致性、光影等指导原则## PROMPT_CONSTRUCTION — Part1 逻辑分析层 + Part2 物理执行层(含 PREFIX/SUFFIX 模板)Prompt 组装中间产物 schema(Agent 内部推理结构):
{
"task_label": "图{x}商品 植入 图{y}场景",
"part1_logic": {
"replacement_strategy": "集群擦除逻辑描述",
"feature_extraction": "商品材质、颜色、细节",
"physical_blueprint": {
"perspective": "透视匹配描述",
"freeze_zones": "一致性死锁区描述",
"lighting": "光影融合计算"
}
},
"part2_execution": {
"prefix": "完整 PREFIX_INSTRUCTION(不可修改,见 prompts.md § PROMPT_CONSTRUCTION)",
"body": "英文提示词(融合蓝图 + 用户需求 + 上下文约束)",
"suffix": "完整 SUFFIX_INSTRUCTION(不可修改,见 prompts.md § PROMPT_CONSTRUCTION)"
},
"final_prompt": "prefix + body + suffix 拼接的完整 prompt 字符串"
}
final_prompt直接传给meitu image-edit --prompt。Part1 为 Agent 内部推理过程,不传给 CLI。
质量自检
按 references/prompts.md § SELF_CHECK 执行 V1-V6 检查,不通过则回到 Prompt 组装步骤修正。
图片生成
直接使用 Preflight 解析的 output_dir,确保目录存在后调用 meitu-cli:
mkdir -p {output_dir}
meitu image-edit \
--skill_name skill_meitu-product-swap \
--image_list "<目标参考图URL>" "<商品原图URL>" \
--prompt "<final_prompt>" \
--json \
--download-dir {output_dir}
praline_pro 主路径(适用于多图融合/合成),通常无需显式传 --model--ratio 缩小一档,如不传 ratio 使用默认 auto)创意型任务必须有独立的迭代精炼循环。
结果呈现: 展示生成结果时,说明关键设计决策——为什么选择这个透视角度、集群擦除包含/排除了哪些元素、光影融合的处理方式。让用户理解替换逻辑,以便给出精准反馈。
提示用户:"如果需要对图片中的文字内容进行修改,你可以在画布中选中需要修改文字的图片,点击选择'无痕改字'功能进行编辑。"
反馈分类与响应路由:
| 反馈类型 | 典型表述 | 调整目标 | 操作 |
|---|---|---|---|
| 色彩/氛围 | "色温再暖一点"、"饱和度太高" | prompt 描述词 | 调整 Part2 body 色彩/氛围描述 → 重新生成 |
| 角度/透视/位置 | "透视不对"、"商品放偏了" | prompt 物理蓝图 | 调整 Part1 空间透视 + Part2 位置描述 → 重新生成 |
| 商品变形/模糊 | "Logo 糊了"、"形状变了" | 参数或输入图 | 检查 --ratio、强化 PREFIX 一致性约束、确认输入图质量 |
| 背景被修改 | "文字颜色变了"、"背景元素消失" | prompt 冻结指令 | 加强 ANTI-MUTATION 段落、检查集群擦除边界 |
| 整体不满意 | "完全不对"、"重来" | 重新分析 | 回到 Execute 图片标记与分析步骤 |
迭代节奏:
output_dir 已在 Preflight 解析,此处仅做重命名。
mv {file} {output_dir}/{date}_{name}.{ext}
If DESIGN.md Iteration Log > 5 entries → compact: keep recent 5, archive older to ./drafts/design-history.md
can_record = cwd 有 openclaw.yaml AND $VISUAL 存在(两者缺一即 false) can_record = false → 跳过。
例外: 一次性模式下用户反复表达同一偏好(如多次说"不要渐变"),Agent MAY 直接提议:
"你多次提到不要渐变,要加入全局禁忌列表吗?" → 用户同意 → 写 $VISUAL/rules/quality.yaml
项目模式下:
User approves style → write observation:
$VISUAL/memory/observations/observations.yaml → scan similar key → merge or append → write backlen(projects) >= 2 → propose promotion (non-blocking),在回复末尾提及,不打断主流程Observation entry schema:
- key: "偏好观察描述"
scope-hint: meitu-product-swap # 来自 project.type;跨场景则为 null
projects: [project-name]
first-seen: 2026-03-22
last-seen: 2026-03-22
晋升路由规则(两种模式通用,「非阻塞」——在回复末尾提及,不打断主流程): "你在 N 个项目中都偏好 X。要保存吗? → 保存到 {scope-hint} 场景 [默认] → 保存到全局偏好 → 不保存" Promotion target 自动路由:
scope-hint 非 null → 默认写入 $VISUAL/memory/scenes/{scope-hint}.md(不存在则创建,含 frontmatter)scope-hint 为 null → 默认写入 $VISUAL/memory/global.mdUser rejects ("不要 XX"):
If rejected element already in $VISUAL/rules/quality.yaml → 自动过滤,不问。
If new rejection + has openclaw.yaml → ask: "仅这个项目不用 XX,还是以后都不要?"
仅项目 → append to ./DESIGN.md Constraints
以后都不要 → append to $VISUAL/rules/quality.yaml(该问答即确认)
If no openclaw.yaml → current task only, write nothing.
Nothing → nothing.
openclaw.yaml)→ ./output/{date}_{effect-name}.{ext}$VISUAL 存在)→ $VISUAL/output/meitu-product-swap/{date}_{effect-name}.{ext}{date}_{effect-name}.{ext}(如 2026-03-22_serum-bottle-marble.jpg)--download-dir 下载后需通过 mv 重命名为上述格式