この記事では、実用的な Python スクリプトを使用して、Google の Nano Banana 画像編集機能を呼び出して商品画像を切り出す方法を示します。
この現在の実装の目標は明確です。
- カタログから製品画像を読み取る
- Google 画像モデルを呼び出して背景の削除を実行します。
- 返された画像に対してローカルの透明な背景のクリーニングを再度実行します
- 最終出力は透明な下部
PNG
白い背景の製品画像、ヘッドフォンの画像、および配線図面のバッチがすでにあり、電子商取引で使用できる透明な背景画像をすばやく生成したい場合、この方法は非常に簡単です。
このコードは何をするのか
このスクリプトは主に 4 つの部分に分かれています。
- 「背景を削除し、被写体を保持し、影を追加しない」ことをモデルに知らせるプロンプト ワードを定義します。
google-genaiの画像生成インターフェイスを呼び出します。- モデル応答から画像結果を抽出する
- 次に、ローカル ロジックを使用してエッジの明るい背景を透明に変換し、残留エッジを減らします。
つまり、単にモデルに画像を投げただけでは終わりではなく、「モデル編集+ローカル後処理」を繋ぎ合わせて完成するのです。
走る前の準備
最初に依存関係をインストールします。
|
|
GEMINI_API_KEYの取得方法
GEMINI_API_KEY は、Gemini API を呼び出すときに使用されるキーです。 Google の公式クイックスタートによると、キーをまだ持っていない場合は、Google AI Studio で直接作成できます。
入手手順は以下の通りです。
- Google AIスタジオを開きます。
- Google アカウントにサインインします。
Get API keyまたはAPI keysページを見つけます。- 新しい API キーを作成します。
- 生成されたキーをコピーします。
- スクリプトが読み取ることができるように、これをローカル環境変数に構成します。
ページ上に使用可能なプロジェクトがない場合は、通常、最初にプロジェクトの初期化を完了してから、[API キー] ページに戻ってキーを作成する必要があります。
キーを取得したら、環境変数を構成します。
|
|
cmd を使用している場合は、次のように記述できます。
|
|
GEMINI_API_KEY と GOOGLE_API_KEY を同時に設定した場合、実際の動作では通常 GOOGLE_API_KEY が最初に読み込まれるため、混乱を避けるために 1 つだけを保持することをお勧めします。
ディレクトリ構造の例
スクリプトは 2 つのパラメータを受け取ります。
input_dir: 画像ディレクトリに入るoutput_dir: 出力画像ディレクトリ
例えば:
|
|
走り方
スクリプトファイル名がcutout.pyで、実行方法が次のとおりであるとします。
|
|
モデルを変更したい場合は、パラメーターを明示的に渡すこともできます。
|
|
スクリプトは、入力ディレクトリ内のファイルを次の形式でループします。
.jpg.jpeg.png.webp
処理が完了すると、同じ名前の透過的な PNG ファイルが出力ディレクトリに生成されます。
コア呼び出しプロセス
実際に Google Nano Banana を呼び出すキーコードは次のとおりです。
|
|
ここでは 2 つのコンテンツが渡されます。
- テキスト プロンプトの単語
PROMPT - ワンピース
PIL.Image
プロンプトの内容は、製品画像全体の背景を削除し、本体のみを残し、いくつかの点を強調するようモデルに依頼することです。
- 完全な製品を保管する
- 細いワイヤーとケーブルの詳細を保持
- 内部の空洞と環状領域をきれいにします
- 新しいオブジェクトを追加しないでください
- 影を追加しないでください
この種のプロンプトワードは、カットアウトの品質、特にヘッドフォンケーブル、透明なエッジ、中空領域などの細部に大きな影響を与えます。
なぜローカルで後処理を行う必要があるのでしょうか?
モデルが結果を返した後、スクリプトは直接保存されませんが、make_transparent_from_borders(image) が再度実行されます。
このステップの考え方は次のとおりです。
- 画像の周囲のエッジから始まる明るい背景ピクセルを見つけます
- 幅優先検索を使用して、接続されているすべての明るい色の領域をマークします。
- 最後に、これらの領域を透明に変更します。
これを行う利点は、残っている白いエッジ、明るい灰色の背景、および不十分にきれいなエッジ領域をさらに除去できることです。
「背景かどうか」の判断条件は以下の通りです。
|
|
簡単な理解は次のとおりです。
- 全体的に色が明るいので
- 3 つの RGB チャネルの差が大きすぎることはありません
商品画像の背景が白地やライトグレー地、単色に近いものを加工する場合に適しています。
完全なソースコード
現在の完全なソース コードは、直接の再利用や二次的な変更を容易にするために以下に保持されています。
|
|
最適化を続けるのに適した場所
このスクリプトを大量生産に引き続き使用する予定がある場合は、後でこれらの機能を追加し続けることができます。
- 単一の画像エラーが報告された後にバッチ全体が中断されるのを避けるために、失敗の再試行が追加されました。
- ログを記録して、処理に失敗した画像を特定しやすくします
- さまざまなバックグラウンドしきい値に合わせて構成可能
- サブディレクトリの再帰的スキャンをサポート
- 元の画像と結果画像の比較プレビューを追加しました
まとめ
「Google Nano Banana を呼び出して画像を切り出す方法」をすぐに理解したい場合は、実際には 3 つの主要な手順があります。
google-genaiおよびPillowをインストールするGEMINI_API_KEYを設定しますclient.models.generate_content()を使用してプロンプトの言葉と画像を渡します
このコードの価値は、モデルを呼び出すだけでなく、製品画像の切り抜きタスクで直接使用するのに適した透明な背景の後処理も追加することです。