mcpField
B
bria-ai

bria-ai

github.com/bria-aiクリエイティブ・メディア74335 回インストール1 週間前に更新
リポジトリ

bria-ai について

bria-aiは、Briaの画像APIを使って画像の生成・編集、背景除去、ビジュアル処理の自動化を行うスキルです。画像制作を扱うエージェント向けで、商品写真や画像補正、バッチ処理にも対応します。

主な機能

  1. 01テキストからの画像生成
  2. 02自然言語による画像編集
  3. 03背景の除去と置換
  4. 04画像の修復と補正
  5. 05商品写真のワークフロー
  6. 06画像のバッチ処理

活用シーン

  1. 01EC向け商品写真の作成
  2. 02透過商品画像の用意
  3. 03キャンペーンやSNS用ビジュアルの生成
  4. 04古い写真の修復と拡大

インストール

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

$npx skills add https://github.com/bria-ai/bria-skill --skill bria-ai

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE.txt
references/
api-endpoints.md
marketplace-presets.md
references/code-examples/
bria_client.sh
build_catalog.py
export_variants.py

詳細

Bria — AI 画像生成、編集、背景除去

20 以上の API エンドポイントを通じて、商用利用が安全なロイヤリティフリーの画像生成と編集を行えます。テキストから画像を生成したり、自然言語で編集したり、背景を除去したり、商品画像を作成したり、自動化された画像パイプラインを構築したりできます。

ここに記載されている内容以外のエンドポイントの詳細については、エージェント向け Bria API リファレンスをご覧ください。

このスキルを使用する場面

ユーザーが次のことを希望している場合に、このスキルを使用します。

  • 画像を生成する — 「…の画像を作成して」「バナーを作って」「ヒーロー画像を生成して」「商品写真が必要」
  • 画像を編集する — 「背景を変えて」「冬らしい雰囲気にして」「テーブルに花瓶を追加して」「人物を消して」
  • 背景を除去/置換する — 「背景を透明にして」「商品を切り抜いて」「スタジオの背景に置き換えて」
  • 商品写真を作成する — 「ライフスタイル写真を作って」「この商品をキッチンのシーンに配置して」「EC向けの商品写真」
  • 画質を向上/変換する — 「この画像をアップスケールして」「解像度を上げて」「油絵風にスタイルを変えて」「照明を変えて」
  • 一括処理/パイプライン — 「商品画像を10枚生成して」「これらすべての画像を処理して」「背景をまとめて除去して」

このスキルは、あらゆる AI 画像操作に対応します。ユーザーが画像、写真、ビジュアル、または視覚コンテンツの作成について言及した場合は、このスキルを使用してください。


構築できるもの

  • EC 商品カタログ — 商品写真を生成し、背景を除去して透明な PNG にし、商品をライフスタイルシーン(キッチン、オフィス、屋外)に配置し、統一感のあるスタイルで商品写真を作成します
  • ランディングページのビジュアル — ブランドの美的スタイルに合わせて、ヒーロー画像、抽象的なテック背景、チーム写真、セクション用イラストを生成します
  • ソーシャルメディアコンテンツ — Instagram 投稿(1:1)、ストーリーズ/リール(9:16)、LinkedIn バナー(16:9)、広告クリエイティブを作成し、A/B テスト用のバリエーションを一括生成します
  • マーケティングキャンペーン素材 — 季節に合わせた変換(夏→冬)、異なる市場向けの商品写真のスタイル変更、大規模なローカライズビジュアルの作成を行います
  • 写真修復パイプライン — 古く傷んだ写真を修復し、白黒画像をカラー化し、低解像度の写真を 4 倍にアップスケールし、品質を自動的に向上させます
  • ブランド素材ツールキット — ロゴの背景を除去し、アートワークを商品(T シャツ、マグカップ)に合成し、カタログ全体の商品写真に一貫性を持たせます
  • AI を活用したデザインワークフロー — 生成→編集→背景除去→シーンへの配置→アップスケールという操作を連鎖させ、API パイプラインですべてを自動化します

セットアップ — 認証

API を呼び出す前に、有効な Bria アクセストークンが必要です。

