Die Oberfläche ist lokalisiert; Skill-Beschreibungen und -Dokumente werden per KI automatisch in Ihre Sprache übersetzt. Code, Befehle, Pfade und Fachbegriffe bleiben im Original, maßgeblich ist das Dokument des Autors.
Skills entdecken
Produktivität · SKILL.md

image-face-swap

image-face-swap

双图换脸/换头合成,将源图人脸替换到目标场景图上,保留目标图构图、身体和背景并自动做肤色融合与光影匹配。仅在用户明确提供两张图,并表达换脸、换头、把 A 的脸换到 B 上、face swap 或明确的 P 脸合成意图时触发。执行时会使用本地 Meitu OpenAPI 凭证授权,并将源人脸图和目标场景图发送到 Meitu 外部服务处理。

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill-Dokumentation

GitHub

name: image-face-swap description: "双图换脸/换头合成,将源图人脸替换到目标场景图上,保留目标图构图、身体和背景并自动做肤色融合与光影匹配。仅在用户明确提供两张图,并表达换脸、换头、把 A 的脸换到 B 上、face swap 或明确的 P 脸合成意图时触发。执行时会使用本地 Meitu OpenAPI 凭证授权,并将源人脸图和目标场景图发送到 Meitu 外部服务处理。" version: "1.0.0" metadata: {"openclaw":{"requires":{"bins":["meitu"],"env":["MEITU_OPENAPI_ACCESS_KEY","MEITU_OPENAPI_SECRET_KEY","MEITU_OPENAPI_TOOL_TASK_MODE"],"paths":{"read":["/.meitu/credentials.json","/.meitu/tool-registry.json","/.openclaw/workspace/visual/","./openclaw.yaml"],"write":["/.openclaw/workspace/visual/","./output/"]}},"primaryEnv":"MEITU_OPENAPI_ACCESS_KEY","security":{"credentialUse":"Uses Meitu OpenAPI credentials from env or ~/.meitu/credentials.json for CLI authentication; credentials must not be echoed, logged, or embedded in prompts.","remoteProcessing":"Source face images and target scene images are transmitted to Meitu OpenAPI for face-swap processing.","biometricNotice":"Face images are sensitive biometric-like personal data; users should understand that provided images are processed by an external Meitu service."}}} security: credential_use: "Uses Meitu OpenAPI credentials from env or ~/.meitu/credentials.json for CLI authentication; credentials must not be echoed, logged, or embedded in prompts." remote_processing: "Source face images and target scene images are transmitted to Meitu OpenAPI for face-swap processing." biometric_notice: "Face images are sensitive biometric-like personal data; users should understand that provided images are processed by an external Meitu service." requirements: credentials: - name: MEITU_OPENAPI_ACCESS_KEY source: env | ~/.meitu/credentials.json - name: MEITU_OPENAPI_SECRET_KEY source: env | ~/.meitu/credentials.json env: MEITU_OPENAPI_TOOL_TASK_MODE: command permissions: - type: file_read paths: - ~/.meitu/credentials.json - ~/.meitu/tool-registry.json - ~/.openclaw/workspace/visual/ - ./openclaw.yaml - type: file_write paths: - ~/.openclaw/workspace/visual/ - ./output/ - type: exec commands: - meitu

图片换脸(image-face-swap)

Overview

双图换脸/换头合成,将源图人脸替换到目标场景图上。保留目标图的构图/身体/背景,自动肤色融合光影匹配;用于角色扮演、把自己的脸放到另一张图上、趣味合成。一次只换一张脸。

执行前应让用户清楚知道:本 Skill 会读取 Meitu 凭证、调用本地 meitu CLI、将两张人脸相关图片发送到 Meitu OpenAPI 处理,并把结果写入 ./output/ 或 $VISUAL/output/image-face-swap/。

API Mapping

  • 双图换脸/换头合成:image_face_swap

Dependencies

  • meitu-cli: >=2.0.6(npm install -g meitu-cli@latest)
  • 凭证:CONFIG AKSK → meitu tools update;EXEC AKSK → 实际执行(见根 CONFIG.md)
  • 环境变量:MEITU_OPENAPI_TOOL_TASK_MODE=command

路径别名:$VISUAL = {OPENCLAW_HOME}/workspace/visual/

Core Workflow

Preflight → Execute → Deliver

Preflight

  1. meitu --version ≥ 2.0.6(否则 npm install -g meitu-cli@latest)
  2. 确认已跑过 meitu tools update(用 CONFIG AKSK)
  3. 当前 AKSK = EXEC,且 MEITU_OPENAPI_TOOL_TASK_MODE=command
  4. 解析 output_dir:openclaw.yaml → ./output/ |else → $VISUAL/output/image-face-swap/;mkdir -p

Execute

触发信号 / 路由规则

核心判断维度:图片数量 + head/sence 角色分配。

场景判定路由
双图换脸提供 2 张图,意图换脸image_face_swap,head/sence 按规则分配

决策顺序:

  1. 图片数量:不足 2 张 → 提示补图;超过 2 张 → 取前 2 张并告知
  2. 角色分配:
    • 用户明确指定 → 按指定分配 head / sence
    • 未区分 → 第 1 张 = head(人脸源),第 2 张 = sence(场景底图)
    • "用 B 换到 A" → B=head(源),A=sence
  3. 唯一路由:调用 image_face_swap

单 API 工具:参数齐全即调用,失败重试 1 次后返回错误;不做跨工具兜底。侧脸/遮挡严重不阻断调用,但告知效果可能受限。

参数定义

参数类型必填默认值说明
head_image_urlSTRING是--人脸源图 URL
sence_image_urlSTRING是--场景底图 URL(保留构图/身体/背景)
promptSTRING是--附加提示词。缺失 → 提示"请描述换脸效果要求"

工具调用

meitu image-face-swap \
  --skill_name skill_image-face-swap \
  --head_image_url <head_url> \
  --sence_image_url <sence_url> \
  --prompt "<effect_description>" \
  --json \
  --download-dir {output_dir}

错误降级

场景处理方式
图片不足 2 张提示"请提供两张图片:一张人脸源图,一张目标场景图"
图片 3+ 张取前 2 张(第 1=head,第 2=sence),告知用户
head_image_url / sence_image_url 不可访问返回图片链接无效错误,不重试
未检测到人脸(head)返回错误:人脸源图需包含清晰正脸
image_face_swap 调用失败重试 1 次,仍失败返回错误
内容合规拦截返回合规提示,不重试
侧脸 / 遮挡严重不阻断调用,告知效果可能受限
视频换脸拒绝,仅支持图片
多人同时换脸本工具一次只换一张脸

Deliver

  • 直接使用 Preflight 解析的 output_dir
  • 从 downloaded_files[0].saved_path 读取已下载文件路径
  • mv {downloaded_files[0].saved_path} {output_dir}/{YYYY-MM-DD}_{descriptive}_image-face-swap.jpg

Output

  • 格式:JPEG/PNG(保持原格式)
  • 命名:{YYYY-MM-DD}_{descriptive}_image-face-swap.jpg
  • 位置:项目 → ./output/,一次性 → $VISUAL/output/image-face-swap/

基线 Task ID

见 references/task-id-baseline.md 中对应行。

Gespeicherte Skills