0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[備忘録] Google Colab で Gemini 2.0 Flash (プレビュー版) で画像生成を試してみた 🍛

Last updated at Posted at 2025-05-26

Google の Gemini 2.0 Flsh では、テキストプロンプトから画像を生成できる機能が追加されました。
この記事では、Google Colab を使って実際に画像生成を行う方法を試した備忘録です。

image.png

前提条件

  • Google Colab のアカウント
  • Gemini API キー(Google AI Studio で取得可能)

API キーの設定

Google Colab のシークレット機能を使ってAPI キーを安全に管理します。

  1. Colab の左サイドバーから「シークレット」(🔑)をクリック
  2. 「新しいシークレット」で GEMINI_API_KEY という名前でAPI キーを追加
  3. 「ノートブックアクセス」を有効にする

実装コード

以下のコードで画像生成を実行できます。

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO
import os
from google.colab import userdata

# クライアント初期化
client = genai.Client(api_key=userdata.get('GEMINI_API_KEY'))

# カレー画像生成
prompt = "湯気が立ち上る、白いご飯に濃厚でとろみのあるカレールーがたっぷりとかかっている、日本の家庭風カレーライス。柔らかく煮込まれた牛肉、大ぶりのじゃがいも、にんじんが具だくさんに盛られている。木のテーブルの上に置かれ、暖かみのあるオレンジ色の照明で美味しそうに照らされた、料理雑誌の1ページのような高品質な写真風イメージ。"

response = client.models.generate_content(
    model="gemini-2.0-flash-preview-image-generation",
    contents=prompt,
    config=types.GenerateContentConfig(
        response_modalities=['TEXT', 'IMAGE']
    )
)

# 画像保存
for part in response.candidates[0].content.parts:
    if part.text is not None:
        print(f"説明: {part.text}")
    elif part.inline_data is not None:
        image = Image.open(BytesIO(part.inline_data.data))
        image.save('curry.png')
        print("カレー画像を保存しました!")
        image.show()

image.png

コードの解説

1. ライブラリのインポート

  • google.genai: Gemini API のクライアント
  • PIL.Image: 画像処理
  • BytesIO: メモリ上でのバイナリデータ処理
  • google.colab.userdata: Colab のシークレット機能

2. クライアント初期化

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

Colab のシークレット機能からAPI キーを取得してクライアントを初期化します。

3. プロンプトの作成

prompt = ""

具体的で詳細なプロンプトを作成することで、より期待に近い画像が生成されます。

4. 画像生成の実行

response = client.models.generate_content(
    model="gemini-2.0-flash-preview-image-generation",
    contents=prompt,
    config=types.GenerateContentConfig(
        response_modalities=['TEXT', 'IMAGE']
    )
)
  • model: 画像生成専用のモデルを指定
  • response_modalities: テキストと画像の両方を生成するように設定

5. 結果の処理

for part in response.candidates[0].content.parts:
    if part.text is not None:
        print(f"説明: {part.text}")
    elif part.inline_data is not None:
        image = Image.open(BytesIO(part.inline_data.data))
        image.save('curry.png')
        print("カレー画像を保存しました!")
        image.show()

おいしそうなカレーの画像を生成することができました。結果は利用規約の都合もあり省略しています。

実行結果

このコードを実行すると、以下のような結果が得られます:

  1. 画像の説明テキストがコンソールに表示される
  2. 生成された画像が curry.png として保存される
  3. Colab 上で画像が表示される

プロンプトのコツ

より良い画像を生成するためのプロンプトのポイント:

  • 具体性: 「美味しそうな」「とろっとした」など感覚的な表現を含める
  • 詳細: 材料、色、照明などの具体的な要素を指定
  • スタイル: 「料理写真」「暖かい照明」など撮影スタイルを明示

注意点

  • この記事で試したGemini 2.0 Flash の画像生成機能はプレビュー版のため、将来的に仕様が変更される可能性があります
  • API の利用制限や料金体系を事前に確認してください
  • 生成される画像の品質は、プロンプトの書き方に大きく依存します

まとめ

Gemini 2.0 Flash を使った画像生成は、Google Colab で簡単に試すことができます。具体的で詳細なプロンプトを作成することで、期待に近い画像を生成できるでしょう。ぜひ様々なプロンプトを試して、画像生成の可能性を探ってみてください。

Google AI Studioでも画像生成は試せますが、APIから呼び出す処理を実際に作ってみたくてやってみました。

参考資料

免責事項

※Gemini API の技術検証を目的として生成・掲載しており、商用利用は行っておりません。
この備忘録みて試すときにはGooglenの利用規約を確認することを推奨します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?