Gemini 3.1 Flash Image vs Gemini Nano Banana 2.1
どんなときに、どちらを選ぶか
gemini-nano-banana-2.1はGoogleによるgemini-3.1-flash-imageのアップデート版で、主要な2つの料金は逆方向に動いています。画像出力は100万トークンあたり$60から$30に下がり、入力は$0.5から$1.5に上がりました。画像生成では請求の大半を出力が占めるため、たいていは新しいモデルのほうが安くなります。入力料金の高さが効いてくるのは、動画など大量の入力を含むリクエストに限られます。どちらもテキスト、画像、動画の入力を受け取り、画像とテキストを返し、参照画像は最大14枚まで指定できます。gemini-nano-banana-2.1では横長・縦長のアスペクト比が加わり(10種類に対して15種類)、thinkingのレベルは三段階です。一方、gemini-3.1-flash-imageには0.5Kの出力サイズが残っており、これは新しいモデルには記載がありません。
料金
| Gemini 3.1 Flash Image | Gemini Nano Banana 2.1 | Δ | |
|---|---|---|---|
| 入力 / 100 万トークン | $0.5 | $1.5 | 0.33× |
| 出力 / 100 万トークン | $60 | $30 | 2× |
ビルド時点の現行カタログの料金です。最新の料金表は各モデルのページに掲載しています。
両モデルの位置:100 万トークンあたりの出力料金(この課金単位の画像生成モデル全 11 件、対数スケール)
仕様
| Gemini 3.1 Flash Image | Gemini Nano Banana 2.1 | |
|---|---|---|
| 入力モダリティ | テキスト 画像 動画 | テキスト 画像 動画 |
| 出力モダリティ | テキスト 画像 | テキスト 画像 |
| リリース | 2026-05-28 | 2026-10-06 |
| 出力サイズ |
|
|
| 入力モード | text-to-image, single-turn and multi-turn editing, up to 14 reference images | text-to-image, single-turn and multi-turn editing, up to 14 reference images |
| フォーマット | jpeg, png | - |
| 備考 | 0.5K, 1K, 2K and 4K output at ten aspect ratios (1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9), JPEG or PNG up to 14 reference images per request, up to ten of them objects rendered with high fidelity plus character and style references single-turn editing and multi-turn conversational iteration | 1K, 2K and 4K output at fifteen aspect ratios (1:1, 3:2, 2:3, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, 9:21, 1:4, 4:1, 1:8, 8:1) up to 14 reference images per request single-turn editing and multi-turn conversational iteration |
仕様は各ベンダーのドキュメントから転記しています。ベンダーが公表していない項目は、推測で埋めずに省いています。 出典の一覧: Gemini 3.1 Flash Image · Gemini Nano Banana 2.1
1 つのプロンプトを両モデルで実行(ゲートウェイ経由で測定)
1 つのプロンプトを各モデルに 1 回ずつ送り、最初に返ってきた結果をそのまま掲載しています。再試行も、出来のよいものだけを選ぶこともしていません。サイズと長さは指定せず、各モデルのデフォルトに任せました。すべてのモデルに合わせた条件にすると、どのモデルの持ち味も出なくなるためです。ここに掲載しているファイルは Web 用に再エンコードしているので、圧縮品質ではなく、構図とプロンプトへの忠実さを見てください。
1 行の変更で切り替え
以下のどのタブにも両方のモデル ID が入っています。書き換えるのはハイライトされた 2 行だけで、エンドポイント、キー、リクエスト形式はすべて同じです。
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.images.generate(
model="gemini-3.1-flash-image",
# model="gemini-nano-banana-2.1", # この行のコメントを外し、上の行をコメントアウト
prompt="a watercolor lighthouse at dawn",
size="1024x1024",
)
print(resp.data[0].b64_json[:80])import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.images.generate({
model: "gemini-3.1-flash-image",
// model: "gemini-nano-banana-2.1", // この行のコメントを外し、上の行をコメントアウト
prompt: "a watercolor lighthouse at dawn",
size: "1024x1024",
});
console.log(resp.data?.[0]?.b64_json?.slice(0, 80));curl https://synthorai.io/v1/images/generations \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image",
# "model": "gemini-nano-banana-2.1", # この行のコメントを外し、上の行をコメントアウト
"prompt": "a watercolor lighthouse at dawn",
"size": "1024x1024"
}'package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
resp, _ := client.Images.Generate(context.TODO(), openai.ImageGenerateParams{
Model: "gemini-3.1-flash-image",
// Model: "gemini-nano-banana-2.1", // この行のコメントを外し、上の行をコメントアウト
Prompt: "a watercolor lighthouse at dawn",
Size: "1024x1024",
})
fmt.Println(resp.Data[0].B64JSON[:80])
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.images.*;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
ImagesResponse resp = client.images().generate(
ImageGenerateParams.builder()
.model("gemini-3.1-flash-image")
// .model("gemini-nano-banana-2.1") // この行のコメントを外し、上の行をコメントアウト
.prompt("a watercolor lighthouse at dawn")
.size("1024x1024")
.build());
System.out.println(resp.data().orElseThrow().get(0).b64Json().orElseThrow().substring(0, 80));よくある質問
Gemini 3.1 Flash Image と Gemini Nano Banana 2.1 ではどちらが安いですか?
入力 / 100 万トークンは Gemini 3.1 Flash Image のほうが安くなります($0.5 対 $1.5、3.0 倍の差)。ほかの行では逆になることもあります。料金の全体は上の表に掲載しており、実際のコストは利用の内訳によって変わります。
Gemini 3.1 Flash Image と Gemini Nano Banana 2.1 の A/B テストは、実装を 2 つ用意せずにできますか?
はい。どちらも同じ OpenAI 互換エンドポイントから 1 つの API キーで利用できます。切り替えはモデル名の文字列を 1 行変えるだけなので、トラフィックの一部をそれぞれに振り分けて、請求額を直接比較できます。
画像サイズによって価格は変わりますか?
モデルの課金方式によります。画像単位で課金されるモデルは、プロンプトや出力サイズにかかわらず同じ料金です。トークン単位で課金されるモデルは、生成する解像度に応じて料金が変わるため、4K 画像は小さな画像の数倍のコストになります。各モデルがどちらに当たるかは、上の表で確認できます。