Googleの最新AI「Gemini 2.0 Flash 」は、テキストから画像を自動生成したり、既存の画像を編集することができるサービスです。APIを使えば、プログラムから簡単に操作できます。この記事では、Pythonを用いてこのAIの画像生成と画像編集機能を活用する方法を詳しく紹介し、実際のコード例を通じてその使い方を解説します。
事前準備
APIキーを取得
まず、GoogleのGemini APIキーを取得しておきます。
Google Gemini APIのキーは「Google AI Studio」から発行できます。
下記のサイトにアクセスしてGoogleアカウントでログインし、APIキーを取得してください。
https://aistudio.google.com/
「Create API Key」ボタンをクリックして、表示される指示に従い、必要な情報を入力してAPIキーを生成します。生成されたAPIキーは、後ほどプログラムで使用するために安全な場所に保存しておいてください。APIキーの管理には十分注意し、第三者に漏れないようにしてください。
必要なライブラリをインストール
次のコマンドを実行してください。
pip install pillow
google-genaiライブラリは、Googleの最新AI「Gemini 2.0 Flash」を利用するために使います。pillowライブラリは、Pythonで画像処理を行うためのツールであり、画像の読み込み、保存、変換、編集など、さまざまな操作を簡単に実行することができます。
サンプル1:テキストから画像を生成
AIに「帽子をかぶった猫の画像を作成して」とリクエストします。この指示を送信すると、AIはその内容に従って、帽子をかぶった猫の画像を自動で作成します。
次のコードをsample.pyとして保存します。
from google.genai import types
from PIL import Image
from io import BytesIO
client = genai.Client(api_key="YOUR_API_KEY") # 取得したAPIキーを入力
contents = ('generate an image of a cat wearing a hat')
response = client.models.generate_content(
model="gemini-2.0-flash-preview-image-generation",
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.save('generated-image.png')
使用するモデル名は "gemini-2.0-flash-preview-image-generation" であり、生成された画像は「generated-image.png」として保存されます。
参考:
https://ai.google.dev/gemini-api/docs/models
https://ai.google.dev/gemini-api/docs/image-generation
その後、python ./sample.py を実行してください。処理には少し時間がかかります。生成された画像は、指定したファイル名「generated-image.png」として保存されます。
サンプル2:画像内のオブジェクトを削除する
最初に編集対象の画像を用意します。この記事では例として「sample.jpg」を使用し、この画像から「ペン」だけ削除したいと思います。
次のコードをsample2.pyとして保存します。
from google.genai import types
from PIL import Image
from io import BytesIO
import PIL.Image
image = PIL.Image.open('./sample.jpg')
client = genai.Client(api_key="YOUR_API_KEY") # 取得したAPIキーに置き換えてください
text_input = ('remove the pen from the image')
response = client.models.generate_content(
model="gemini-2.0-flash-preview-image-generation",
contents=[text_input, image],
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.save('edited-image.png')
同じモデルを使用していますが、今回は入力画像を指定しました。
入力画像:image = PIL.Image.open('./sample.jpg')
リクエスト:text_input = ('画像からペンを削除する')
その後、python ./sample2.py を実行してください。処理には少し時間がかかります。生成された画像は、指定したファイル名「edited-image.png」として保存されます。
ペンが消えた画像が生成されます。結果は毎回異なり、失敗することもあります。その場合は再試行するか、プロンプトを変更してください。
終わりに
Gemini 2.0 Flashの画像生成・編集API (gemini-2.0-flash-preview-image-generation)は、シンプルなPythonコードで画像処理ができる便利なAIサービスです。APIの取得もGoogle AI Studioから簡単に行えます。ただし、現時点ではプレビュー提供のため、利用規約や商用利用には注意が必要です。
今回紹介した方法を応用すれば、APIで画像の不要物消去、背景編集、イラスト生成など幅広い用途に使えるので、興味があればぜひ自分でも色々と試してみてください。