mcpField
M
meitu-product-view

meitu-product-view

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

meitu-product-view について

meitu-product-viewは、1枚の商品画像から複数角度の画像を生成するクリエイティブスキルです。EC向けに、角度の組み合わせや背景を選び、プラットフォーム仕様に合わせて出力を調整できます。

主な機能

  1. 01標準・5方向・全角度の画像生成
  2. 02角度のカスタマイズと3方向合成
  3. 03白背景・シーン・元背景・透明背景に対応
  4. 04ECプラットフォーム向けの比率とサイズ調整
  5. 05オプションの高解像度化

活用シーン

  1. 01商品詳細ページ用の多角度画像作成
  2. 02ECプラットフォーム向け商品画像セットの準備
  3. 03元背景または透明背景の商品画像作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/meitu/meitu-skills --skill meitu-product-view

インストール後、Claude Code で/meitu-product-viewを入力して読み込まれたか確認します。

同梱ファイルreferences/ecommerce-specs.mdreferences/prompts.md

詳細

商品の多角度展示画像

1 枚の商品画像から多角度の展示画像を生成します。標準的な三面図、EC 向け五面図、全角度展示に対応しています。

Overview

ユーザーが 1 枚の商品画像をアップロードすると、異なる角度の展示画像を自動生成します。白背景/シーン/透明背景に対応しており、超解像度による高画質化も選択できます。淘宝、京東、拼多多、Amazon などの EC プラットフォームの仕様に適合しています。

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
  • パッケージの参照ファイル(このスキルパッケージに同梱):
    • references/prompts.md — 固定テンプレートと角度セクション
    • references/ecommerce-specs.md — プラットフォームの仕様と視点の推奨事項
    • これらの参照ファイルはパッケージ内の静的素材です。プロジェクトモードでは、DESIGN.md や openclaw.yaml がブランド素材やプラットフォームのルールを明示的に参照している場合、ユーザーが有効にした $VISUAL/assets/brands/ と $VISUAL/rules/platforms/ も追加で読み込むことがあります。

パスのエイリアス: 以下では $VISUAL = {OPENCLAW_HOME}/workspace/visual/ とします。

Core Workflow

Preflight → [Context] → Execute → Refine → Deliver → [Record]

任意のステップ: [Context] — 1 回限りのモードではスキップします。[Record] — can_record=false の場合はスキップします。

Preflight
  1. meitu --version → 未インストールの場合は npm install -g meitu-cli@latest を案内します
  2. meitu auth verify --json → 認証情報が無効な場合は設定方法を案内します
  3. モードを検出します:cwd に openclaw.yaml がある場合はプロジェクトモード、ない場合は 1 回限りのモードです。 $VISUAL ディレクトリを確認し、capabilities を判定します。 can_record = cwd に openclaw.yaml があり、かつ $VISUAL が存在する場合(どちらか一方でも欠けている場合は false)
  4. output_dir の解決(Preflight 内で必ず完了): output_dir を解決します:openclaw.yaml がある場合は ./output/、ない場合は $VISUAL/output/meitu-product-view/ mkdir -p {output_dir}

Execute 内のすべての --download-dir {output_dir} には、ここで解決したパスを使用します。

Context(プロジェクトモードで実行/1 回限りのモードではスキップ)

mode = one-off → このステップをスキップし、Execute に進みます。

mode = project → 次の順に読み込みます(各ステップで、ファイルがない場合はスキップします):

  1. ./DESIGN.md を読み込み、プロジェクトの決定事項と Context References を取得します。
    • references(例:brand: acme)を解決し、$VISUAL/assets/brands/acme/ の読み込みを試みます。
    • 読み込めた場合は最新版を使用し、読み込めない場合は DESIGN.md 内のインラインの代替値を使用します。
  2. $VISUAL/rules/quality.yaml を読み込み、forbidden リストを取得します。
  3. $VISUAL/memory/global.md を読み込み、シーンを横断する設定を取得します。
  4. openclaw.yaml の project.types(配列を優先)または project.type(単一値の場合は 1 要素の配列として扱います)を読み込みます。 → 各 type について、$VISUAL/memory/scenes/{type}.md を探し、存在する場合は読み込んで統合します。

→ quality の forbidden リストで生成要素を除外し、preferences でクリエイティブの方向性を強化します。 → $VISUAL が存在しない場合は 2〜4 をスキップし、DESIGN.md のみを読み込みます。

Execute

Step 1: 商品画像を受け取る

