meitu-image-adapt について
meitu-image-adapt は、meitu-cli で画像のキャンバスを指定ピクセルサイズに広げるスキルです。被写体の比率を保ち、背景を自然に延長するため、プラットフォームやアスペクト比に合わせた画像準備に使えます。
主な機能
- 01指定ピクセルサイズへのキャンバス拡張
- 02被写体の比率を維持
- 03背景の自然な延長
- 04URLとローカル画像に対応
- 05プラットフォーム別プリセットと比率の解釈
活用シーン
- 01小紅書の縦型カバー作成
- 02Douyin動画カバーの準備
- 03WeChat公式アカウント記事ヘッダーの調整
- 04指定アスペクト比への画像適応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ meitu/ meitu-skills --skill meitu-image-adaptインストール後、Claude Code で/meitu-image-adaptを入力して読み込まれたか確認します。
同梱ファイルreferences/platform-presets.md
詳細
概要
ユーザーが提供した画像を、主体の形を保ったまま、背景を継ぎ目なく自然に延長して、指定された目標サイズ(ピクセル)に適応させます。中核となるツールは、meitu image-transform のキャンバス拡張機能です。
依存関係
- 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/
コアワークフロー
Preflight → Execute → Deliver
事前確認
meitu --version→ 未インストールの場合はnpm install -g meitu-cli@latestを案内しますmeitu auth verify --json→ 認証情報が無効の場合は AK/SK の設定を案内します- モードを判定します:cwd に
openclaw.yamlがある場合はプロジェクトモード、ない場合は単発モードです - output_dir を解決します:openclaw.yaml がある場合は
./output/、ない場合は$VISUAL/output/meitu-image-adapt/mkdir -p {output_dir}
実行
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 |
| WeChat 公式アカウント | 記事のヘッダー画像 | 900 × 383 |
| WeChat モーメンツ | 正方形 | 1080 × 1080 |
| Bilibili | 動画のカバー | 1920 × 1080 |
| 淘宝 | 商品のメイン画像 | 800 × 800 |
プラットフォームに複数の用途がある場合は、選択肢を提示してユーザーに選んでもらいます。
C. ユーザーがアスペクト比(例:16:9)を指定した場合 → 元画像の全ピクセルを含むように(切り抜かずに)、元画像を包含する最小の目標サイズを選びます。
- 目標比率 W:H に対して、次の2つの方法を計算します。① 元画像の幅を基準に高さを計算する。② 元画像の高さを基準に幅を計算する。出力面積が大きい方を選びます(つまり、両辺が元画像以上になるようにします)。
- 例:元画像が 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% 以上(ほぼ同じ場合はユーザーに確認を促す)
- 延長率が妥当 — 1方向への延長が元画像の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 | 段階的に適応 | 1回の延長幅が大きすぎる場合は、2段階に分けます。まず中間サイズに適応し、次に中間サイズから目標サイズに適応します |
| 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 へのアクセス可否またはファイル形式を確認します
出力
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
出力
| 属性 | 値 |
|---|---|
| 形式 | 元画像と同じ(PNG/JPEG/WEBP) |
| 命名 | {date}_{effect-name}.{ext} |
| サイズ | ユーザー指定の width × height |
| パス | Deliver の手順で決定 |
| 特徴 | 主体の比率を維持し、内容を欠落させず、背景を継ぎ目なく自然に延長 |