ステップ 1:既存の認証情報を確認する
if [ -f ~/.bria/credentials ]; then
  BRIA_ACCESS_TOKEN=$(grep '^access_token=' "$HOME/.bria/credentials" | cut -d= -f2-)
  BRIA_API_KEY=$(grep '^api_token=' "$HOME/.bria/credentials" | cut -d= -f2-)
fi
if [ -z "$BRIA_ACCESS_TOKEN" ]; then
  echo "NO_CREDENTIALS"
elif [ -n "$BRIA_API_KEY" ]; then
  echo "READY"
else
  echo "CREDENTIALS_FOUND"
fi

出力が READY の場合は、イントロスペクションを行わず、そのまま API 呼び出しに進みます。 出力が CREDENTIALS_FOUND の場合は、ステップ 3 に進みます。 出力が NO_CREDENTIALS の場合は、ステップ 2 に進みます。

ステップ 2:デバイス認証で認証する

デバイス認証フローを開始します。

2a. デバイスコードを要求します。

DEVICE_RESPONSE=$(curl -s -X POST "https://engine.prod.bria-api.com/v2/auth/device/authorize" \
  -H "Content-Type: application/json")
echo "$DEVICE_RESPONSE"

レスポンスのフィールドを確認します。

  • device_code — トークンをポーリングするために使用します(保持し、ユーザーには表示しないでください)
  • user_code — ユーザーが入力するコードです(例:BRIA-XXXX)
  • interval — ポーリングの試行間隔(秒)

2b. ユーザーにサインインリンクを1つだけ表示します。 次の内容だけを正確に伝えてください。それ以外は不要です。

Bria アカウントに接続: こちらをクリックしてサインイン コードは {user_code} です。すでに入力されています。

リンクを2つ表示してはいけません。URL を別途そのまま表示してはいけません。API レスポンスの verification_uri を使用してはいけません。クリック可能なリンクは1つだけにしてください。

2c. トークンをポーリングします。 ユーザーにコードを表示したら、すぐにポーリングを開始します。指定された間隔(デフォルトは5秒)で最大60回試行します。

for i in $(seq 1 60); do
  TOKEN_RESPONSE=$(curl -s -X POST "https://engine.prod.bria-api.com/v2/auth/token" \
    -d "grant_type=urn:ietf:params:oauth:grant-type:device_code" \
    -d "device_code=$DEVICE_CODE")
  ACCESS_TOKEN=$(printf '%s' "$TOKEN_RESPONSE" | sed -n 's/.*"access_token" *: *"\([^"]*\)".*/\1/p')
  if [ -n "$ACCESS_TOKEN" ]; then
    BRIA_ACCESS_TOKEN="$ACCESS_TOKEN"
    REFRESH_TOKEN=$(printf '%s' "$TOKEN_RESPONSE" | sed -n 's/.*"refresh_token" *: *"\([^"]*\)".*/\1/p')
    mkdir -p ~/.bria
    printf 'access_token=%s\nrefresh_token=%s\n' "$BRIA_ACCESS_TOKEN" "$REFRESH_TOKEN" > "$HOME/.bria/credentials"
    echo "AUTHENTICATED"
    break
  fi
  sleep 5
done

出力に AUTHENTICATED が含まれている場合は、ステップ 3 に進みます。それ以外の場合は、コードの有効期限が切れているため、ステップ 2a からやり直します。

認証が確認されるまでは、API を呼び出してはいけません。

Step 3: 課金ステータスを確認し、API キーを取得する

Bearer トークンを調べて課金ステータスを確認し、Bria API 呼び出しに使用する実際の API キーを取得します。

INTROSPECT=$(curl -s -X POST "https://engine.prod.bria-api.com/v2/auth/token/introspect" \
  -d "token=$BRIA_ACCESS_TOKEN")
BILLING_STATUS=$(printf '%s' "$INTROSPECT" | sed -n 's/.*"billing_status" *: *"\([^"]*\)".*/\1/p')
if [ "$BILLING_STATUS" = "blocked" ]; then
  BILLING_MSG=$(printf '%s' "$INTROSPECT" | sed -n 's/.*"billing_message" *: *"\([^"]*\)".*/\1/p')
  echo "BILLING_ERROR: $BILLING_MSG"