ユーザーが商品画像を 1 枚アップロードします。アップロードされていない場合は、次のように案内します。

「商品画像を 1 枚アップロードしてください(正面から撮影した写真が最適です。背景がシンプルだと、より高品質に生成できます)。」

画像を受け取ったら、以下の情報を分析します(エージェントが独自に判断し、外部ツールは呼び出しません)。

分析項目用途
商品カテゴリ推奨する角度とシーンの決定
主体の形状/比率prompt の {product_description} に入力
現在の撮影角度いずれかの視点としてそのまま使用できるかを判断
背景の状態切り抜きの前処理が必要かを判断

ユーザーが商品情報のテキスト説明も併せて提供した場合は、ユーザーの説明を優先します。

Step 2: ビューのプランを選択する

次の選択肢を提示します。

プラン含まれる角度適した用途
標準的な三面図正面、右側面、背面基本的な展示、すばやい画像生成
EC 向け五面図正面、左前 45°、右前 45°、背面、俯瞰EC メイン画像のセット
全角度展示正面、左前 45°、右前 45°、左側面、右側面、背面、俯瞰、クローズアップ高級商品の詳細ページ
三面図の合成1 枚の画像内に、左から正面・側面・背面を配置ソーシャルメディア、すばやい展示
カスタムユーザーが角度の組み合わせを選択特殊な要件

ユーザーが「カスタム」を選択した場合は、角度の一覧をすべて提示します。

角度識別子方位
正面front0°
左前 45°front-left-quarter315°
右前 45°front-right-quarter45°
左側面left-side270°
右側面right-side90°
左後 45°back-left-quarter225°
右後 45°back-right-quarter135°
背面back180°
俯瞰overhead仰角 60°
やや俯瞰elevated仰角 30°
ローアングルlow-angle仰角 -30°
クローズアップclose-up近距離のディテール

ユーザーが特定の EC プラットフォームに言及した場合は、references/ecommerce-specs.md を読み込み、プラットフォーム固有の角度の推奨事項とサイズ要件を確認したうえで、適切なビューのプリセット、比率、サイズを自動選択します。

Step 3: 背景モードを選択する

モード説明CLI での処理方法
白背景純白の背景prompt に白背景の説明を追加
シーンAI が商品を使用するシーンを生成prompt にシーンの説明を追加
元の背景を保持アップロード画像の背景を保持中国語の角度指示 prompt を使用
透明背景透明な PNGまず白背景で生成し、その後 cutout

「シーン」を選択した場合は、商品のカテゴリに基づいて 3 つのシーンを提案し、ユーザーの好みを尋ねます。シーンの推奨方針:

カテゴリ推奨するシーンの方向性
電子機器ミニマルなデスク、テクノロジーを感じさせる空間、オフィスシーン
衣類/バッグファッションスナップのシーン、クローゼット、旅行シーン
食品/飲料ダイニングテーブル、キッチン、ピクニック/アウトドア
家具/家電リビング、寝室、モダンな居住空間
化粧品/スキンケア化粧台、バスルーム、フラワーアレンジメント/自然の要素
スポーツ/アウトドアジム、ランニングトラック、自然の中のアウトドア

Step 4: 事前に切り抜く(条件付きで実行)

実行条件:元画像の背景が雑然としており、かつユーザーが白背景またはシーンモードを選択した場合。

meitu image-cutout \
  --skill_name skill_meitu-product-view \
  --image_url {image_url} \
  --model_type 1 \
  --json

切り抜き結果を、後続の生成で参照入力として使用します。cutout に失敗した場合はスキップし、元画像をそのまま使用します。

Step 5: 角度ごとに生成する

これが中心となる生成ステップです。ユーザーが選択した各角度について、meitu image-edit を呼び出します。

ツール呼び出しテンプレート:

meitu image-edit \
  --skill_name skill_meitu-product-view \
  --image_list {source_image_url} \
  --prompt "{angle_prompt}" \
  --model praline_pro \
  --ratio {target_ratio} \
  --json \
  --download-dir {output_dir}

