gemini-nano-banana-2.1
Google gemini-nano-banana-2.1
以下说明使用 gemini-nano-banana-2.1 调用 aiftopia 的兼容接口。价格与分组在构建文档时同步自 newapi.aiftopia.com/pricing,实际账户分组和可用性以控制台为准。
#计费信息
原价
- 每次请求
- ¥0.06 / 请求
各分组价格单位:¥ / 每次请求,按原价 × 分组倍率
| 分组 | 每次请求 |
|---|---|
| default分组×1默认分组 | ¥0.06 |
| 绘图&视频分组×1需要绘图或视频选这个分组(按次调用,选1k/2k/4k、时长等参数都是一样的价格) | ¥0.06 |
价格与分组同步于 2026-11-02.
#参考图编辑
POST
https://newapi.aiftopia.com/v1/images/generations#请求参数
| 参数 | 类型 | 必填 | 默认值 | 枚举值 / 约束范围 | 说明 |
|---|---|---|---|---|---|
prompt | string | 是 | — | — | 描述期望生成或编辑的图像。 |
image_urls | array | 否 | — | maxItems: 6 | 生成或多次编辑所用的参考图片 URL,每行一个,最多 6 个。 |
previous_request_id | string | 否 | — | — | 上一张图生成/编辑返回的 request_id(it_...),用于同一 API Key 的连续多轮编辑。 |
seed | integer | 否 | — | — | 固定种子可复现生成结果。 |
#请求示例
curl -X POST "https://newapi.aiftopia.com/v1/images/generations" \
-H "Authorization: Bearer $FOXROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}'import os
import requests
url = "https://newapi.aiftopia.com/v1/images/generations"
headers = {
"Authorization": "Bearer " + os.environ["FOXROUTER_API_KEY"],
"Content-Type": "application/json",
}
payload = """{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}"""
response = requests.post(url, headers=headers, data=payload)
print(response.status_code)
print(response.text)const payload = {
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
};
const response = await fetch("https://newapi.aiftopia.com/v1/images/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FOXROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
console.log(response.status, await response.text());import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String payload = """
{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}
""";
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create("https://newapi.aiftopia.com/v1/images/generations"))
.header("Authorization", "Bearer " + System.getenv("FOXROUTER_API_KEY"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(builder.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}#在线调用
curl -X POST "https://newapi.aiftopia.com/v1/images/generations" \
-H "Authorization: Bearer $FOXROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"image_urls": [
"https://example.com/reference-1.png"
]
}'import os
import requests
url = "https://newapi.aiftopia.com/v1/images/generations"
headers = {
"Authorization": "Bearer " + os.environ["FOXROUTER_API_KEY"],
"Content-Type": "application/json",
}
payload = """{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"image_urls": [
"https://example.com/reference-1.png"
]
}"""
response = requests.post(url, headers=headers, data=payload)
print(response.status_code)
print(response.text)const payload = {
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"image_urls": [
"https://example.com/reference-1.png"
]
};
const response = await fetch("https://newapi.aiftopia.com/v1/images/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FOXROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
console.log(response.status, await response.text());import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String payload = """
{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"image_urls": [
"https://example.com/reference-1.png"
]
}
""";
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create("https://newapi.aiftopia.com/v1/images/generations"))
.header("Authorization", "Bearer " + System.getenv("FOXROUTER_API_KEY"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(builder.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
#图像生成
POST
https://newapi.aiftopia.com/v1/images/generations#请求参数
| 参数 | 类型 | 必填 | 默认值 | 枚举值 / 约束范围 | 说明 |
|---|---|---|---|---|---|
prompt | string | 是 | — | — | 描述期望生成或编辑的图像。 |
aspect_ratio | string | 否 | "1:1" | 1:1 | 16:9 | 9:16 | 4:3 | 3:4 | 3:2 | 2:3 | 21:9 | 输出图像的宽高比。 |
image_size | string | 否 | "1K" | 1K | 2K | 4K | square_hd | landscape_16_9 | portrait_16_9 | 输出分辨率档位或预设别名,例如 1K、2K、4K、square_hd。 |
seed | integer | 否 | — | — | 固定种子可复现生成结果。 |
#请求示例
curl -X POST "https://newapi.aiftopia.com/v1/images/generations" \
-H "Authorization: Bearer $FOXROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}'import os
import requests
url = "https://newapi.aiftopia.com/v1/images/generations"
headers = {
"Authorization": "Bearer " + os.environ["FOXROUTER_API_KEY"],
"Content-Type": "application/json",
}
payload = """{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}"""
response = requests.post(url, headers=headers, data=payload)
print(response.status_code)
print(response.text)const payload = {
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
};
const response = await fetch("https://newapi.aiftopia.com/v1/images/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FOXROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
console.log(response.status, await response.text());import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String payload = """
{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}
""";
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create("https://newapi.aiftopia.com/v1/images/generations"))
.header("Authorization", "Bearer " + System.getenv("FOXROUTER_API_KEY"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(builder.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}#在线调用
curl -X POST "https://newapi.aiftopia.com/v1/images/generations" \
-H "Authorization: Bearer $FOXROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}'import os
import requests
url = "https://newapi.aiftopia.com/v1/images/generations"
headers = {
"Authorization": "Bearer " + os.environ["FOXROUTER_API_KEY"],
"Content-Type": "application/json",
}
payload = """{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}"""
response = requests.post(url, headers=headers, data=payload)
print(response.status_code)
print(response.text)const payload = {
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
};
const response = await fetch("https://newapi.aiftopia.com/v1/images/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.FOXROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
console.log(response.status, await response.text());import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String payload = """
{
"model": "gemini-nano-banana-2.1",
"prompt": "A minimalist product poster of a ceramic vase, soft studio light.",
"aspect_ratio": "1:1",
"image_size": "1K"
}
""";
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create("https://newapi.aiftopia.com/v1/images/generations"))
.header("Authorization", "Bearer " + System.getenv("FOXROUTER_API_KEY"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(builder.build(), HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}