メインコンテンツへスキップ

Nano Banana Proで「Unsupported file URI type」? 先にGeminiのファイル経路を直す

A
10 分で読めますAIトラブルシューティング

Nano Banana Pro で「Unsupported file URI type」が出たとき、最初にやるべきことは prompt を変えることではありません。どの Gemini surface が、どの種類のファイル参照を拒否したかを切り分けることです。

Nano Banana Proで「Unsupported file URI type」? 先にGeminiのファイル経路を直す

Nano Banana Pro で「Unsupported file URI type」または「Invalid or unsupported file uri」と出ても、最初に prompt をいじらないでください。多くの場合、モデルが画像を理解できないのではなく、画像が Gemini に正しいファイル経路で届いていません。

まず分けるべきなのは二つです。何を渡したのか。そして、どの Gemini surface がそれを拒否したのか。native Gemini file_data、OpenAI互換 image_url、Vertex の gs://、公開 HTTPS URL、ローカルファイルパスは、同じ URI ルールでは動きません。URI に見える文字列でも、今の surface にとって有効な file resource とは限りません。

30秒ルート表

Nano Banana Pro unsupported-file-URI の4分岐ルート表。public URL、data URL、gs://、local path を分ける

このエラーで最初にやるべきことは一つです。surface と入力タイプで先に分け、その後で直すこと。2026年4月9日に Gemini 公式文書を再確認した時点でも、native Gemini は Files API / files.register、OpenAI互換は image_url、Vertex は独自の object route という分離は変わっていません。

渡したもの起きがちな問題最初に取る安全な手同じ path での確認どこで切り分けを一段上げるか
公開 HTTPS URLweb で見える URL を native Gemini file resource と混同したGemini 側で先に upload するか、実体が GCS object なら基底 object を登録する同じ Gemini リクエストがファイルを受け付ける返された file resource でも失敗する
data:image/...;base64,...surface を取り違えたか、base64 が途中で壊れたOpenAI互換 image_url を維持して clean payload を作り直す同じ互換リクエストが画像を受け付けるclean payload でも失敗する
gs://bucket/objectnative Gemini と Vertex の cloud route を混ぜたGemini なら files.register、Vertex なら gs:// を維持する同じ surface が object を受け付けるdocs に沿った cloud route でも失敗する
/tmp/a.pngfile:///... のような local pathdevice path を再利用可能な file URI のように扱った先に upload し、返された resource を使う同じ flow が valid resource で動くupload 後も失敗する、または wrapper が request を書き換える

ここで一つだけ強く覚えておくべきことがあります。画像形式が対応していても、file route が正しいとは限りません。 Gemini の current docs では PNG、JPEG、WEBP、HEIC、HEIF が挙がっていますが、このページのエラーはモデルが画像を受け取る前に起きていることが多いです。

native Gemini file_data を使っている場合

native Gemini が欲しいのは、Gemini 自身が理解できる file resource です。public URL や local path をそのまま file_uri に入れても、native Gemini ではそこから先に進めません。

現在の Files API docs では、flow は明快です。まず upload し、返ってきた file.uri を後続 request で使います。もし source file が Google Cloud Storage にあるなら、現在の Files API referencefiles.register も明示しています。つまり、public URL を既成の file resource と見なすのではなく、GCS object を Gemini 側の resource に変換する route があるということです。

ここが old forum advice と current contract のずれやすい場所です。いまでも「AI Studio / Gemini は GCS を使えず、gs:// は Vertex 用」という言い方を見かけます。その言い方は「surface を混ぜるな」という警告としてはまだ役に立ちますが、2026年の publish-layer truth としては不十分です。今のより正確な言い方はこうです。任意の public URL は native Gemini file resource ではないが、GCS object には files.register という current official route がある。

もう一つ見落としやすいのが file resource の寿命です。Gemini の current Files API docs では upload 済みファイルが 48 時間保持されるとされています。昨日まで通っていた request が today 突然似た失敗を返すなら、prompt や model を責める前に expired resource を疑うべきです。

OpenAI互換 image_url を使っている場合

この枝が一番ややこしいのは、route 自体は合っていても同じエラーが出ることがあるからです。現在の Gemini OpenAI compatibility docs は、image_url を使った multimodal 例をまだ示しており、そこには data:image/...;base64,... も含まれています。つまり data: は everywhere unsupported ではありません。互換 route にだけ属するというだけです。

そのため、ここで問うべきなのは「Gemini は data: URL をサポートするのか」ではなく、「その payload は docs が期待する形のまま到達したのか」です。HTML escape された base64、wrapper による content item の書き換え、compat client の変形などで、route が正しくても unsupported-file-URI family のエラーは出ます。

修正順は単純です。互換 route だと確認する。image_url の shape を維持する。元ファイルから clean な base64 を再生成して、余計な変換を挟まず送り直す。native Gemini file_data の logic をここへ持ち込まない。そこを混ぜると、問題が一つから二つになります。

