| name | meitu-beauty |
| description | 对人像照片进行 AI 美颜处理(磨皮、美白、精修五官)。当用户提到美颜、磨皮、美白、精修、beautify、beauty enhance、让照片更好看时触发。仅支持单人照片。 |
| version | 1.0.0 |
Meitu Beauty
Overview
一键 AI 美颜:磨皮、美白、精修五官。调用 meitu image-beauty-enhance,仅支持单人人像照片。
Dependencies
- meitu-cli ≥ 0.1.9 —
npm install -g meitu-cli
- 凭证配置:
meitu config set-ak --value "..." + meitu config set-sk --value "..." 或环境变量 OPENAPI_ACCESS_KEY / OPENAPI_SECRET_KEY
- oc-workspace.mjs:
{OPENCLAW_HOME}/workspace/scripts/oc-workspace.mjs(可选,不存在时降级)
路径别名: 下文中 $VISUAL = {OPENCLAW_HOME}/workspace/visual/,$OC_SCRIPT = {OPENCLAW_HOME}/workspace/scripts/oc-workspace.mjs
Core Workflow
Preflight → [Context: 跳过(工具型美颜,无创意自由度)] → Execute → Deliver
Preflight
meitu --version → 未安装则提示 npm install -g meitu-cli
meitu auth verify --json → 凭证无效则引导配置
node $OC_SCRIPT resolve → 获取 mode, visual, can_read_knowledge, can_record
脚本不存在 → 检查 cwd 有无 openclaw.yaml → 确定 mode;检查 $VISUAL 目录 → 确定 capabilities
- output_dir 解析(Preflight 内 MUST 完成):
node $OC_SCRIPT route-output --skill meitu-beauty --name tmp --ext tmp
脚本不存在 → 3 级 fallback:
① cwd 有 openclaw.yaml → ./output/
② $VISUAL 存在 → $VISUAL/output/meitu-beauty/
③ 均无 → ~/Downloads/
mkdir -p {output_dir}
Execute
输入获取
用户提供图片,接受以下形式:
- 本地文件路径 → 使用
--image <path>
- 图片 URL → 使用
--image <url>
- 对话中直接发送的图片 → 保存到临时文件后使用
--image <path>
若用户未提供图片,主动询问:"请提供需要美颜的人像照片(文件路径或 URL)。"
人像校验(关键前置步骤)
此工具仅支持单人人像。调用前 MUST 校验:
-
读取用户提供的图片,目视检查:
- 是否包含人脸 → 无人脸则拒绝:"这张图片中没有检测到人像,美颜工具仅支持包含人脸的照片。"
- 是否为单人 → 多人则拒绝:"检测到多人,美颜工具仅支持单人照片。请裁剪为单人后重试。"
- 人脸是否足够大且清晰 → 人脸过小/模糊则警告:"人脸较小/模糊,美颜效果可能不明显,是否继续?"
-
若无法预判(如 URL 无法预览),直接调用工具,根据返回错误处理。
强度选择
| 用户意图 | --beatify_type | 说明 |
|---|
| "自然美颜"、"轻微调整"、"稍微美化"、未指定强度 | 0 | 自然效果(默认) |
| "大力美颜"、"重度磨皮"、"效果强一点"、"狠狠美颜" | 1 | 增强效果 |
调用命令
meitu image-beauty-enhance \
--image <url_or_path> \
--beatify_type <0|1> \
--json \
--download-dir {output_dir}
注意: 参数拼写是 --beatify_type(非 --beautify_type),这是 CLI 的已知拼写。
结果处理
ok: true → --download-dir 已指定,从 downloaded_files[0].saved_path 获取本地文件路径;若未使用 --download-dir,从 media_urls[0] 获取结果图片 URL
ok: false → 进入错误降级
错误降级
先检查 error_name 分流,再按级别降级:
| error_name | 处理 | 可重试 |
|---|
CONTENT_REQUIREMENTS_UNMET (code 98501) | 图片不含人脸或不符合单人要求。直接告知用户:"该图片不符合美颜要求(需要单人人像照片),请更换图片。" 不重试。 | 否 |
ORDER_REQUIRED | 余额不足,提示充值,展示 action_url | 否 |
CREDENTIALS_MISSING | 提示配置 AK/SK | 否 |
| 其他错误 | 按以下级别降级 ↓ | 视情况 |
通用降级(仅 retryable: true 或未知错误时):
| 级别 | 策略 | 操作 |
|---|
| L1 | 降低强度 | beatify_type 1 → 0 重试 |
| L2 | 检查图片质量 | 提示用户更换更清晰、人脸更大的照片 |
| L3 | 检查图片格式 | 确认为 JPG/PNG/WEBP,非 GIF/BMP 等不支持格式 |
| L4 | 停止报错 | 连续 2 次失败 → 报告 code + hint,停止重试 |
Deliver
直接使用 Preflight 解析的 output_dir。
node $OC_SCRIPT rename --file {path} --name {effect}
脚本不存在 → mv 重命名为 {output_dir}/{date}_beauty_{original_name}.{ext}。
命名示例:2026-03-23_beauty_portrait.jpg
Output
| 项目 | 规格 |
|---|
| 格式 | 与原图一致(通常 JPG) |
| 数量 | 单张 |
| 命名 | {date}_beauty_{original_name}.{ext} |
| 位置 | 由 Deliver 步骤解析 |