プロンプトの構築:

  1. references/prompts.md から該当する角度のテンプレートを選択します(## {angle}-view セクションを基準にします)
  2. 変数を入力します:
    • {product_description} ← Step 1 の分析結果
    • {background} ← Step 3 で選択した背景のサフィックス(prompts.md の ## Background Suffixes を参照)
    • {scene_description} ← Step 3 のシーン説明(シーンモードのみ)
  3. プロンプトは英語を使用します(モデルの効果が高くなります)
  4. -ar、--no、(keyword:1.5)、<lora:xxx> など、プラットフォーム固有の構文は絶対に使用しないでください

角度 → prompts.md セクションの対応:

角度の識別子プロンプトテンプレートのセクション
front## front-view
right-side## right-side-view
left-side## left-side-view
back## back-view
front-right-quarter## front-right-quarter-view
front-left-quarter## front-left-quarter-view
back-right-quarter## back-right-quarter-view
back-left-quarter## back-left-quarter-view
overhead## overhead-view
elevated## elevated-view
low-angle## low-angle-view
close-up## close-up-view
3方向ビューの合成## combo-three-view

特殊ケース——元の背景を保持するモード:

中国語のプロンプトを使用します(英語テンプレートとは異なりますが、実績に基づいて検証済みの表現です):

角度プロンプト(原文を適用し、変更しない)
正面图中的商品旋转到正面朝向镜头的角度。保持商品直立,不要改变商品外观,保证背景一致性。
側面图中的商品旋转到从右侧面观看的角度,展示商品的侧面轮廓。保持商品直立,不要改变商品外观,保证背景一致性。
背面图中的商品旋转到背面朝向镜头的角度,展示商品背部细节。保持商品直立,不要改变商品外观,保证背景一致性。
45°图中的商品旋转到45度斜角观看的角度。保持商品直立,不要改变商品外观,保证背景一致性。
俯瞰从上方俯视角度拍摄图中的商品,展示商品顶部。保持商品直立,不要改变商品外观,保证背景一致性。
クローズアップ将图中的商品放大展示细节部分。保持商品一致性,不要改变商品外观,保证背景一致性。

特殊ケース——3方向ビューの合成:

1枚の画像内に3つの視点を一度に生成します。references/prompts.md の ## combo-three-view からテンプレートを取得し、{product_description} と {background} を入力します:

meitu image-edit \
  --skill_name skill_meitu-product-view \
  --image_list {source_image_url} \
  --prompt "{combo_three_view_prompt}" \
  --model praline_pro \
  --ratio 4:3 \
  --json \
  --download-dir {output_dir}

生成順序の方針:

  1. 元画像が正面の場合 → 元画像を正面ビューとしてそのまま使用し、残りの角度から生成を開始します
  2. 元画像が正面でない場合 → まず正面を生成し、正面画像を基準に残りの角度を生成します
  3. 背景変更モードの場合 → まず正面のシーン画像を生成し、その画像を参照して残りの角度を生成します(シーンの一貫性を確保します)

背景変更モードでは、側面と背面の参照画像に正面のシーン画像を使用します(元画像ではありません):

# 先生成正面场景图
meitu image-edit \
  --skill_name skill_meitu-product-view \
  --image_list {original_image_url} \
  --prompt "{front_view_scene_prompt}" \
  --model praline_pro \
  --ratio 1:1 \
  --json \
  --download-dir {output_dir}
# 以正面场景图为参考,生成其余角度
meitu image-edit \
  --skill_name skill_meitu-product-view \
  --image_list {front_scene_result_url} \
  --prompt "将图中的商品旋转到从右侧面观看的角度,展示商品的侧面轮廓。保持商品直立,不要改变商品外观,保证背景一致性。" \
  --model praline_pro \
  --ratio 1:1 \
  --json \
  --download-dir {output_dir}

--ratio の選択:

シーンratio
デフォルト1:1
EC プラットフォームを指定references/ecommerce-specs.md の要件に従います
3方向ビューの合成4:3
ユーザー指定ユーザーの指定に従います

Step 6:超解像度化(任意)

実行条件:ユーザーから明示的な要求がある OR 対象プラットフォームが ≥2000px を要求する場合(Amazon など)。

meitu image-superres-enhance \
  --skill_name skill_meitu-product-view \
  --image_url {generated_url} \
  --prompt "e-commerce product image" \
  --json \
  --download-dir {output_dir}

角度ごとの画像を1枚ずつアップスケールします。

Step 7:透過背景の処理(条件付き)

実行条件:Step 3 で「透過背景」を選択した場合。

生成した角度ごとの画像に対して、次の処理を実行します:

meitu image-cutout \
  --skill_name skill_meitu-product-view \
  --image_url {generated_url} \
  --model_type 1 \
  --json \
  --download-dir {output_dir}

エラー時の段階的なフォールバック方針:

レベル操作実行条件
L1プロンプトから修飾語(lighting、material の説明)を削除し、角度と商品に関する中核部分を残します初回の生成に失敗
L2ratio を auto に変更しますL1 の後も失敗
L3cutout の前処理をスキップし、元画像をそのまま使って生成しますL2 の後も失敗
L4最も簡潔な説明にします:"A {angle} view of the product. White background." のみL3 の後も失敗
L5停止し、code と hint を表示してエラーを報告しますL4 が連続して2回失敗
Refine

生成した角度ごとの画像をすべて表示し、それぞれの視点を説明します。

フィードバックの分類と対応:

ユーザーのフィードバック調整方法
「角度が違う」/「もう少し傾けて」プロンプト内の角度の説明語を調整します
「商品が変形している」/「元画像と違う」プロンプトの末尾に "Proportions and every detail exactly matching the uploaded photo" を追加します
「背景が気に入らない」シーンの説明を変更するか、背景モードを切り替えます
「色がずれている」"Color accuracy strictly consistent with the original photo" を追加します
「角度をもっと増やしたい」角度一覧から追加し、追加分のみ生成します(完了済みの画像は再生成しません)
「スタイル/雰囲気を変えたい」lighting/mood の説明語を調整します
「解像度が足りない」upscale 処理を追加します

反復の目安:最大3ラウンドを推奨します。3ラウンドを超えた場合は、次を提案します:

  1. 元の商品画像を変更する(撮影角度や光線がより適切なもの)
  2. 角度ごとに分けて、個別に最適化する
  3. 別の背景モードを試す
Deliver

output_dir は Preflight で解析済みであり、Execute の --download-dir によってファイルは {output_dir} にダウンロードされています。Deliver では名前の変更のみを行います:

mv {output_dir}/{task_id_file} {output_dir}/{date}_{product}_{angle}.{ext}

{ext} には downloaded_files[0].saved_path の実際の拡張子を使用します。

命名規則:{date}_{product}_{angle}.{ext} 例:2026-03-23_sneaker_front.png、2026-03-23_sneaker_back.jpg、2026-03-23_sneaker_quarter-right.png

記録(プロジェクトモードでは必須/単発モードではスキップ)

前提: can_record = cwd に openclaw.yaml があり、かつ $VISUAL が存在する(どちらか一方でも欠けていれば false)。条件を満たさない場合 → 記録をすべてスキップし、フィードバックは現在の会話にのみ適用されます。

フィードバックなし → 完全にスキップし、observations.yaml は読み込まず、オーバーヘッドはゼロです。

ユーザーがスタイルを承認した場合 → $VISUAL/memory/observations/observations.yaml を読み込む → 類似するキーを検索 → 統合または追加 → 書き戻す。 len(projects) >= 2 → 昇格を提案する(ブロッキングではありません)。 提案(メインフローを中断せず、返信の末尾で言及):

「ちなみに、N 個のプロジェクトで X を好まれています。保存しますか? → product-photography シーンに保存[デフォルト] → グローバル設定に保存 → 保存しない」 ユーザーが確認した場合 → $VISUAL/memory/scenes/{scope}.md または global.md に書き込み、その後、観察エントリーを削除します ユーザーが反応しない場合 → 何もしません

ユーザーが拒否した場合(「XX は不要」)→ openclaw.yaml がある場合 → 適用範囲を確認する:「このプロジェクトだけで XX を使わないようにしますか、それとも今後ずっと使わないようにしますか?」 → このプロジェクトのみ → ./DESIGN.md の Constraints に追記します → 今後ずっと使わない → $VISUAL/rules/quality.yaml に追記します(ユーザーの確認が必要) openclaw.yaml がない場合 → 現在のタスクにのみ適用し、何も書き込みません


出力

  • 形式:PNG(白背景/シーン)/PNG with alpha(透明背景)
  • 比率:デフォルトは 1:1。プラットフォームの要件に応じて調整できます(references/ecommerce-specs.md を参照)
  • 解像度:デフォルトは 2K。アップスケールも選択できます
  • 命名:{date}_{product}_{angle}.{ext}

制約

  • 会話中にプロンプトの全文を表示しない(ユーザーが明示的に確認を求めた場合を除く)
  • プロンプトテンプレートは原文のまま適用し、{variable} の部分のみ置き換える
  • 元の背景モードの中国語プロンプトは一切変更しない
  • ユーザーの言語が英語の場合、すべての操作選択肢を英語に翻訳する
  • 元の商品との一貫性を保つため、角度ごとに個別に生成を呼び出す
  • --download-dir は常に Preflight が解析した output_dir を指し、ソースファイルを含むディレクトリを指さない

コメント