画像を生成する

Gemini API は、Gemini 2.0 Flash 試験運用版を使用した画像生成と、Imagen 3 を使用した画像生成をサポートしています。このガイドでは、両方のモデルの使用を開始する方法について説明します。

モデルを選択する

画像の生成に使用するモデルはどれですか。ユースケースによって異なります。

コンテキストが重要な場合は、Gemini 2.0 が適しています。Gemini 2.0 は、コンテキストに関連する画像の生成、マルチモーダル出力(テキストと画像)のブレンド、世界知識の組み込み、画像に関する推論に最適です。これにより、長いテキスト シーケンスに埋め込まれた、コンテキストに応じた正確なビジュアルを作成できます。会話全体でコンテキストを維持しながら、自然言語を使用して会話形式で画像を編集することもできます。

画像品質が最優先の場合は、Imagen 3 が適しています。Imagen 3 は、フォトリアル、芸術的なディテール、印象派やアニメなどの特定の芸術スタイルに優れています。Imagen 3 は、商品の背景の更新、画像のアップスケーリング、ブランディングとスタイルのビジュアルへの組み込みなど、特殊な画像編集タスクにも適しています。Imagen 3 を使用すると、ロゴやブランド商品のデザインを作成できます。

Gemini を使用して画像を生成する

Gemini 2.0 Flash Experimental では、インライン画像を含むテキストを出力する機能がサポートされています。これにより、Gemini を使用した対話的な画像の編集や、テキストが織り込まれた出力の生成を行えます(1 つのターンにテキストと画像を含むブログ投稿の生成など)。生成されたすべての画像には SynthID の透かしが含まれ、AI Studio の画像には目視可能な透かしも含まれます。

Gemini は、プロンプトとコンテキストに応じて、さまざまなモード(テキストから画像、テキストから画像とテキストなど)でコンテンツを生成します。次に例を示します。

  • テキスト画像変換
    • プロンプトの例: 「背景に花火があるエッフェル塔の画像を生成してください」。
  • テキスト画像変換とテキスト(インターリーブ)
    • プロンプトの例: 「パエリアのレシピをイラスト付きで生成してください。」
  • 画像とテキスト画像変換とテキスト(インターリーブ)
    • プロンプトの例:(家具付きの部屋の画像を提示して)「この部屋に合いそうなソファの色には他にどんなものがありますか?画像を更新してください」。
  • 画像編集(テキストと画像による画像変換)
    • プロンプトの例: 「この画像を編集してカートゥーンのようにしてください」
    • プロンプトの例: [猫の画像] + [枕の画像] + 「この枕に猫のクロスステッチを作成してください」。
  • マルチターン画像編集(チャット)
    • プロンプトの例: [青い車の画像をアップロードして] 「この車をコンバーチブルにしてください」。「次に、色を黄色に変えてください」。

Gemini の例

次の例は、Gemini 2.0 を使用してテキストと画像の出力を生成する方法を示しています。

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

contents = ('Hi, can you create a 3d rendered image of a pig '
            'with wings and a top hat flying over a happy ' 
            'futuristic scifi city with lots of greenery?')

response = client.models.generate_content(
    model="models/gemini-2.0-flash-exp",
    contents=contents,
    config=types.GenerateContentConfig(response_modalities=['Text', 'Image'])
)

for part in response.candidates[0].content.parts:
  if part.text is not None:
    print(part.text)
  elif part.inline_data is not None:
    image = Image.open(BytesIO(part.inline_data.data))
    image.show()

このコードサンプルは画像を出力しますが、テキストも出力する場合があります。

空を飛ぶ架空の豚の AI 生成画像

その他のユースケースと例については、Gemini API クックブック画像出力ガイドをご覧ください。

制限事項

  • 最高のパフォーマンスを実現するには、EN、es-MX、ja-JP、zh-CN、hi-IN のいずれかの言語を使用してください。
  • 画像生成では、音声や動画の入力はサポートされていません。
  • 画像生成がトリガーされない場合があります。
    • モデルがテキストのみを出力する場合があります。画像出力を明示的に指示してみてください(例: 「画像を生成してください」、「作業時に画像を提供してください」、「画像を更新してください」)。
    • モデルの生成が途中で停止することがあります。もう一度お試しいただくか、別のプロンプトをお試しください。
  • 画像のテキストを生成する場合は、まずテキストを生成し、次にテキストを含む画像をリクエストすると、Gemini が最も効果的に機能します。

Imagen 3 を使用して画像を生成する

Gemini API を使用すると、Google の最高品質のテキスト画像変換モデルである Imagen 3 にアクセスできます。このモデルには、さまざまな新機能と改善機能が搭載されています。Imagen 3 は次のことができます。

  • 以前のモデルよりもディテールが鮮明で、照明が豊富で、演出の妨げになるアーティファクトが少ない画像を生成
  • 自然言語で記述されたプロンプトを理解する
  • 幅広い形式とスタイルの画像を生成
  • 以前のモデルよりも効果的にテキストをレンダリングする

Imagen の例

このセクションでは、Imagen モデルをインスタンス化して画像を生成する方法について説明します。

Google Gen AI SDK をインストールしたら、次のコードを使用して画像を生成できます。

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client(api_key='GEMINI_API_KEY')

response = client.models.generate_images(
    model='imagen-3.0-generate-002',
    prompt='Fuzzy bunnies in my kitchen',
    config=types.GenerateImagesConfig(
        number_of_images= 4,
    )
)
for generated_image in response.generated_images:
  image = Image.open(BytesIO(generated_image.image.image_bytes))
  image.show()

コードサンプルは、次のような 4 つの画像を出力します。

キッチンにいる 2 匹のふわふわうさぎの AI 生成画像

Gemini CookbookImagen スタートガイド ノートブックも試すことができます。

Imagen モデル パラメータ

generate_images() で使用できるパラメータは次のとおりです。

  • prompt: 画像のテキスト プロンプト。
  • number_of_images: 生成する画像の数(1 ~ 4)。デフォルトは 4 です。
  • aspect_ratio: 生成される画像のアスペクト比を変更します。サポートされる値は "1:1""3:4""4:3""9:16""16:9" です。デフォルトは "1:1" です。
  • safety_filter_level: 安全フィルタリングにフィルタレベルを追加します。有効な値は次のとおりです。
    • "BLOCK_LOW_AND_ABOVE": 確率スコアまたは重大度スコアが LOWMEDIUM、または HIGH の場合にブロックします。
    • "BLOCK_MEDIUM_AND_ABOVE": 確率スコアまたは重大度スコアが MEDIUM または HIGH の場合にブロックします。
    • "BLOCK_ONLY_HIGH": 確率スコアまたは重大度スコアが HIGH の場合にブロックします。
  • person_generation: モデルが人物の画像を生成できるようにします。次の値を使用できます。
    • "DONT_ALLOW": 人物の画像の生成をブロックします。
    • "ALLOW_ADULT": 大人の画像を生成しますが、子供の画像は生成しません。これがデフォルトです。

生成された画像には、目に見えないデジタル SynthID 透かしが常に追加されます。

テキスト プロンプト言語

次の入力テキスト プロンプト言語がサポートされています。

  • 英語(en

次のステップ