◉GEMINI LABEN
●VEO 3.1 — veo-3.1 の preview 3モデルは 10/22 に停止、残り14日。移行先は gemini-omni-1.1-flash●OMNI — gemini-omni-flash-preview の停止も 10/22。9/30 ではなく表の日付に合わせて確認を●NANO 2.1 — 画像モデル gemini-nano-banana-2.1 が GA。gemini-3.1-flash-image は非推奨で停止日は未発表●CLI 0.63 — Gemini CLI 安定版 v0.63.0。接続回復時のリトライ表示などを改善●TTS/LIVE — 2.5 系の音声・TTS 系プレビューは 11/17 に停止、残り40日●NEW — Veo 3.1 preview の 10/22 停止、差し替え前の棚卸し手順●VEO 3.1 — veo-3.1 の preview 3モデルは 10/22 に停止、残り14日。移行先は gemini-omni-1.1-flash●OMNI — gemini-omni-flash-preview の停止も 10/22。9/30 ではなく表の日付に合わせて確認を●NANO 2.1 — 画像モデル gemini-nano-banana-2.1 が GA。gemini-3.1-flash-image は非推奨で停止日は未発表●CLI 0.63 — Gemini CLI 安定版 v0.63.0。接続回復時のリトライ表示などを改善●TTS/LIVE — 2.5 系の音声・TTS 系プレビューは 11/17 に停止、残り40日●NEW — Veo 3.1 preview の 10/22 停止、差し替え前の棚卸し手順
記事一覧/API / SDK
◈ API / SDK/2026-06-22上級

Gemini APIで商品画像を構造化分析する — 数千枚を回して固めた本番パイプライン

商品画像から自動でタグ・説明文・カテゴリを生成するツールを、単発の試作から数千枚を安定処理する本番パイプラインへ。構造化出力・再開可能なバッチ・実測コスト・モデルルーティングまで、個人開発の運用で固めた知見をまとめます。

Gemini API245Vision4structured-output26python105batchコスト最適化25個人開発121

✦ プレミアム記事

個人開発でアプリやストア素材を扱っていると、画像のメタデータ整備という地味な作業がいつのまにか時間を食っていることに気づきます。私自身、数百枚単位で増えていく素材に対して、タグ付けと説明文づくりを手で回していた時期がありました。一枚あたり数十秒でも、まとまれば半日が消えます。

そこで Gemini API のマルチモーダル分析に切り替えたのですが、最初に書いた「一枚送って結果を受け取る」だけのスクリプトは、試作としては動いても、数千枚を一気に流すと脆さが一気に表に出ました。途中で一度落ちると最初からやり直し、コストの見積もりが甘く、たまに返ってくるカテゴリが微妙に揺れる。Dolice Labs の運用で何度か作り直すうちに、本番で回り続ける形に落ち着いてきました。

この記事は、その「単発の試作から、落ちても続く本番パイプラインへ」の差分を中心にまとめます。基本のコードから始めて、実測したコスト、再開可能なバッチ、そして公式ドキュメントには書かれていない運用上の勘どころまで順に置いていきます。

前提知識と環境準備

必要なもの

  • Python 3.10以上
  • Google AI Studio のAPIキー(Google AI Studioから取得可能)
  • google-genai パッケージ

環境セットアップ

# 仮想環境の作成と有効化
python -m venv gemini-image-env
source gemini-image-env/bin/activate  # Windows: gemini-image-env\Scripts\activate
 
# パッケージのインストール
pip install google-genai Pillow

APIキーは環境変数に設定しておきます。

export GEMINI_API_KEY="your-api-key-here"

Gemini APIの基本的なセットアップがまだの方は、Gemini APIクイックスタートガイドを先にご覧ください。

基本的な画像分析 — 1枚の商品画像から情報を抽出する

まずは最もシンプルなケースとして、1枚の商品画像をGemini APIに送信し、自然言語で商品情報を取得してみましょう。

# basic_image_analysis.py
import os
from google import genai
from google.genai import types
 
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
 
def analyze_product_image(image_path: str) -> str:
    """商品画像を分析し、説明文を生成する"""
    # 画像ファイルを読み込む
    with open(image_path, "rb") as f:
        image_data = f.read()
 
    response = client.models.generate_content(
        model="gemini-3.1-pro",
        contents=[
            types.Content(
                role="user",
                parts=[
                    types.Part.from_bytes(data=image_data, mime_type="image/jpeg"),
                    types.Part.from_text(
                        "この商品画像を分析してください。"
                        "商品名、カテゴリ、色、素材、特徴を日本語で詳しく説明してください。"
                    ),
                ],
            )
        ],
    )
    return response.text
 
# 実行例
result = analyze_product_image("product_sample.jpg")
print(result)
 
# 期待する出力例:
# この商品は白いコットン素材のTシャツです。
# クルーネックのシンプルなデザインで、胸元に小さなブランドロゴが
# 刺繍されています。素材は柔らかい綿100%で、カジュアルな
# 日常着として適しています。

この方法でも十分な情報が得られますが、出力が自由形式テキストのため、プログラムで処理するには不便です。次のステップで構造化出力を導入します。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦数千枚を回して実測したコスト・レイテンシ・精度の内訳と、Flash と Pro を使い分けるルーティングの損益分岐
✦途中で落ちても続きから再開できるチェックポイント方式のバッチ実装(コピーして動くコード付き)
✦enum ドリフト・スキーマ厳格化・アップロード前の縮小など、公式ドキュメントに載っていない運用上の落とし穴と対処
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ API / SDK2026-05-14
Gemini 2.5 Pro の thinking_budget を制御する — コストを3分の1にしながら推論品質を守る実装パターン
thinking_budgetを未設定のまま使うとGemini 2.5 Proのコストが予想外に膨らみます。タスク別最適値・動的制御・モデルルーティング・本番監視・バッチ事前見積りまで、個人開発での実践知見をコード付きで解説します。
◈ API / SDK2026-05-06
Gemini 2.5 Flash を1ヶ月使い続けた個人開発者の正直レポート — 費用・速度・品質の実態
Gemini 2.5 Flash を個人開発で1ヶ月使い続けた実測レポートです。実際にかかった API 費用、速度の揺れ幅、品質が足りないと判断した2つの場面、Flash と Pro の切り替え判断フレームワーク、コスト上限アラートの設定まで数字で示します。
◈ API / SDK2026-09-29
『F6号』と『A4くらい』が同じ列に並ぶ作品台帳を、Gemini の読み取りと号数表の換算で cm に揃えるまで
作家さんの作品台帳に『F6号』『41×31.8cm』『A4くらい』が混ざっていました。Gemini API には読み取りだけを頼み、換算は号数表、向きは画像で決める小さな道具を、動くコードとともに一本ずつ組み立てます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます