Skip to content

Gemini 图片生成

通过闪电API,你可以用两种方式调用 Gemini-Banana 的图片生成能力:

  • Gemini 原生格式
  • OpenAI 聊天格式

如果你已经在用 Gemini 生态接口,优先选原生格式;如果你现有项目已经基于 OpenAI SDK 或 chat.completions,优先选 OpenAI 聊天格式。

公共参数

参数说明
BASE_URL中转站域名:https://ai.flashapi.top
API_KEY闪电API中生成的 sk-xxx 密钥
model模型名称,如 gemini-3.1-flash-image-previewgemini-3-pro-image-preview
aspectRatio图片比例,如 1:19:1616:9
imageSize图片分辨率,如 1K2K4K

Gemini 原生格式

接口信息

项目内容
方法POST
路径/v1beta/models/{model}:generateContent
鉴权x-goog-api-key: YOUR_API_KEY
Content-Typeapplication/json

请求体结构

json
{
  "contents": [
    {
      "parts": [
        { "text": "你的绘图提示词" }
      ]
    }
  ],
  "generationConfig": {
    "responseModalities": ["image"],
    "imageConfig": {
      "aspectRatio": "1:1",
      "imageSize": "1K"
    }
  }
}

响应结构

json
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "inlineData": {
              "mimeType": "image/jpeg",
              "data": "<base64字符串>"
            }
          }
        ]
      }
    }
  ]
}

图片会通过 inlineData.data 返回 base64 字符串,需要你自行解码并保存。

Python 示例

python
import base64
import os

import requests

API_KEY = "sk-你的密钥"
BASE_URL = "https://ai.flashapi.top"
MODEL = "gemini-3.1-flash-image-preview"
PROMPT = "生成一个闪电图标"
SAVE_TO = "output_gemini.png"

url = f"{BASE_URL}/v1beta/models/{MODEL}:generateContent"

headers = {
    "x-goog-api-key": API_KEY,
    "Content-Type": "application/json",
}

payload = {
    "contents": [
        {"parts": [{"text": PROMPT}]}
    ],
    "generationConfig": {
        "responseModalities": ["image"],
        "imageConfig": {
            "aspectRatio": "1:1",
            "imageSize": "1K"
        }
    }
}

resp = requests.post(url, headers=headers, json=payload, timeout=120)
resp.raise_for_status()
data = resp.json()

parts = data["candidates"][0]["content"]["parts"]
for part in parts:
    if "inlineData" in part:
        image_data = base64.b64decode(part["inlineData"]["data"])
        with open(SAVE_TO, "wb") as f:
            f.write(image_data)
        print(f"图片已保存:{os.path.abspath(SAVE_TO)}")
        break

OpenAI 聊天格式

接口信息

项目内容
方法POST
路径/v1/chat/completions
鉴权Authorization: Bearer YOUR_API_KEY
Content-Typeapplication/json

请求体结构

json
{
  "model": "gemini-3.1-flash-image-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "你的绘图提示词" }
      ]
    }
  ],
  "extra_body": {
    "imageConfig": {
      "aspectRatio": "1:1",
      "imageSize": "1K"
    }
  },
  "max_tokens": 4096,
  "temperature": 0.8
}

extra_body.imageConfig 用于控制图片比例与分辨率,这个字段是可选的。

响应结构

json
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "![image](data:image/jpeg;base64,<base64字符串>)"
      }
    }
  ]
}

图片会以 Markdown 图片语法嵌入在 content 字符串中,提取出 base64 部分后再解码保存即可。

Python 示例

python
import base64
import os
import re

import requests

API_KEY = "sk-你的密钥"
BASE_URL = "https://ai.flashapi.top"
MODEL = "gemini-3.1-flash-image-preview"
PROMPT = "生成一个闪电"
SAVE_TO = "output_openai.png"

url = f"{BASE_URL}/v1/chat/completions"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}

payload = {
    "model": MODEL,
    "messages": [
        {
            "role": "user",
            "content": [{"type": "text", "text": PROMPT}]
        }
    ],
    "extra_body": {
        "imageConfig": {
            "aspectRatio": "1:1",
            "imageSize": "1K"
        }
    },
    "max_tokens": 4096,
    "temperature": 0.8
}

resp = requests.post(url, headers=headers, json=payload, timeout=120)
resp.raise_for_status()
data = resp.json()

content = data["choices"][0]["message"]["content"]

match = re.search(r"data:image/\w+;base64,([A-Za-z0-9+/=\n]+)", content)
if not match:
    raise ValueError(f"未找到图片数据,响应内容: {content[:200]}")

b64_str = match.group(1).replace("\n", "").strip()
b64_str += "=" * (-len(b64_str) % 4)
image_data = base64.b64decode(b64_str)

with open(SAVE_TO, "wb") as f:
    f.write(image_data)

print(f"图片已保存:{os.path.abspath(SAVE_TO)}")

两种格式对比

维度Gemini 原生格式OpenAI 聊天格式
鉴权 Headerx-goog-api-keyAuthorization: Bearer
路径/v1beta/models/{model}:generateContent/v1/chat/completions
图片配置位置generationConfig.imageConfigextra_body.imageConfig
图片返回方式inlineData.data(纯 base64)content 中嵌入 Markdown 图片
适用场景直接对接 Gemini 生态工具兼容 OpenAI SDK 或现有 Chat 流程

注意事项

  • 图片生成通常比文本慢,建议把 timeout 设为 120 秒以上。
  • imageSize 越大,生成耗时通常越长;测试阶段建议先用 1K
  • OpenAI 聊天格式返回的 base64 可能缺少末尾 =,解码前记得补齐。
  • 两种格式都不支持流式输出,stream: true 对绘图无效。

下一步

闪电API | Flash API - 让全球顶级AI模型触手可达