このページでは、アウトペインティングを使用して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の使用に関する