Skip to content

Gemini 图片生成

Gemini 图片模型同时支持 Gemini 原生格式和 OpenAI 聊天格式。两种格式使用同一批 -count 模型,并按生成次数计费。

调用前准备

选择专用分组

创建令牌时必须选择 【图片视频专用分组】。图片模型名都要带 -count 后缀,不要省略。

模型与价格

模型参考价格支持格式
gemini-2.5-flash-image-count¥0.04/次Gemini 原生 / OpenAI 聊天
gemini-3.1-flash-image-count¥0.14/次Gemini 原生 / OpenAI 聊天
gemini-3.1-flash-image-preview-count¥0.14/次Gemini 原生 / OpenAI 聊天
gemini-3-pro-image-preview-count¥0.20/次Gemini 原生 / OpenAI 聊天

模型和价格可能调整,请以 GET /v1/models、控制台及实时定价为准。

Gemini 原生格式

适合已经使用 Gemini SDK 或 Google 接口结构的项目。

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

请求示例

bash
curl "https://ai.flashapi.top/v1beta/models/gemini-3.1-flash-image-preview-count:generateContent" \
  -H "x-goog-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"parts": [{"text": "一枚黄色闪电图标,纯白背景"}]}
    ],
    "generationConfig": {
      "responseModalities": ["image"],
      "imageConfig": {
        "aspectRatio": "1:1",
        "imageSize": "1K"
      }
    }
  }'
参数说明
modelURL 中的完整 -count 模型名
contents[].parts[].text图片提示词
aspectRatio图片比例,例如 1:19:1616:9
imageSize图片分辨率,例如 1K2K4K

响应格式

图片通过 inlineData.data 返回 base64 字符串。

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

Python 示例

python
import base64
import os

import requests

api_key = os.environ["FLASH_API_KEY"]
model = "gemini-3.1-flash-image-preview-count"
response = requests.post(
    f"https://ai.flashapi.top/v1beta/models/{model}:generateContent",
    headers={"x-goog-api-key": api_key},
    json={
        "contents": [{"parts": [{"text": "一枚黄色闪电图标,纯白背景"}]}],
        "generationConfig": {
            "responseModalities": ["image"],
            "imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"},
        },
    },
    timeout=180,
)
response.raise_for_status()

parts = response.json()["candidates"][0]["content"]["parts"]
image = next(part["inlineData"] for part in parts if "inlineData" in part)
suffix = {"image/png": ".png", "image/jpeg": ".jpg"}.get(image["mimeType"], ".img")
with open(f"gemini-native{suffix}", "wb") as file:
    file.write(base64.b64decode(image["data"]))

OpenAI 聊天格式

适合已经使用 OpenAI SDK、chat.completions 或兼容客户端的项目。

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

请求示例

bash
curl https://ai.flashapi.top/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image-preview-count",
    "messages": [
      {
        "role": "user",
        "content": [{"type": "text", "text": "一枚黄色闪电图标,纯白背景"}]
      }
    ],
    "extra_body": {
      "imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
    },
    "max_tokens": 4096,
    "temperature": 0.8
  }'

图片以 Markdown 图片语法嵌入 choices[0].message.content

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

Python 示例

python
import base64
import os
import re

import requests

api_key = os.environ["FLASH_API_KEY"]
response = requests.post(
    "https://ai.flashapi.top/v1/chat/completions",
    headers={"Authorization": f"Bearer {api_key}"},
    json={
        "model": "gemini-3.1-flash-image-preview-count",
        "messages": [
            {"role": "user", "content": [{"type": "text", "text": "一枚黄色闪电图标"}]}
        ],
        "extra_body": {"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}},
        "max_tokens": 4096,
    },
    timeout=180,
)
response.raise_for_status()

content = response.json()["choices"][0]["message"]["content"]
match = re.search(r"data:(image/\w+);base64,([A-Za-z0-9+/=\n]+)", content)
if not match:
    raise ValueError("响应中没有图片数据")

mime_type, encoded = match.groups()
encoded = encoded.replace("\n", "").strip()
encoded += "=" * (-len(encoded) % 4)
suffix = {"image/png": ".png", "image/jpeg": ".jpg"}.get(mime_type, ".img")
with open(f"gemini-openai{suffix}", "wb") as file:
    file.write(base64.b64decode(encoded))

两种格式怎么选

维度Gemini 原生格式OpenAI 聊天格式
鉴权x-goog-api-keyAuthorization: Bearer
路径/v1beta/models/{model}:generateContent/v1/chat/completions
图片配置generationConfig.imageConfigextra_body.imageConfig
图片返回inlineData.dataMarkdown data URL
适合场景Gemini 生态项目OpenAI 兼容项目

常见问题

现象处理方式
model_not_found 或“无可用渠道”使用完整 -count 模型名,并确认令牌属于【图片视频专用分组】
base64 解码报 padding 错误在字符串末尾补 =,直到长度能被 4 整除
请求超时使用 1K 测试,并把客户端超时设置为 180 秒以上
没有收到流式图片图片接口不使用流式输出,请等待完整响应

下一步

一个 Base URL 接入 GPT、Claude、Gemini