このページでは、アウトペインティング を使用して、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 に設定します。
なお、
outpaintImage()
の代わりにeditImage()を使用することもできます。この場合、編集モードを指定する必要はありません。
アウトペインティングのサンプルコードについては、 クイックスタートをご覧ください。
Java
画像を拡大するには、
editImage()
を使用し、編集構成を ImagenEditMode.OUTPAINT に設定します。
なお、
outpaintImage()
の代わりにeditImage()を使用することもできます。この場合、編集モードを指定する必要はありません。
アウトペインティングのサンプルコードについては、 クイックスタートをご覧ください。
Web
Imagen モデルを使用した画像編集は、ウェブアプリではサポートされていません。今年の後半に再度ご確認ください。
Dart
画像を拡大するには、
editImage()
を使用し、編集構成を ImagenEditMode.OUTPAINT に設定します。
アウトペインティングのサンプルコードについては、 クイックスタートをご覧ください。
Unity
Imagen モデルを使用した画像編集は、Unity ではサポートされていません。今年の後半に再度ご確認ください。
ベスト プラクティスと制限事項
画像を編集する際は、マスクを拡張することをおすすめします。これにより、編集の境界を滑らかにし、より自然に見せることができます。通常、拡張値は 1% または 2%(0.01 または 0.02)が推奨されます。
フィードバックを送信する Firebase AI Logicの使用に関する