Googleのもっとも先進的な生成AI画像生成モデルImagen 3が、FirebaseのVertex AIでプレビュー利用可能になり、KotlinとSwift SDKを使用してAndroidとiOSアプリにシームレスに統合できるようになった。
数ヶ月前にGoogleのVertex AIプラットフォームで、動画生成モデルVeoとともに発表されたImagen 3は、以前のバージョンよりもディテールが細かく、アーティファクトの少ないリアルな画像を作成することを目的としているとGoogleは述べている。
Firebase SDKのVertex AIは、Imagen 3とImagen 3 Fastという2つの異なるモデルへのアクセスを提供する。Imagen 3 Fastは速度に最適化されており、低遅延が要求される場合に推奨される。これらのモデルのいずれかを使用すると、自然言語で書かれたプロンプトから、さまざまなフォーマット、解像度、スタイルの画像を生成したり、画像内のテキストをレンダリングしたりできる。
Firebase SDKにVertex AIをインストールしたら、通常通りインスタンス化し、使用したいモデル名を指定してimagen 3モデルを作成し、imagenModel
を呼び出す:
import FirebaseVertexAIlet vertex = VertexAI.vertexAI()let model = vertex.imagenModel(modelName: "imagen-3.0-generate-002")
モデル名として現在は"imagen-3.0-generate-002 "
または"imagen-3.0-fast-generate-001"
とともに、 generationConfig
パラメータを通してモデルの設定を指定することができる。このパラメータは、希望する画像の数、アスペクト比、MIMEタイプと圧縮レベルを使用した画像フォーマット、非可視のSynthID透かしを抑制するかどうか、ネガティブプロンプトを使用して省略するコンテンツの種類などを設定ができる。
let config = ImagenGenerationConfig( negativePrompt: "frogs", numberOfImages: 2, aspectRatio: .landscape16x9, imageFormat: .jpeg(compressionQuality: 100), addWatermark: false)let model = vertex.imagenModel(modelName: "imagen-3.0-generate-002" generationConfig: config)
画像を生成するには、最後にプロンプトを渡してgenerateImages
を呼び出す:
let prompt = "An astronaut riding a horse"let response = try await model.generateImages(prompt: prompt)let uiImages = response.images.compactMap { UIImage(data: $0.data) }
Firebase SDKのVertex AIは、生成されたコンテンツをフィルタリングするための安全設定を指定できる。Imagen 3モデルの場合、問題のあるプロンプトや応答をどの程度厳しくブロックするかを定義するsafetyFilterLevel
と、生成される画像に人や顔が含まれるかどうか、また成人だけに制限するかどうかを定義するpersonFilterLevel
を提供する。
Imagen 3の主な特徴は、画像を編集およびカスタマイズできることだ。たとえば、テキストプロンプトを使って画像を絞り込み、マスクベースの編集で部分的に修正できる。さらに、画像を拡大したり、電子透かしを確認したり、あらかじめ定義されたスタイルを使用したり、その他の高度な機能を使用することもできる。ただし、Vertex AI for FirebaseのImagen 3は、これらの機能をまだサポートしていない。
Imagen 3はプロンプトの拡張を使用できる。つまり、ユーザーによって提供されたプロンプトを改良して、より詳細な情報を含めることができる。APIを使用する際にこの機能を無効にはできるが、SDKはまだこれをサポートしていない。
前述の通り、FirebaseのVertex AIにおけるImagen 3のサポートは、まだパブリックプレビューである。Googleはその機能を拡張するとしているが、後方互換性は保証していない。