ChatGPTだったりGeminiだったり、最近はAIの技術は欠かせませんよね。自分もすっかりGeminiのお世話になってます。
で、大量の画像に対して、それぞれ簡単なキャプションをつける必要があったため「Gemini API」を使って一気に対応しようと思ったのですが、思いの外いろいろとハマってしまったので、ここにまとめておきます。
ただ、Google系サービスってUIやら仕組みやらがすぐに変わる傾向があるので、今あなたがこの記事を読んだ時点で全然役に立たないw可能性もありますが、一応。 ※2026年1月時点の情報です。
Sponsored LinkVisual Studioで環境設定しましょう。
① Nugetで「Google.GenAI」を検索し、インストール。
② C#のコード、using Google.GenAI; でインポート。
Sponsored LinkGoogle AI StudioでAPIキーを取得しましょう。
③ Google AI StudioでAPIキーを取得(https://aistudio.google.com/api-keys)。
「APIキーを作成」ボタン押下。

using Google.GenAI;
using Google.GenAI.Types;
// 1. クライアントの初期化 (APIキーを直接渡すか、環境変数から読み込む)
var client = new Client(apiKey: "あなたのAPIキー");
// 2. 画像ファイルを読み込み
var imageBytes = System.IO.File.ReadAllBytes("Z:\\hogehoge.jpg");
// 3. AIに依頼(画像を渡して説明文を生成)
var response = await client.Models.GenerateContentAsync(
model: "gemini-2.0-flash",
contents: new List<Content> // ← ここを Content のリストにする
{
new Content
{
Role = "user", // [指示役]を意味する
Parts = new List<Part> // その中身としてテキストと画像を入れる
{
new Part { Text = "この画像を20文字程度で日本語の説明を書いてください。" },
new Part
{
InlineData = new Blob
{
MimeType = "image/jpeg",
Data = imageBytes
}
}
}
}
}
);
// 4. 結果を取得し表示
var text = response.Candidates?[0].Content?.Parts?[0].Text;
Console.WriteLine($"生成された説明: {text}");
④ このサンプルソースで動くようであればあなたの環境のGemini APIは問題ありません。解決ですw
で・・・ 私の場合はこれで動かなかったので記事にしているわけで・・・ 続きます。
⑤ 「(初期状態だと?)model : “gemini-2.0-flash“」を実行すると「You exceeded your current quota, please check your plan and billing details. (limit: 0)」というエラーメッセージが表示される可能性があります。
Sponsored Link問題の切り分けをしましょう。
⑥ 確認方法の一つとして「最新の gemini-2.0-flash」ではなく「安定版の gemini-1.5-flash」で確認。 ※上のサンプルソースだと「Not Found」と返されると思われます。
⑦ ⑥でダメなら「Google AI Studio」チャット画面(https://aistudio.google.com/prompts/new_chat)で適当な画像をアップして「説明して」とGeminiにお願い。

すると、このようにブラウザからであれば画像に対しての説明をしてくれます。つまりこのアカウントであれば問題ないことを意味します。※このブラウザのチャットからで「動かない」ということであればGoogleアカウントの問題と思われます。すみません。そこはちょっとわからないので終了ということで・・・w

⑧ 合わせて「Gemini API の使用状況」のグラフ画面で実際にリクエストが送られてきているのか確認。この場合は「リクエスト」は受け付けられてることを意味しています。ただし成功無し。

新しいプロジェクト・新しいキーを作成しましょう。
⑨ リクエストが送られてきているのであれば「新しいプロジェクト」でキーを新規作成を試します。デフォルトだと「Default Gemini Project」となっているプロジェクトを、別名プロジェクトで新規作成。 ※ここは「Default Gemini Project」のままで「新しいキー作成」のみでも問題ないかもしれませんが、一応。
作成は Google Could Console(https://console.cloud.google.com/projectcreate)
ここで好きなプロジェクト(例:hogehoge-project)を作成。
⑩ 「Google AI Studio」に戻り「APIキー作成画面」で「新しいキーを作成」。
その際に「プロジェクトをインポート」を選択し、⑨で作成した「hogehoge-project」を取り込み、キーに紐づけるプロジェクトを選択。

ここで作成した「新プロジェクトに新しいキー」で正常に動作するようです。基本的には。
ただ、私の場合にはこれでもうまくいかず・・・
Sponsored Link※ここからは自己責任で!※ 無料枠ですが「課金設定」を行いましょう。
Googleより。
Google APIの悪用防止策が強化されていて「たとえ無料枠の範囲内であっても、有効なクレジットカード(請求先アカウント)をプロジェクトに紐付けないと、クォータ(利用可能枠)を 0 に設定する」という挙動が一部の地域やアカウントで発生している。
とのこと。よって「課金設定」を行います。ただ、もちろん勝手に「課金されることはない」そうですが(Google AI Studioの設定画面で明示的に有料プランに切り替えない限り課金はされない。)。。。クレジットカード情報を紐づけるのであくまでもここからは自己責任で!
これをすることで「無料トライアルアカウント」というステータスに変わります。
⑪ Google Cloud Console(https://console.cloud.google.com/billing)の「お支払い」から請求先アカウントを登録。 ※既に「Google One」などGoogle系のサービスに請求情報があればそれが指定できると思われます。
⑫ APIキーの設定画面に戻り、⑪で設定した請求先アカウントと紐づけを実行。

前述のサンプルコードを実行すると・・・
Gemini APIから反応がありました!

まとめましょう。
無料枠ですが、2026年1月時点では「クレジットカード情報と紐づけないとAPIを使用することは難しい?」のかもしれません。前述のとおり勝手に「有料枠」に切り替わる仕組みではないとのことですが、クレジットカード情報を登録する場合には「自己責任で!」
ただし、現時点のステータスとしては前述のとおり「無料トライアルアカウント」
そのため、APIを使用し続けたい場合には、ステータスを「有料アカウント」に切り替える必要があるとのこと。有料アカウントに切り替えたとしても即課金が実行されるわけではなく、無料枠を超えるほどの処理が実行された場合に、課金される仕組みのようですが、現時点でトライアル期間が経過したわけではないので、トライアル期間が終わった後に「有料アカウント」に切り替えなかった場合の状況は不明・・・。

2026年現在の Gemini 2.0 Flash の無料枠
| 項目 | 無料枠 (Free Tier) |
| リクエスト数 | 1分間に最大 15回まで |
| 1日の上限 | 1,500回まで |
| 学習への利用 | 入力データが学習に使われる可能性あり |
とのことです。リクエスト回数がものすごく多いとかいうわけでなければ無料枠で十分でしょう。またトライアル期間を終えても使う必要がある、ということであれば、ステータスは「有料アカウント」にする必要があるのかと。
「発行したAPIキーの管理は厳重に!」
「クレジットカード情報の登録については自己責任で!」
以上です。

