Gemini Batchを使って、自由研究182案の画像を一括生成しました
Gemini Batchを使って、自由研究画像を一括生成しました!
現在制作している「AIが考えた夏休みの自由研究案」で使用する画像を、
Gemini Batch APIを使って一括生成しました。
生成した画像は全部で182枚です。これだけの画像を1枚ずつ手作業で作るのは大変なので、
研究データの読み込みからプロンプト作成、Batch送信、画像保存までを自動化する
「画像メーカー」を作りました。
研究データからプロンプトを自動作成
画像メーカーは、自由研究案を保存している
viewer/research-data.json を自動で読み込みます。
JSONに入っている研究テーマ、目的、材料、実験方法、対象学年などを組み合わせ、
それぞれの研究内容に合った画像生成プロンプトを作成します。
自動作成されたプロンプトは送信前にすべて確認できます。
内容がイメージと違う場合は、研究案ごとに個別修正することもできます。
182件を10個のBatchに分けて送信
今回は182件の画像生成リクエストを、20件ずつに自動分割してGeminiへ送信しました。
- 20件入りのBatch:9個
- 2件入りのBatch:1個
- 合計:182件・10Batch
Batch送信後は、Batch情報をJSONファイルとして保存できます。
そのJSONと同じGemini APIキーがあれば、別のPCからでも進み具合を確認できます。
ブラウザを開いたまま待つ必要がないように、
Batchの状態だけを確認できるWindows用のEXEも作成しました。
途中でいくつか問題も発生
最初からすべて順調だったわけではありません。
画像サイズの指定方法がGemini APIの形式と合っていなかったり、
進捗確認で大きすぎるデータを読み込んでタイムアウトしたりしました。
また、10個のBatchがすべて完成しているのに、
画像取得結果が「0枚」と表示される問題も発生しました。
原因は、Geminiから返される画像データがJSONの深い階層に入っており、
画像メーカーが違う場所を探していたことでした。
Gemini Batch APIのデータ構造に合わせて修正すると、
無事に画像を取得できました。
失敗した2件だけを再作成
最初の取得では182件のうち180件が成功し、2件は画像が返されませんでした。
Batch全体が「完成」になっていても、
Batch内の画像がすべて成功しているとは限らないようです。
そこで、失敗した研究ID、研究タイトル、Geminiから返された理由を表示し、
成功済みの180件を作り直さず、失敗した画像だけを個別に再作成できる機能を追加しました。
成功済みの画像を残したまま、失敗した2件だけを再作成できました。
完成画像はWebPで一括保存
取得した画像は、Webサイトで使用しやすいWebP形式へ自動変換し、
次のフォルダへ一括保存します。
viewer/images/research
ファイル名には研究IDを使用します。
たとえば、研究IDが「science-001」の場合は
science-001.webp として保存されます。
WebPの変換と保存が正常に完了したことを確認してから、
同じ研究IDの古いPNGを削除します。
変換や保存に失敗した場合は、元のPNGを削除しない仕組みにしています。
画像の保存と同時に image-manifest.json も作成し、
研究IDと画像ファイルを紐づけます。
これにより、自由研究viewerが研究IDに対応する画像を自動表示できます。
今回自動化できたこと
- 自由研究JSONの読み込み
- 画像生成プロンプトの自動作成
- 全プロンプトの確認と個別修正
- 20件ずつのBatch分割と一括送信
- 別PCやWindows EXEからの進捗確認
- 完成画像の一括取得
- 失敗した画像だけの再作成
- WebPへの自動変換
- 研究IDと画像ファイルの自動紐づけ
まとめ
Gemini Batch APIを使い、自由研究画像182枚をまとめて生成できました。
途中でいくつかエラーはありましたが、研究データの読み込みから、
プロンプト作成、Batch送信、進捗確認、失敗画像の再作成、
WebP保存までを一つの画像メーカーで処理できるようになりました。
「AIが考えた夏休みの自由研究案」も、少しずつ完成に近づいています。
公開までもう少しです!
※AIが生成した自由研究案や画像には、実行できない内容や正しくない表現が含まれる場合があります。
実際に研究するときは、保護者の方と一緒に内容と安全性を確認してください。
この記事へのコメントはありません。