Gemini 3.1 Flash Image, marketed as Nano Banana 2, is Google's generally available image generation and editing model, described on its model page as the generalist workhorse of the family: high-quality generation and conversational editing at a mainstream price point and low latency, balancing speed with 4K generation, world knowledge and reliable text rendering.
- Input
- text image video $0.5/M
- Output
- image text $60/M
Price in context
Where the price sits among 9 comparable models
The bar shows how this model’s price compares with every other model of the same kind on Synthorai. The cheapest and the most expensive are named at each end. These are base rates; batch, region and cache-write discounts are on the pricing page.
Specs & limits
Tokens
| Context window (vendor spec) | 131,072 |
|---|---|
| Max output (vendor spec) | 32,768 |
Thinking
| Parameter | reasoning_effort |
|---|---|
| Values | minimal · low · medium · high accepted set is the provider's |
Image
| Sizes |
|
|---|---|
| Input modes | text-to-image, single-turn and multi-turn editing, up to 14 reference images |
| Format | jpeg, png |
| Image capabilities |
|
Model
| Modalities | text + image + video → image + text |
|---|
- Reached GA on 2026-05-28 as Nano Banana 2, replacing gemini-3.1-flash-image-preview (shut down 2026-06-25)
- the model page positions it as the family's generalist workhorse, balancing speed with 4K generation, world knowledge and reliable text rendering. Thinking is on
- caching, function calling and structured outputs are not supported
One prompt, measured through the gateway
Gemini 3.1 Flash Image
Model returned 1408×768 latency 12 s
One prompt, one request per model, no retries and no cherry-picking. This is the first result each model returned. Neither size nor duration was pinned: each model used its own default, because a request shaped to fit all of them would flatter none. Files here are re-encoded for the web, so judge composition and prompt adherence, not compression.
Use Gemini 3.1 Flash Image in 30 seconds
OpenAI-compatible: swap the base_url, keep your SDK. POST /v1/images/generations
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",
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",
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",
"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",
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")
.prompt("a watercolor lighthouse at dawn")
.size("1024x1024")
.build());
System.out.println(resp.data().orElseThrow().get(0).b64Json().orElseThrow().substring(0, 80));About Gemini 3.1 Flash Image
- It reached GA on 28 May 2026 and replaced gemini-3.1-flash-image-preview, which was shut down on 25 June 2026.
- Output comes in 0.5K, 1K, 2K and 4K at ten aspect ratios from 1:1 to 21:9, as JPEG or PNG, and a single request can carry up to 14 reference images, up to ten of them objects rendered with high fidelity plus character and style references.
- It accepts text, image, video and PDF input with a 131,072-token input limit and returns image and text; editing works in a single turn or as a multi-turn conversation.
- Its thinking pass is on, while caching, function calling and structured outputs are not supported.
- Synthorai serves it through the images endpoint, billed per token.
FAQ
Is the Gemini 3.1 Flash Image API free to try?
Yes: new accounts get 10 trial calls and up to $1 in free credit, no card required. That's enough to try Gemini 3.1 Flash Image against your real workload before adding a payment method.
What is Gemini 3.1 Flash Image best at?
4K output and ten aspect ratios; up to 14 reference images per request; single-turn edits and multi-turn iteration. See the About section for the full picture from the vendor's own release notes.
How much does Gemini 3.1 Flash Image cost?
Gemini 3.1 Flash Image costs $0.5 per million input tokens and $60 per million output tokens on Synthorai. That is the provider's list price, with no platform markup.
How do I generate images with the Gemini 3.1 Flash Image API?
POST to /v1/images/generations on Synthorai with model="gemini-3.1-flash-image". It follows the OpenAI images API shape, so no vendor SDK is needed. Supported sizes: 512px (0.5K), 1K (1:1 = 1024x1024), 2K (2048x2048), 4K (4096x4096).
How do I get access to Gemini 3.1 Flash Image?
Point your existing OpenAI SDK at base_url="https://synthorai.io/v1", set model="gemini-3.1-flash-image", and you're done. One API key covers every model on the gateway.
Related models
Compare
Every value on this page is transcribed from the vendor's own documentation, linked above, and carries the date it was checked. Prices are compared across the catalogue; specification values that vendors define differently are shown with the difference stated rather than charted. Nothing here is measured by us, and nothing is scored.