Google GenAIのImagenでテキストから画像生成する

Imagenを使うと簡単に画像生成できる。

前回の投稿でも書いたとおり、最新のライブラリはGoogle GenAI SDKの方なので今回もそちらを利用していく。必要に応じて環境変数で GEMINI_API_KEYGOOGLE_API_KEY を設定しておく。

from google import genai
client = genai.Client()

画像生成はGeminiではなくImagenモデルを使用する。 2025年8月現在の最新のモデルimagen-4.0-generate-preview-06-06 もしくは imagen-4.0-ultra-generate-preview-06-06 となっている。Ultraの方がよりプロンプトに対して忠実な画像を作れるそうだが、コストが高くまた同時に生成できる画像の枚数に制限がある。

response = client.models.generate_images(
    model='imagen-4.0-generate-preview-06-06',
    prompt='Stuffed crocodile holding a yellow flag',
    config=types.GenerateImagesConfig(
        number_of_images=1,
    )
)

画像の生成は generate_images で行う。Imagen 4を使って画像生成する場合、プロンプトは英語で書かないとうまくいかないようだ。

configオプションでは、生成する画像のアスペクト比(aspect_ratio)や同時に生成する枚数(number_of_images)やネガティブプロンプト(negative_prompt)などを指定できる。output_gcs_uri を指定すると生成した画像をGCSに保存するようにしてもらうこともできる。指定しなかった場合はAPIのレスポンスにBase64エンコードされた画像データが含まれた状態で返ってくる。

for generated_image in response.generated_images:
  generated_image.image.show()

responseのgenerated_imagesというプロパティに生成画像が含まれた状態で帰ってくる。generated_imagesは GeneratedImage オブジェクトの配列となっている。

生成された画像に特に問題がない場合は image プロパティに画像が含まれる。Notebook環境の場合はshow()というメソッドを呼び出すとNotebook上に画面を表示させることができる。もし内容に何かしらの問題があった場合はimageプロパティは空となり、rai_filtered_reasonというプロパティからその理由を確認することができる。プロンプトエンハンサーが有効になっている場合は、enhanced_promptというプロパティで実際に画像生成に使われた最終プロンプトを確認できる。

実際に上のプロンプトで生成された画像

参考

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です