fi
ACTIVE=$(printf '%s' "$INTROSPECT" | sed -n 's/.*"active" *: *\([^,}]*\).*/\1/p' | tr -d ' ')
if [ "$ACTIVE" = "false" ]; then
  # Clear stale tokens so re-auth starts fresh (credentials file is re-created in Step 2c)
  printf '' > "$HOME/.bria/credentials"
  echo "TOKEN_EXPIRED"
fi
BRIA_API_KEY=$(printf '%s' "$INTROSPECT" | sed -n 's/.*"api_token" *: *"\([^"]*\)".*/\1/p')
if [ -n "$BRIA_API_KEY" ]; then
  grep -v '^api_token=' "$HOME/.bria/credentials" > "$HOME/.bria/credentials.tmp" 2>/dev/null || true
  printf 'api_token=%s\n' "$BRIA_API_KEY" >> "$HOME/.bria/credentials.tmp"
  mv "$HOME/.bria/credentials.tmp" "$HOME/.bria/credentials"
fi

出力を解釈します:

  • BILLING_ERROR: ... と表示された場合は、メッセージをそのままユーザーに伝え、停止してください。API 呼び出しは行わないでください。
  • TOKEN_EXPIRED と表示された場合、セッションは無効になっています。セッションの有効期限が切れたことをユーザーに伝え、Step 2 からやり直してください。
  • それ以外の場合、BRIA_API_KEY に実際の API キーが格納され、今後の呼び出し用にキャッシュされています。次のセクションに進んでください。

主な機能

必要なこと機能用途
テキストから画像を生成するFibo 2 Image Generateヒーロー画像、商品写真、イラスト、ソーシャルメディア画像、バナー
テキストによる指示で画像を編集するFibo 2 Image Edit色の変更、オブジェクトの修正、シーンの変換
1 回の編集で 2~4 枚の画像を組み合わせるFibo 2 Image Edit multi-referenceある画像の服装、商品、ロゴ、スタイル、背景を別の画像に適用する
マスクを使って画像の領域を編集するGenFill/Erase正確なインペインティング、特定領域の追加・置換
オブジェクトとその影や反射を削除するErase, composite: falseオブジェクトだけをマスクします:「自転車とその影を削除」
オブジェクトを追加/置換/削除するテキストベースの編集花瓶を追加する、リンゴを洋ナシに置き換える、テーブルを削除する
背景を削除する(透明な PNG)RMBG-2.0オーバーレイ、ロゴ、切り抜き用に被写体を抽出する
完成した広告をレイヤーに戻すAd Delayer公開済みのクリエイティブを編集可能にする、広告のサイズ変更やローカライズ
背景を置換/ぼかす/消去する背景操作背景を変更、ぼかし、または削除する
画像を拡張する/アウトペインティングするアウトペインティング境界を拡張する、アスペクト比を変更する
画像の解像度を上げるSuper Resolution解像度を 2 倍または 4 倍にする
画像の品質を高めるEnhancement照明、色、細部を改善する
画像のスタイルを変更するRestyle油絵、アニメ、漫画、3D レンダリング
照明を変更するRelightゴールデンアワー、スポットライト、ドラマチックな照明
季節を変更するReseason春、夏、秋、冬
画像を合成/ブレンドするImage Blendingテクスチャやロゴの適用、画像の結合
古い写真を修復するRestoration古い写真や損傷した写真を修復する
画像に色を付けるColorization白黒画像に色を付ける、またはカラー画像を白黒に変換する
スケッチを写真にするSketch2Image描画をリアルな写真に変換する
商品を切り抜くProduct Cutout元の商品写真から背景が透明なきれいな PNG を作成する
商品のパックショットを作成するProduct Packshot単色またはすっきりした背景で、2000×2000 の規格化された写真を作成する
商品の影を付けるProduct Shadow切り抜き画像にリアルな接地影または浮遊影を追加する
商品のライフスタイル写真を作成するLifestyle ShotEC 用に商品をさまざまなシーンに配置する
商品をシーンに統合するProduct Integrate指定した正確な座標に商品を埋め込む
人の手に商品を持たせるProduct Holding人物と商品写真 → 人物が自然に商品を持つ/携帯している画像
モデルに衣服を着せるVirtual Try-On人物と衣服の写真 → 人物がその衣服を着ている画像
商品に寸法の注記を追加するProduct Dimensionsサイズ/重量/容量ラベル付きの、マーケットプレイス向け計測画像
商品カタログ全体を作成するCatalog Pipeline写真のフォルダーを一括処理 → パックショット、寸法画像、ライフスタイル画像、マーケットプレイス向けバリエーション

