🍌 Nano Banana 2 已上线 | Now Live:Pro 级画质 + Flash 级速度,按量计费低至官网 3 折!详情 Details
curl --request POST \
--url https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contents": [
{
"parts": [
{
"text": "请把背景模糊化,突出前景的人物"
},
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "BASE64_ENCODED_IMAGE_DATA"
}
}
]
}
],
"generationConfig": {
"responseModalities": [
"IMAGE"
],
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "2K"
}
}
}
'{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/png",
"data": "<string>"
}
}
]
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 10,
"candidatesTokenCount": 258
}
}Nano Banana 2 图片编辑 API 参考与在线调试 — 输入图片 + 指令生成新图片
curl --request POST \
--url https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contents": [
{
"parts": [
{
"text": "请把背景模糊化,突出前景的人物"
},
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "BASE64_ENCODED_IMAGE_DATA"
}
}
]
}
],
"generationConfig": {
"responseModalities": [
"IMAGE"
],
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "2K"
}
}
}
'{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/png",
"data": "<string>"
}
}
]
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 10,
"candidatesTokenCount": 258
}
}Bearer sk-xxx),即可一键发送请求测试。inlineData.data 字段本接口是 JSON 格式(非 multipart 文件上传),所以 Playground 无法直接选择本地文件,需要先把图片转成 Base64 字符串再粘贴到 data 输入框。一行命令转换 + 自动复制到剪贴板:# macOS
base64 -i your-image.jpg | tr -d '\n' | pbcopy
# Linux
base64 -w0 your-image.jpg | xclip -selection clipboard
# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("your-image.jpg")) | Set-Clipboard
data 字段 Cmd+V / Ctrl+V 粘贴即可。同时记得把 mimeType 切换为对应的 image/jpeg 或 image/png。建议:测试用小图(< 200KB),避免 base64 字符串过长导致浏览器卡顿。频繁测试图片编辑更推荐用下方代码示例直接在本地运行。import requests
import base64
API_KEY = "sk-your-api-key"
# 读取待编辑的图片
with open("input.jpg", "rb") as f:
image_b64 = base64.b64encode(f.read()).decode()
response = requests.post(
"https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent",
headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
json={
"contents": [{
"parts": [
{"text": "请把背景模糊化,突出前景的人物"},
{"inlineData": {"mimeType": "image/jpeg", "data": image_b64}}
]
}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"}
}
},
timeout=300
).json()
img_data = response["candidates"][0]["content"]["parts"][0]["inlineData"]["data"]
with open("edited.png", 'wb') as f:
f.write(base64.b64decode(img_data))
print("编辑后的图片已保存至 edited.png")
import fs from "fs";
const API_KEY = "sk-your-api-key";
const imageB64 = fs.readFileSync("input.jpg").toString("base64");
const response = await fetch(
"https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent",
{
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
contents: [{
parts: [
{ text: "请把背景模糊化,突出前景的人物" },
{ inlineData: { mimeType: "image/jpeg", data: imageB64 } }
]
}],
generationConfig: {
responseModalities: ["IMAGE"],
imageConfig: { aspectRatio: "16:9", imageSize: "2K" }
}
})
}
);
const data = await response.json();
const imgBase64 = data.candidates[0].content.parts[0].inlineData.data;
fs.writeFileSync("edited.png", Buffer.from(imgBase64, "base64"));
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
contents[].parts[].text | string | 是 | 编辑指令 |
contents[].parts[].inlineData.mimeType | string | 是 | image/jpeg 或 image/png |
contents[].parts[].inlineData.data | string | 是 | 图片的 Base64 编码 |
generationConfig.responseModalities | array | 是 | 通常为 ["IMAGE"] |
generationConfig.imageConfig.aspectRatio | string | 否 | 14 种宽高比,默认 1:1 |
generationConfig.imageConfig.imageSize | string | 否 | 512 / 1K / 2K / 4K,默认 1K |
inlineData 输入,配合新的编辑指令,可以逐步精调画面效果。