跳转到主要内容
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": "一只可爱的柴犬坐在樱花树下,水彩画风格,高清细节"
        }
      ]
    }
  ],
  "generationConfig": {
    "responseModalities": [
      "IMAGE"
    ],
    "imageConfig": {
      "aspectRatio": "16:9",
      "imageSize": "2K"
    }
  }
}
'
import requests

url = "https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent"

payload = {
"contents": [{ "parts": [{ "text": "一只可爱的柴犬坐在樱花树下,水彩画风格,高清细节" }] }],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "2K"
}
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
contents: [{parts: [{text: '一只可爱的柴犬坐在樱花树下,水彩画风格,高清细节'}]}],
generationConfig: {
responseModalities: ['IMAGE'],
imageConfig: {aspectRatio: '16:9', imageSize: '2K'}
}
})
};

fetch('https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'contents' => [
[
'parts' => [
[
'text' => '一只可爱的柴犬坐在樱花树下,水彩画风格,高清细节'
]
]
]
],
'generationConfig' => [
'responseModalities' => [
'IMAGE'
],
'imageConfig' => [
'aspectRatio' => '16:9',
'imageSize' => '2K'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent"

payload := strings.NewReader("{\n \"contents\": [\n {\n \"parts\": [\n {\n \"text\": \"一只可爱的柴犬坐在樱花树下,水彩画风格,高清细节\"\n }\n ]\n }\n ],\n \"generationConfig\": {\n \"responseModalities\": [\n \"IMAGE\"\n ],\n \"imageConfig\": {\n \"aspectRatio\": \"16:9\",\n \"imageSize\": \"2K\"\n }\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contents\": [\n {\n \"parts\": [\n {\n \"text\": \"一只可爱的柴犬坐在樱花树下,水彩画风格,高清细节\"\n }\n ]\n }\n ],\n \"generationConfig\": {\n \"responseModalities\": [\n \"IMAGE\"\n ],\n \"imageConfig\": {\n \"aspectRatio\": \"16:9\",\n \"imageSize\": \"2K\"\n }\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"contents\": [\n {\n \"parts\": [\n {\n \"text\": \"一只可爱的柴犬坐在樱花树下,水彩画风格,高清细节\"\n }\n ]\n }\n ],\n \"generationConfig\": {\n \"responseModalities\": [\n \"IMAGE\"\n ],\n \"imageConfig\": {\n \"aspectRatio\": \"16:9\",\n \"imageSize\": \"2K\"\n }\n }\n}"

response = http.request(request)
puts response.read_body
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "<string>"
            }
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 10,
    "candidatesTokenCount": 258
  }
}
右侧的交互式 Playground 支持下拉选择参数(宽高比、分辨率、响应类型等)。请在 Authorization 中填入你的 API Key(格式:Bearer sk-xxx),即可一键发送请求测试。
场景说明:本页用于「文本生成图片」。只需输入提示词即可,无需上传任何图片。如需根据现有图片做编辑,请使用 图片编辑接口
🖥️ 浏览器 Playground 限制(重要)本接口的响应里包含 base64 编码的图片(inlineData.data,数 MB 量级)。受浏览器渲染限制,右侧 Playground 在收到响应后可能弹出 请求时发生错误: unable to complete request ——实际请求已经成功,只是浏览器无法把这么长的 base64 显示出来。推荐做法(小白零踩坑):
  • 直接复制下方”代码示例”中的 Python / Node.js / cURL 到本地运行,代码会自动 base64.b64decode 并把图片保存为本地文件
  • 如要在浏览器里试 Playground,把 imageSize 设为最小档(如 512 / 1K),缩小响应体积。

代码示例

Python

import requests
import base64

API_KEY = "sk-your-api-key"
PROMPT = "一只可爱的柴犬坐在樱花树下,水彩画风格,高清细节"

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": PROMPT}]}],
        "generationConfig": {
            "responseModalities": ["IMAGE"],
            "imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"}
        }
    },
    timeout=300
).json()

img_data = response["candidates"][0]["content"]["parts"][0]["inlineData"]["data"]
with open("output.png", 'wb') as f:
    f.write(base64.b64decode(img_data))
print("图片已保存至 output.png")

cURL

curl -X POST "https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "未来主义的城市夜景,霓虹灯,赛博朋克风格"}]}],
    "generationConfig": {
      "responseModalities": ["IMAGE"],
      "imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"}
    }
  }'

Node.js

import fs from "fs";

const API_KEY = "sk-your-api-key";

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: "未来主义的城市夜景,霓虹灯,赛博朋克风格" }] }],
      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("output.png", Buffer.from(imgBase64, "base64"));

参数说明速查

参数类型必填说明
contents[].parts[].textstring文本提示词
generationConfig.responseModalitiesarray["IMAGE"]["TEXT","IMAGE"]
generationConfig.imageConfig.aspectRatiostring14 种宽高比,默认 1:1
generationConfig.imageConfig.imageSizestring512 / 1K / 2K / 4K,默认 1K
generationConfig.thinkingConfig.thinkingLevelstringminimal(快速)/ High(深度推理),默认 minimal
generationConfig.thinkingConfig.includeThoughtsboolean是否返回思维过程文本,默认 false
详细的参数文档、可选值和默认值请查看右侧 Playground 中的字段说明,所有 enum 类型字段(如 aspectRatioimageSizethinkingLevel)都支持下拉选择,无需手动输入。
不支持的功能以下谷歌官方功能在 API易 中不支持,需要单独计费:
  • Grounding with Google Search(谷歌搜索增强):通过 tools: [{"google_search": {}}] 调用实时搜索信息
  • Image Search Grounding(图片搜索增强,Nano Banana 2 独有):通过谷歌图片搜索获取视觉上下文
这些功能需要额外的谷歌搜索 API 费用,暂不纳入 API易 转发范围。

授权

Authorization
string
header
必填

在 API易控制台获取的 API Key

请求体

application/json
contents
object[]
必填

内容数组,包含文本提示词

generationConfig
object
必填

响应

成功生成图片

candidates
object[]

生成结果数组

usageMetadata
object