任意のエンドポイントの呼び出し方

すべての API 呼び出しには bria_call を使用します。URL の受け渡し、ローカルファイルの Base64 エンコード、JSON の構築、API 呼び出し、非同期ポーリングを、1 回の関数呼び出しで処理します。API キーは ~/.bria/credentials から自動的に読み込まれます。

最初に、references/code-examples/bria_client.sh のヘルパースクリプトを読み込みます(このスキルのディレクトリからの相対パスを解決してください)。

source <SKILL_DIR>/references/code-examples/bria_client.sh

# Generate (no image input — pass empty string)
RESULT=$(bria_call /v2/image/generate "" '"prompt": "your description", "aspect_ratio": "16:9", "sync": true')

# Generate with a photographic look (style: kodak_film, hard_flash, hazy_dreamy or rough_realism)
RESULT=$(bria_call /v2/image/generate "" '"prompt": "a woman reading on a city bus", "style": "kodak_film", "seed": 5555, "sync": true')

# Remove background
RESULT=$(bria_call /v2/image/edit/remove_background "/path/to/local/image.png")

# Replace background
RESULT=$(bria_call /v2/image/edit/replace_background "https://example.com/img.jpg" '"prompt": "sunset beach"')

# Edit image (uses images array — pass --key images)
RESULT=$(bria_call /v2/image/edit "/path/to/image.png" --key images '"instruction": "make it look warmer"')

# Edit with reference images — each --image adds the next one, in order
RESULT=$(bria_call /v2/image/edit "https://example.com/man.jpg" --key images \
  --image "https://example.com/santa.png" \
  '"instruction": "dress the man in image 1 in the santa outfit from image 2"')

# Upscale (`desired_increase` is 2 or 4 — no other value. Transparency is preserved by default)
RESULT=$(bria_call /v2/image/edit/increase_resolution "https://example.com/img.jpg" '"desired_increase": 4')

# Product cutout → transparent PNG (use --key file for a local image)
CUTOUT=$(bria_call /v1/product/cutout "/path/to/raw.jpg" --key file)

# Packshot on white from the cutout URL
RESULT=$(bria_call /v1/product/packshot "$CUTOUT" --key image_url '"background_color": "#FFFFFF"')

# Lifestyle shot
RESULT=$(bria_call /v1/product/lifestyle_shot_by_text "/path/to/product.png" '"scene_description": "modern kitchen countertop"')

# Product holding — person + product photo, no prompt needed
RESULT=$(bria_call /v2/image/edit/product/holding "/path/to/person.jpg" --key person_image \
  --array-key product_images --image "https://example.com/product.png" \
  '"instruction": "Replace the paper coffee cup in her right hand with the can, logo facing the camera."')

# Virtual try-on — person + garment photo(s), no prompt needed. Send a full outfit together
# to change several items in one call.
RESULT=$(bria_call /v2/image/edit/product/virtual-tryon "/path/to/person.jpg" --key person_image \
  --array-key garment_images --image "https://example.com/blazer.png" \
  --image "https://example.com/trousers.png" \
  '"instruction": "He wears the navy blazer over the white t-shirt he already has, and the grey tailored trousers instead of his jeans."')

# Product dimensions — auto-removes background, draws measurement callouts.
# Dual cm / in labels: repeat each dimension with the same name+position in both
# units and set "units_display": "dual_slash" so they merge into one "12 cm / 4.7 in" label.
RESULT=$(bria_call /v2/image/edit/product_dimensions "/path/to/product.png" \
  '"style": "default", "units_display": "dual_slash", "dimensions": [{"name": "height", "value": 12, "unit": "cm", "position": "left"}, {"name": "height", "value": 4.7, "unit": "in", "position": "left"}, {"name": "width_bottom", "value": 6, "unit": "cm", "position": "bottom"}, {"name": "width_bottom", "value": 2.4, "unit": "in", "position": "bottom"}], "title": "Gummies Bottle", "capacity": {"value": 500, "unit": "ml"}, "weight": {"value": 250, "unit": "g", "label": "Net Weight"}')

