Nano Banana (gemini-2.5-flash-image-preview)APIを無料で使う方法
はじめに
どうやらOpenRouterにて、Nano Banana (gemini-2.5-flash-image-preview)APIがFreeで利用できるようになっていましたので、使い方をまとめたいと思います。
OpenRouterのモデルは基本的にはOpenAI API形式で利用することができますが、画像生成、画像編集モデルも同様に利用できるのかを試していきます!
ちなみにVertex AIから利用する場合は先日記載した下記の記事をご覧ください。
なお、OpenRouterについては下記の記事をご覧ください。
リポジトリ
下記のリポジトリをご覧ください。
準備
リポジトリをクローンする
下記コマンドでリポジトリをクローンしてください。
git clone https://github.com/personabb/langchain_asap_sample.git
この記事では、リポジトリ内の下記フォルダを利用します。
cd langchain_asap_sample/gemini2.5_image_generation
環境変数
OpenRouterのAPIを取得します。下記の記事を参考に取得してください。
その後、リポジトリ内の、.env.example
ファイルを.env
にリネームし、OPENROUTER_API_KEY
に取得したAPI情報を入力します。
仮想環境の構築
下記のコマンドで環境を構築してください
pip install -r requirements.txt
uv使っている方は下記でおそらく仮想環境は構築できます。
uv sync
実行
パラメータ
コード内の下記の箇所を修正することで、作成する画像や、参照画像のパス、何回APIを叩くかを設定できます。
# ========== 一度に生成する生成枚数の指定 ==========
generate_images = 5
# ========== 読み込む画像のパス ==========
file_path = "inputs/images3.png"
# ========== 編集内容の指定 ==========
query = "Turn it into a 3D figure. However, make the pose a cooler, more stylish girl's pose."
# =================================
実行コマンド
下記コマンドで実行ができます。
python openrouter_image_editing_api_eng.py
OpenRouterでのNano Bananaの呼び出し方
API_KEY = os.getenv("OPENROUTER_API_KEY", "")
ENDPOINT = "https://openrouter.ai/api/v1"
def call_openrouter_api(system_prompt, user_query, image_base64, api_key, endpoint, temperature=0.7):
"""
OpenRouter APIを直接呼び出す関数
"""
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
}
payload = {
"model": "google/gemini-2.5-flash-image-preview:free",
"messages": [
{
"role": "system",
"content": system_prompt
},
{
"role": "user",
"content": [
{
"type": "text",
"text": user_query
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/png;base64,{image_base64}"
}
}
]
}
],
"temperature": temperature,
# 画像生成を有効にする - OpenRouterの形式に従う
"modalities": ["image", "text"]
}
try:
response = requests.post(
f"{endpoint}/chat/completions",
headers=headers,
json=payload,
timeout=60 # タイムアウト設定
)
# JSONレスポンスを返す
result = response.json()
return result
下記のページを参考にしています。
本当はLangChainからも実行したかったですが、どうやらChatOpenAIクラスが画像出力にはうまく動作せず断念しました。
(サーバから画像データは帰ってきているようだが、LangChainがうまくその情報をReturnできない)
まとめ
Gemini APIもVertex AIも、Nano Bananaを利用する場合は有料なので、gemini-2.0-flash-exp-image-generationのように無料で使えないのかあ・・・と思っておりましたが、さすがOpenRouterですね!!!
なお、下記の記事でも記載していますが、プロンプトは英語で書きましょう!
日本語だとテキストのみが出力されて、画像が出力されないことがあります!
Discussion
初めましてこんにちは、有益な記事を有難うございました。
この記事を参考にして画像生成をしてみましたが、何回かやっているうちにリミットに達したという趣旨のエラーが出て生成できなくなってしまいました。
10ドルチャージしてみたのですが、ダメでした。
もしかして、nano bananaは「無料モデルの制限が1日あたり1,000 requestsに改善」には適応されない感じになってますでしょうか?
あまり詳しくないので、自分のプログラムが悪いのか判断できずに困っております。
今でも無料で通用するものか教えて頂けると有難いです。
よろしくお願いします。
ご質問ありがとうございます!
openrouter起因のレートリミットか、バックで動いているgoogle ai studio起因のレートリミットかどちらなんでしょうか?
正直どちらでも対処しようがない気もしますが、私が今すぐに試せないので・・・ちゃんと回答できず申し訳ないです。
無料で使われすぎて制限をかけられたとかはあると思います
差し支えなければ何回実施したか教えてもらえると、他の方の後学になるのでありがたいです
ご返事いただき、ありがとうございました!
たぶん、5回程度だったかと思いますので、si6さんと同じかもです。
もしかしたら、10ドル課金はNano bananaには関係ないのかもしれない?!
また、明日にでも試してみます!
こんばんは!
私もasapさんのこの投稿に従い、OpenRouterでNanoBananaAPIを叩くことに成功しました。
私は10ドルの課金はせず、ご案内の通りpython openrouter_image_editing_api_eng.pyを実行したところ、画像が5つ生成された後にそれ以上生成できない状況となりました。
状況とするとyaaizzyさんと同じ状況かと思われます。
取り急ぎ共有いたします。とても参考になる投稿、ありがとうございました!!
共有ありがとうございました!
ちなみにですが、Nano bananaで無料生成したいだけなら、Google AI StudioのBuildでアプリ作ると50枚くらいいけるっぽいですよ!
@yaaizzy
@si6
お二方ともありがとうございます。
日本時間朝9時解除で5回の制限がかかっているようです。
ご共有ありがとうございます
Google: Gemini 2.5 Flash Image Previewのfreeが出てこなかったのですが、もしかしてfreeは無くなったのですかね?Prompt Pricingをfreeにした中には出てこないですね。
free版は恐らく今現在使えない状態になっていますね。リストから外されており、model=に入れて画像生成しようとしても404エラーが返ってきてしまいます。
「:free」の部分は消して、「Google: Gemini 2.5 Flash Image Preview」として通常通り使うしか今は仕方なさそうです。