この section が独立している理由もそこにあります。現在の Google AI Developers Forum には Unsupported file uri: data:image/png;base64,... という exact symptom が実際にありますが、同じ日に official docs は image_url での data: を still support しています。publishable な結論は「docs が間違い」ではなく、「同じエラーは wrong route でも broken payload でも起きる」です。

GCS object、public URL、Vertex path を渡している場合

Nano Banana Pro の wrong input と correct route の対応図。native Gemini、compatibility mode、cloud object、payload check を分ける

public URL、登録済み Gemini file、Vertex の gs:// は interchangeable ではありません。多くの短い解説が曖昧にするのはこの点です。

native Gemini に public HTTPS object URL を渡した場合、たいていは「ブラウザで開ける object」と「Gemini が扱える file resource」を混同しています。公開されている URL だからといって、native Gemini file_data でそのまま使えるわけではありません。より安全なのは Files API upload、あるいは source of truth が GCS にあるなら files.register です。登録対象は object そのものであって、公開用の web wrapper URL ではありません。

Vertex AI では事情が違います。そこでは gs://bucket/object が natural shape になり得ます。問題は、その経験をそのまま native Gemini に持ち戻して、「Google の image route は全部同じ object contract だ」と思い込むことです。そうではありません。

だからこの枝で先に答えるべき問いは「GCS は使えるか」ではなく、「今この request を所有している surface はどれか」です。native Gemini なら upload / files.register へ。Vertex なら Vertex route を維持。URI に見えるという理由だけで URL を入れたなら、それをまず current surface が認める file resource に変える。それが最小修正です。

アプリが local file path を渡している場合

local path は一見もっともらしく見えます。実際に file はそこにあります。しかし /tmp/example.pngfile:///storage/...、似た device-side path は、あなたの app が見ている参照であって、Gemini が後で再取得できる file resource ではありません。

最も安全な cross-platform rule はやはり upload first です。ファイルを一度 Gemini 側の resource に変えてから、その returned URI を使う。そこに到達するまでは、local path は「自分の環境では見える」ことしか保証しません。

mobile SDK や wrapper の edge case、たとえば content:// のような話題は確かに存在します。ただし、それは main route を直した後の話です。最初の repair が終わる前に client-specific nuance へ潜ると、reader は長く読んだのに request が still blocked という状態になりがちです。

修正後の確認と、その次に疑うべきもの

Nano Banana Pro の verify and escalate flow。route、payload integrity、expired resource、wrapper behavior を点検する

一度だけエラーが消えたからといって、問題が完全に閉じたとは限りません。より安全な順序は次の通りです。

  1. 一回に一つだけ最小の file-route correction を入れ、同じ path で再試行する。
  2. その same request がファイルを受け付けるだけでなく、本来の job もちゃんと完了するか確認する。
  3. 以前 upload / register した file を使っているなら expired resource でないかを見る。
  4. route が明らかに正しいのに失敗するなら、base64 integrity、wrapper rewrite、stale client code を次に疑う。

ここで最も重要なのは、何を早まって blame しないかです。この symptom は、Nano Banana Pro が急に画像を理解しなくなったことを意味することは少なく、むしろ画像が supported route でモデルに届いていないことを意味します。route が整った後にだけ、payload や platform behavior へ進むべきです。

もしそこまで進んで、真の問題が別の image failure class だと分かったなら、次の相性がいいページは Gemini image common errors guide です。

FAQ

native Gemini file_data に public HTTPS URL をそのまま入れられますか。

通常はできません。public object URL と Gemini File resource は別物です。native Gemini では upload、または GCS object に対する files.register がより安全です。

data:image/...;base64,... は使えますか。

使えます。ただし OpenAI互換 image_url route に限ります。2026-04-09 時点で current Gemini docs は still support しています。そこでも失敗するなら、まず payload integrity を疑うべきです。

/tmp/a.pngfile:///... のような local path は直接渡せますか。

Gemini の再利用可能 file URI のように直接渡すべきではありません。upload して returned resource を使うのが safer です。

files.register は upload の代わりになりますか。

全部の代わりにはなりません。GCS object 向けの current official route であって、local file は still upload first です。

route を直しても同じエラーが残るなら。

その時点で pure route bug ではありません。corrupted base64、expired resource、wrapper / SDK の書き換えを見てください。

覚えておくべきルール

最短の clean fix は「prompt を変える」でも「全部を PDF にする」でもありません。今の surface を見極め、その surface が本当に受け付ける file route に入力を移し、同じ path で verify し、それでも失敗する時だけ payload や platform behavior を疑うことです。

Share:

laozhang.ai

One API, All AI Models

AI Image

Gemini 3 Pro Image

$0.05/img
80% OFF
AI Video

Sora 2 · Veo 3.1

$0.15/video
Async API
AI Chat

GPT · Claude · Gemini

200+ models
Official Price
Served 100K+ developers
|@laozhang_cn|Get $0.1