echo "$RESULT"

呼び出し規約: bria_call <endpoint> <image_or_empty> [--key <json_key>] [extra JSON fields...]

  • URL、ローカルファイルのパス、または画像入力を必要としないエンドポイントでは ""(空文字列)を渡します
  • エンドポイントが image ではなく images 配列を想定している場合は、--key images を使用します
  • 追加の参照画像ごとに --image <url_or_path> を指定します(--key images の場合、合計 4 枚まで)。 順序は維持されます。位置引数の画像が「画像 1」、最初の --image が「画像 2」…となります
  • エンドポイントがメイン画像と参照画像を別々のキーで受け取る場合(例:person_image と product_images/garment_images)は、--array-key <name> を使用します。位置引数の画像は --key の下に渡され、各 --image は --array-key の配列に入ります
  • 追加の JSON フィールドは、キーと値のペアとして追加します:'"key": "value"'
  • 成功時は結果画像の URL を返し、エラー時は stderr に出力します

複数の画像を使った編集(2~4 枚): ユーザーが求める見た目が、言葉で説明できるものではなく、すでに画像として存在する場合(特定の服装、製品、ロゴ、またはシーンなど)は、2 枚目の画像を用意します。編集対象の画像を最初に置き、参照画像をその後に置いて、指示の中で位置を指定します。「画像 1 の男性に、画像 2 のサンタの衣装を着せる」のようにします。各参照画像が何を提供するのかを、「画像 3 の背景」のように、平易な文章で説明します。1 枚の画像を編集する場合は、位置を示す表現は不要です:「マグカップの色を赤に変える」。

生成オプション: アスペクト比は 1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9 に加えて、16:10、10:16、2:1、1:2、21:9、9:21、3:1、1:3、4:1、1:4、5:1、1:5 を指定できます(4MP、style_id、または VGL と併用する参照画像がある場合は指定できません)。解像度は 1MP(デフォルト)または 4MP(より詳細な画像。+30 秒)です。写真のような仕上がりにするには、"style" に kodak_film、hard_flash、hazy_dreamy、rough_realism のいずれかを追加します。これはテキストから画像を生成する場合に限られるため、style_id、VGL、参照画像、4MP、または lite とは併用できません。生成する画像が 1 枚の場合は、"sync": true を渡します。/v2/image/edit(指示ベースの Fibo 2 Image Edit)は逆の動作で、常に status_url を返し、ポーリングが必要です。このエンドポイントで "sync": true を指定すると、ゲートウェイのタイムアウトが発生します。Product Holding と Virtual Try-On では、ポーリングではなく最終画像を待つ場合に "sync": true を指定できます。いずれの場合も bria_call がポーリングを代行するため、この設定が関係するのは API を直接呼び出す場合のみです。

上級者向け:生成を細かく制御するには、自然言語の代わりに vgl スキルを使って、構造化された VGL JSON プロンプトを作成します。

20 以上のすべてのエンドポイントのパラメーターについて詳しくは、API エンドポイントのリファレンス を参照してください。


商品カタログの一括処理パイプライン

ユーザーが物理的な商品の出品用画像を大規模に作成したい場合(「./products から商品カタログを作成して」「この写真フォルダーをカタログにして」「Amazon/Shopify/Etsy の要件に準拠させて」など)は、エンドポイントを一つずつ呼び出すのではなく、同梱のドライバーを使います。設定は不要です。引数を指定しない場合は ./products を読み込み、./catalog に出力します。

python3 <SKILL_DIR>/references/code-examples/build_catalog.py

商品ごとに切り抜き → パックショット+ライフスタイルシーン(+寸法)→ マーケットプレイス用バリエーションの順に処理し、cutout.png、packshot.jpg、lifestyle_N.jpg、dimensions.png(寸法データがある場合)、チャネルごとのバリエーション、および listing.json のコピー用ひな形を出力します。必要な項目だけを上書きします。

python3 <SKILL_DIR>/references/code-examples/build_catalog.py \
  --input ./photos --output ./store \
  --scenes "clean marble surface, soft studio light|cozy wooden desk, warm morning light" \
  --variants amazon,shopify --dims ./dims.json

