DX開発事業部の西田です。
Gemini 2.0 Flash での画像生成がパブリックプレビューになり、Vertex AIでも実行できるようになったので早速試してみたいと思います。
Gemini 2.0 Flash 画像生成でできること
テキストから画像を生成
プロンプト:
「背景に花火がある東京タワーの画像を生成してください。」
生成結果:

日本語もサポートされています。
画像にテキストを入れる(テキストレンダリング)
プロンプト:
『「クラウドのことならアイレットにお任せ!」というボードを持った笑顔のビジネスマン。』
生成結果:

画像とテキストを交互に生成(インターリーブ)
プロンプト:
「おいしいカレーライスのレシピを考えてください。途中の調理風景と完成がわかる画像も一緒に生成してください。」
生成結果:


画像編集
プロンプト:
「スーツの色をピンク色にして。それ以外は何もしなくてよい。」
生成結果:

チャット形式でマルチターンで画像を編集していくことも可能です。
価格
Vertex AI Pricing | Generative AI on Vertex AI | Google Cloud
Discover flexible pricing for training, deployment, and prediction for Generative AI models with Vertex AI. Build and scale intelligent applications efficiently.
トークンベースの価格は次のようになっています。
| モデル | タイプ | 価格 |
|---|---|---|
| Gemini 2.0 Flash Image Generation | 100万入力トークン | $0.15 |
| 100万入力音声トークン | $1.00 | |
| 100万入力動画トークン | $3.00 | |
| 100万出力テキストトークン | $0.60 | |
| 100万出力画像トークン | $30.00 |
画像出力のトークン消費にかかるコストが大きいので注意が必要です。
目安として1024×1024の画像の場合、1290トークンを消費し、画像の解像度によっても異なります。
※参考
SDKで実行
!pip install google-genai==1.14.0
from google import genai
from google.genai.types import GenerateContentConfig, Modality
from PIL import Image
from io import BytesIO
client = genai.Client(
vertexai=True, project=PROJECT_ID, location=LOCATION
)
response = client.models.generate_content(
model="gemini-2.0-flash-preview-image-generation",
contents=(
"おいしいカレーライスのレシピを考えてください。"
"途中の調理風景と完成がわかる画像も一緒に生成してください。"
),
config=GenerateContentConfig(response_modalities=[Modality.TEXT, Modality.IMAGE]),
)
output_file_name = "output.md"
# 生成されたレスポンスの要素を順番に処理してMarkdownファイルに保存
with open(output_file_name, "w") as fp:
for i, part in enumerate(response.candidates[0].content.parts):
if part.text is not None:
# テキストはそのまま書き出す
fp.write(part.text)
elif part.inline_data is not None:
# 画像データがあれば画像として保存し、Markdownの画像タグを記載
image = Image.open(BytesIO((part.inline_data.data)))
image.save(f"example-image-{i+1}.png")
fp.write(f"")
# Debug
# print(response.model_dump_json(indent=2))
# print(f"total_token_count: {response.usage_metadata.total_token_count}")
with open(output_file_name, "r", encoding="utf-8") as f:
content = f.read()
print(content)

高品質な画像生成モデルはすでに Imagen がありますが、Geminiと統合されることでより直感的に対話を交えた形で画像生成、編集が行えるようになりますね。
生成速度も速く、対話形式でもストレスを感じにくいです。
プレビューなのでまだ安定していないところは少々ありますが、GAやバージョンアップでより改善されることが期待できそうです!