Imagen のアウトペインティングを使用して画像のコンテンツを拡大する


このページでは、Firebase AI Logic SDK を使用して Imagenアウトペインティングを使用し、画像のコンテンツを元の境界線の外側に拡張する方法について説明します。

アウトペインティングは、マスクベースの編集の一種です。マスクとは、編集する特定の領域を定義するデジタル オーバーレイです。

仕組み: 元の画像と、対応するマスク画像(自動生成またはユーザー指定)を指定します。このマスク画像では、新しい拡張領域のマスクが定義されます。拡大された領域に、生成する内容を説明するテキスト プロンプトを入力することもできます。また、モデルが既存のシーンの論理的な続きをインテリジェントに判断することもできます。モデルは新しいコンテンツを生成し、マスクされた領域を塗りつぶします。

たとえば、画像のアスペクト比を変更したり、背景のコンテキストを追加したりできます。

コードに移動

始める前に

Vertex AI Gemini API を API プロバイダとして使用している場合にのみ使用できます。

まだ完了していない場合は、スタートガイドに沿って、記載されている手順(Firebase プロジェクトの設定、アプリと Firebase の連携、SDK の追加、選択した API プロバイダのバックエンド サービスの初期化、ImagenModel インスタンスの作成)を完了します。

この機能をサポートするモデル

Imagen は、capability モデルを通じて画像編集を提供します。

  • imagen-3.0-capability-001

Imagen モデルの場合、global のロケーションはサポートされていません。

画像のコンテンツを拡大する

このサンプルを試す前に、このガイドの始める前にのセクションを完了して、プロジェクトとアプリを設定してください。

次のサンプルは、提供した画像で定義されたマスクを使用して、画像を元の境界線を超えて拡大する方法を示しています。元の画像、テキスト プロンプト、マスクされた画像を指定します。元の画像とマスクされた画像については、次の点に注意してください。

  • マスクされた画像のピクセル サイズは、最終的にアウトペイントされる画像のターゲット サイズと同じである必要があります。

  • 元の画像には、マスクされた画像のピクセル寸法に一致するように追加のパディングを含める必要があります。

モデルに既存のシーンの論理的な続きをインテリジェントに判断させたい場合は、テキスト プロンプトの指定は省略可能です。拡大された領域に特定のコンテンツを表示する場合は、テキスト プロンプトで指定する必要があります。

Swift

Imagen モデルを使用した画像編集は Swift ではサポートされていません。今年中にリリース予定です。

Kotlin

画像を拡大するには、editImage() を使用し、編集構成で ImagenEditMode.OUTPAINT を使用するように設定します。
editImage() の代わりに outpaintImage() を使用することもできます。この場合、編集モードを指定する必要はありません。

アウトペインティングのサンプルコードのクイックスタートをご覧ください。

Java

画像を拡大するには、editImage() を使用し、編集構成で ImagenEditMode.OUTPAINT を使用するように設定します。
editImage() の代わりに outpaintImage() を使用することもできます。この場合、編集モードを指定する必要はありません。

アウトペインティングのサンプルコードのクイックスタートをご覧ください。

Web

Imagen モデルを使用した画像編集は、ウェブアプリではサポートされていません。今年中にリリース予定です。

Dart

画像を拡大するには、editImage() を使用し、編集構成で ImagenEditMode.OUTPAINT を使用するように設定します。

アウトペインティングのサンプルコードのクイックスタートをご覧ください。

Unity

Imagen モデルを使用した画像編集は Unity ではサポートされていません。今年中にリリース予定です。

ベスト プラクティスと制限事項

画像を編集する際は、マスクを拡張することをおすすめします。これにより、編集の境界を滑らかにし、より説得力のあるものにすることができます。一般に、拡張値は 1% または 2%(0.01 または 0.02)が推奨されます。


Firebase AI Logic の使用感についてフィードバックを送信する