界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

meitu-image-adapt

meitu-image-adapt

【效率与协作】将任意图片智能适配到目标比例,自动重构构图逻辑,保持主体比例不变形、内容完整不丢失,背景自然延展无接缝。当用户提到图片适配、图片延展、图片扩展、外扩、outpaint、将竖图变横图、适配小红书/抖音/公众号尺寸时触发。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: meitu-image-adapt description: "将任意图片智能适配到目标比例,自动重构构图逻辑,保持主体比例不变形、内容完整不丢失,背景自然延展无接缝。当用户提到图片适配、图片延展、图片扩展、外扩、outpaint、将竖图变横图、适配小红书/抖音/公众号尺寸时触发。" version: "1.0.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"],"write":["~/.openclaw/workspace/visual/","./output/"]}},"primaryEnv":"MEITU_OPENAPI_ACCESS_KEY"}} 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 - type: file_write paths: - ~/.openclaw/workspace/visual/ - ./output/ - $VISUAL/output/meitu-image-adapt/ - ~/.openclaw/workspace/visual/output/meitu-image-adapt/ - type: exec commands: - meitu

Overview

将用户提供的图片智能适配到目标宽高(像素),主体保持不变形,背景自然延展无接缝。核心工具为 meitu image-transform 的画布扩展能力。

Dependencies

  • meitu-cli (>=2.0.6): npm install -g meitu-cli@latest
    • 首选环境变量:MEITU_OPENAPI_ACCESS_KEY / MEITU_OPENAPI_SECRET_KEY
    • 或预置凭证文件:~/.meitu/credentials.json
    • 如需人工初始化本地凭证,可显式执行 meitu config set-ak --value "..." + meitu config set-sk --value "..."(会写入本地文件)
    • 验证: meitu auth verify --json

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


Core Workflow

Preflight → Execute → Deliver

Preflight

  1. meitu --version → 未安装则提示 npm install -g meitu-cli@latest
  2. meitu auth verify --json → 凭证无效则提示配置 AK/SK
  3. Detect mode: cwd has openclaw.yaml → project mode; else → one-off
  4. Resolve output_dir: openclaw.yaml → ./output/ | else → $VISUAL/output/meitu-image-adapt/ mkdir -p {output_dir}

Execute

1. 收集输入

输入说明必填默认值
image待适配的原图是—
width目标宽度(像素)是1080
height目标高度(像素)是1920

image 接受格式: URL 或本地路径 (.jpg/.jpeg/.png/.webp)

2. 目标尺寸解析

用户可能直接给像素值,也可能说平台名或比例。按以下优先级解析:

A. 用户给了明确像素 → 直接使用。

B. 用户给了平台名 → 查 references/platform-presets.md 获取推荐尺寸。

常用速查(完整表见 references):

平台场景width × height
小红书竖版笔记封面1080 × 1440
抖音竖版视频封面1080 × 1920
微信公众号文章头图900 × 383
微信朋友圈正方形1080 × 1080
B站视频封面1920 × 1080
淘宝商品主图800 × 800

若平台有多个场景,列出选项让用户选择。

C. 用户给了比例(如 16:9) → 保证输出覆盖原图所有像素(不裁切),取能包含原图的最小目标尺寸:

  • 对目标比例 W:H,分别计算两种方案:① 以原图宽度为基准算高度;② 以原图高度为基准算宽度。取两者中输出面积更大的方案(即确保两边都 ≥ 原图)。
  • 例:原图 1080×1440,目标 16:9 → 方案① width=1080, height=608(高度缩小,丢内容);方案② width=2560, height=1440(宽度延展,保全内容)→ 取方案② = 2560×1440
  • 例:原图 1080×1440,目标 1:1 → width=1440, height=1440(以长边为基准,短边延展)

D. 用户未指定 → 默认 1080×1920(竖版全屏),并告知用户可调整。

3. 输入预检

调用前检查,避免浪费额度:

  • 原图可访问 — URL 能打开 / 本地路径存在
  • 目标尺寸合理 — width 和 height 均在 100-8192 范围内
  • 非无意义操作 — 目标尺寸与原图尺寸差异 ≥5%(几乎相同则提醒用户确认)
  • 延展比例合理 — 单方向延展不超过原图 4 倍(如 500px 延展到 2000px 以上),超出则警告质量可能下降

4. 调用 meitu-cli

meitu image-transform \
  --skill_name skill_meitu-image-adapt \
  --image_url "{image}" \
  --target_width {width} \
  --target_height {height} \
  [--prompt "{extend_prompt}"] \
  --json \
  --download-dir "{output_dir}"

返回处理:

  • ok: true → downloaded_files[0].saved_path 获取本地路径
  • ok: false → 先检查 CLI 原始字段 code、hint、error_name、action_url,再按 meitu-tools 规则归类为 error_type / user_hint / next_action

extend_prompt 仅在用户明确描述了扩展区域内容时提供,例如:

  • "extend seaside sky and sand naturally"
  • "extend studio background with clean white walls"
  • "extend city street scene consistently"

未提供时可以省略,由默认扩图路径完成自然外延。

5. 错误降级策略

级别操作说明
L1调整目标尺寸到最近的标准比例非标尺寸可能导致异常,尝试最接近的标准比例(16:9, 9:16, 4:3, 3:4, 1:1)
L2缩小目标尺寸保持比例不变,将长边缩小到 2048px 以内重试
L3分步适配若单次延展幅度过大,拆成两步:先适配到中间尺寸,再从中间尺寸适配到目标
L4停止并报错连续 2 次失败 → 报告 error code 和 hint,不再重试

常见错误码:

  • ORDER_REQUIRED → 余额不足,告知用户充值,提供 action_url
  • CREDENTIALS_MISSING → AK/SK 未配置,优先提示使用环境变量或预置 ~/.meitu/credentials.json;仅在用户明确要求写入本地凭证时,再提示 meitu config set-ak/set-sk
  • INVALID_IMAGE → 图片无法读取,检查 URL 可访问性或文件格式

Deliver

mv {file} {output_dir}/{date}_{name}.{ext}

命名规范: {date}_{描述性名称}.{ext}

  • {date} = YYYY-MM-DD(如 2026-03-23)
  • {name} = 简洁描述适配操作(如 adapt-1080x1920、adapt-xiaohongshu)
  • {ext} 取自下载文件的实际扩展名,不硬编码

路径展示用 ~/ 格式。

示例: ~/…/output/meitu-image-adapt/2026-03-23_adapt-xiaohongshu-cover.png


Output

属性值
格式与原图一致(PNG/JPEG/WEBP)
命名{date}_{effect-name}.{ext}
尺寸用户指定的 width × height
路径由 Deliver 步骤确定
特征主体比例不变形、内容完整不丢失、背景自然延展无接缝
我的收藏