mcpField
M
meitu-image-adapt

meitu-image-adapt

github.com/meituクリエイティブ・メディア36113 回インストール9 週間前に更新
リポジトリ

meitu-image-adapt について

meitu-image-adapt は、meitu-cli で画像のキャンバスを指定ピクセルサイズに広げるスキルです。被写体の比率を保ち、背景を自然に延長するため、プラットフォームやアスペクト比に合わせた画像準備に使えます。

主な機能

  1. 01指定ピクセルサイズへのキャンバス拡張
  2. 02被写体の比率を維持
  3. 03背景の自然な延長
  4. 04URLとローカル画像に対応
  5. 05プラットフォーム別プリセットと比率の解釈

活用シーン

  1. 01小紅書の縦型カバー作成
  2. 02Douyin動画カバーの準備
  3. 03WeChat公式アカウント記事ヘッダーの調整
  4. 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
事前確認
  1. meitu --version → 未インストールの場合は npm install -g meitu-cli@latest を案内します
  2. meitu auth verify --json → 認証情報が無効の場合は AK/SK の設定を案内します
  3. モードを判定します:cwd に openclaw.yaml がある場合はプロジェクトモード、ない場合は単発モードです
  4. 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 の手順で決定
特徴主体の比率を維持し、内容を欠落させず、背景を継ぎ目なく自然に延長

コメント