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


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

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

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

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

コードに移動

始める前に

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

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

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

Imagen では、capability モデルを使用して画像編集が可能です:

  • imagen-3.0-capability-001

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

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

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

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

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

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

モデルが既存のシーンを論理的に継続する内容をインテリジェントに判断する場合は、テキスト プロンプトを指定する必要はありません。拡大された領域に特定のコンテンツを含める場合は、テキスト プロンプトで指定する必要があります。

Swift

Imagen モデルを使用した画像編集は、Swift ではサポートされていません。今年の後半に再度ご確認ください。

Kotlin

画像を拡大するには、 editImage() を使用し、編集構成をImagenEditMode.OUTPAINTを使用するように設定します。
Note that you can optionally use outpaintImage() instead of editImage(), and you don't need to specify the editing mode.

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

Java

画像を拡大するには、 editImage() を使用し、編集構成をImagenEditMode.OUTPAINTを使用するように設定します。
Note that you can optionally use outpaintImage() instead of editImage(), and you don't need to specify the editing mode.

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

Web

Imagen モデルを使用した画像編集は、ウェブアプリではサポートされていません。今年の後半に再度ご確認ください。

Dart

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

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

Unity

Imagen モデルを使用した画像編集は、Unity ではサポートされていません。今年の後半に再度ご確認ください。

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

画像を編集する際は、マスクを拡張することをおすすめします。これにより、編集の境界を滑らかにし、より自然に見せることができます。通常、拡張値は 1% または 2%(0.01 または 0.02)にすることをおすすめします。


フィードバックを送信する Firebase AI Logic