寸法には実測値が必要です。推測せず、確認してください。 寸法ファイルがなく、--no-dims も指定されていない場合、ドライバーは NEEDS_DIMENSIONS を表示して終了します(コード 2)。その場合は処理を止め、商品の高さと幅(任意で重量/容量も)を商品ごとに dims.json または CSV 形式で提供するか、寸法画像だけを省略するために --no-dims を指定して再実行するよう、ユーザーに確認してください。サイズを捏造してはいけません。dims.json の形式:

{ "soap.jpg": {"title": "Hand Wash", "height_cm": 19, "width_cm": 6, "capacity_ml": 250} }

寸法は cm で保存します。注記には cm / in が自動的に併記されます。pip install requests Pillow が必要です。

マーケットプレイス対応のバリエーション

export_variants.py は、マスター画像(パックショットまたは切り抜き画像)を、各チャネルの要件に準拠したファイルに変換します。背景、アスペクト比、商品占有率、最小解像度を適用します。

python3 <SKILL_DIR>/references/code-examples/export_variants.py \
  --input ./catalog/soap/packshot.jpg --output ./catalog/soap --channels amazon,shopify,etsy
チャネルアスペクト比背景商品占有率最小解像度
Amazon(メイン)1:1純白 #FFFFFF約85%1600 px(理想値は ≥ 3000)
Shopify1:1(+4:5)白/透明約90%2048 px
Etsy5:4白/ライフスタイル約85%2000 px

すべてのルールについては、**マーケットプレイスのプリセット**をご覧ください。

出品文を作成する(SEO)

Bria が生成するのは画像であり、テキストではありません。出品文はエージェントであるあなたが作成します。build_catalog.py は商品ごとに listing.json のひな形を出力します。画像の生成後、各 packshot.jpg を確認して、seo_title(60 文字以内、キーワードを先頭に)、meta_description(160 文字以内)、description(1~2 段落)、bullets(メリットを中心に4~6項目)、tags(キーワードを8~15個)を入力します。すべての説明は画像から確認できる内容に基づけてください。仕様を捏造せず、既知の寸法があれば盛り込んでください。


プロンプト作成のヒント

  • スタイル:「プロの商品写真」か「気軽なスナップ写真」、「フラットデザインのイラスト」か「3D レンダリング」
  • 照明:「柔らかな自然光」、「スタジオ照明」、「ドラマチックな影」
  • 背景:「白いスタジオ」、「グラデーション」、「ぼかしたオフィス」、「透明」
  • 構図:「中央配置」、「三分割法」、「テキスト用に左側に余白」
  • 品質を表すキーワード:「高品質」、「プロ仕様」、「商用グレード」、「4K」、「シャープなフォーカス」
  • ネガティブプロンプト:「ぼやけた、低品質、ピクセル化」、「テキスト、透かし、ロゴ」
用途別レシピ

ヒーローバナー(16:9): "Modern tech startup workspace with developers collaborating, bright natural lighting, clean minimal aesthetic" — テキストを重ねるスペースを確保するため、「clean background」または「minimal」を含めます

商品写真(1:1): "Professional product photo of [item] on white studio background, soft shadows, commercial photography lighting" — その後、背景を削除して透明な PNG にします

プレゼンテーション用ビジュアル(16:9): "Abstract visualization of data analytics, blue and purple gradient, modern corporate style, clean composition with space for text" — よくあるテーマ:「抽象的なテクノロジー」、「ビジネスでのコラボレーション」、「ミニマルな幾何学模様」

Instagram の投稿(1:1): "Lifestyle photo of coffee and laptop on wooden desk, morning light, cozy atmosphere"

ストーリー/リール(9:16): "Vertical product showcase of smartphone, floating in gradient background, tech aesthetic"


追加リソース

関連スキル

  • vgl — Fibo の画像生成を正確かつ決定的に制御するための、構造化された VGL JSON プロンプトを作成します
  • ad-delayer — 完成したフラットな広告を、編集可能なレイヤー(背景、メイン画像、ロゴ、コピー、CTA)に分解します
  • image-utils — 後処理向けの基本的な画像操作(サイズ変更、トリミング、合成、透かし)

コメント