現象
Nano Bananaモデル(gemini-3.1-flash-image-preview、gemini-3-pro-image-preview、gemini-nano-banana-2.1など)を参照画像付きの画像編集で呼び出すと、APIは次の2つのエラーのいずれかと共にHTTP 400を返します:
原因
リクエスト内のinlineData.dataが空であるため、プロバイダーは画像を受信できていません。 どちらのエラーも原因は同じですが、ノードによって表現が異なります。一方はinlineDataパラメータが空であると表示します。もう一方は「unable to process input image」と表示されるため、画像が破損しているか、リンクにアクセスできないと考えられがちです。
これは画像のURLや、ストレージバケットが公開されているかどうかには関係ありません。
inlineDataでは、画像はリクエストボディ内にbase64として送信されるため、プロバイダーがリンクを取得しにいくことはありません。このエラーは、base64文字列自体が空であることを意味しています。問題は、コード内で画像をbase64に変換する処理の段階にあります。チェックリスト
1
ダウンロードまたはエンコードのステップは実際に成功していますか?
多くのプログラムでは、まずオブジェクトストレージ(COS / OSS / S3)から画像をダウンロードし、それを base64 に変換します。ダウンロードが失敗またはタイムアウトしたり、非同期ステップが完了する前にリクエストが送信されたりすると、空の文字列になってしまいます。送信直前に base64 の長さをログに出力してください。
2
変数が undefined になっていませんか?
JavaScript では、
JSON.stringify は値が undefined であるフィールドを暗黙的に除外します。もし imageBase64 が undefined の場合、シリアライズされたリクエストの inlineData 配下には mimeType のみが含まれ、data フィールドは一切存在しなくなるため、プロバイダーから inlineData が空であると報告されます。これはコード上では確認できないため、実際に送信されたリクエストボディをログに出力して確認する必要があります。3
data に data URL プレフィックスが含まれていませんか?
inlineData.data にはプレーンな base64 のみを含める必要があります。完全な data:image/png;base64,iVBORw0... 文字列がある場合は、カンマを含むそれ以前の部分をすべて削除してください。4
mimeType は実際の画像フォーマットと一致していますか?
実際のフォーマットに合わせて、
mimeType を image/png、image/jpeg、または image/webp に設定してください。ファイル拡張子は信頼できません(スマートフォンの一部の .jpg ファイルは実際にはマルチフレーム画像です)。最も安全な方法は、変換時にすべて PNG または JPEG として再エンコードすることです。送信前の検証
リクエスト作成前に数行のチェックを追加することで、APIエラーとしてではなくローカルで問題を検出できます:- JavaScript
- Python
代わりに画像のURLを渡したい場合
ネイティブのGeminiエンドポイントは、画像の直接リンクも受け付けています。fileDataを使用し、inlineDataは使用しないでください:
よくある質問
画像はパブリックに読み取り可能な状態ですが、なぜそれでもこのエラーが発生するのですか?
画像はパブリックに読み取り可能な状態ですが、なぜそれでもこのエラーが発生するのですか?
inlineData では、プロバイダーがいかなるリンクも取得しないため、パブリックアクセスの可否は関係ありません。コードで画像を base64 に変換するステップを確認し、送信している data フィールドが空になっていないか確認してください。これらの失敗したリクエストは課金されますか?
これらの失敗したリクエストは課金されますか?
いいえ、課金されません。リクエストはプロバイダーのエントリーポイントで拒否され、画像は生成されないため、料金は発生しません。コンソールの呼び出しログが正式な記録となります。
関連ドキュメント
Nano Banana 開発者ガイド
入力画像の要件、URL入力、タイムアウトについて
Gemini 画像エラー処理
各エラーおよび finishReason の処理方法
画像の MIME タイプ不一致?
画像 URL 内の処理パラメータに起因するフォーマットの不一致
画像の圧縮と解像度
参照画像を圧縮しても出力品質は低下しません