跳转到主要内容
POST
/
v1beta
/
models
/
gemini-3.1-flash-image-preview:generateContent
图片编辑:根据指令编辑现有图片
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
  }
}
右侧的交互式 Playground 支持下拉选择参数。请在 Authorization 中填入你的 API Key(格式:Bearer sk-xxx),即可一键发送请求测试。
场景说明:本页用于「图片编辑」,必须上传一张待编辑的图片(base64 编码)+ 编辑指令。如果只想根据文本生成新图片,请使用 文生图接口
🖼️ 关于 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
执行后直接在 Playground 的 data 字段 Cmd+V / Ctrl+V 粘贴即可。同时记得把 mimeType 切换为对应的 image/jpegimage/png建议:测试用小图(< 200KB),避免 base64 字符串过长导致浏览器卡顿。频繁测试图片编辑更推荐用下方代码示例直接在本地运行。

代码示例

Python

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")

Node.js

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[].textstring编辑指令
contents[].parts[].inlineData.mimeTypestringimage/jpegimage/png
contents[].parts[].inlineData.datastring图片的 Base64 编码
generationConfig.responseModalitiesarray通常为 ["IMAGE"]
generationConfig.imageConfig.aspectRatiostring14 种宽高比,默认 1:1
generationConfig.imageConfig.imageSizestring512 / 1K / 2K / 4K,默认 1K
Nano Banana 2 支持多轮对话式编辑:把上一次的输出图片作为下一次的 inlineData 输入,配合新的编辑指令,可以逐步精调画面效果。

授权

Authorization
string
header
必填

在 API易控制台获取的 API Key

请求体

application/json
contents
object[]
必填

内容数组,包含编辑指令和待编辑的图片

generationConfig
object
必填

响应

成功生成图片

candidates
object[]

生成结果数组

usageMetadata
object