Skip to content

Gemini 图像生成

Gemini 图像模型使用 Gemini 原生 generateContent 协议,可进行文生图和图生图。该接口的路径和鉴权头与 OpenAI 兼容接口不同。

接口与鉴权

http
POST https://api.topapis.cn/v1beta/models/{model}:generateContent
x-goog-api-key: YOUR_API_KEY
Content-Type: application/json

流式端点为:

http
POST https://api.topapis.cn/v1beta/models/{model}:streamGenerateContent

模型示例包括 gemini-3-pro-image-previewgemini-3.1-flash-image-preview。请先通过 /v1/models 确认账号权限。

文生图请求

bash
curl "https://api.topapis.cn/v1beta/models/gemini-3-pro-image-preview:generateContent" \
  -H "x-goog-api-key: $TOPAPIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "木桌上的红苹果,柔和棚拍光线,简洁背景" }
        ]
      }
    ],
    "generationConfig": {
      "responseModalities": ["IMAGE", "TEXT"],
      "imageConfig": {
        "aspectRatio": "1:1",
        "imageSize": "1K"
      }
    }
  }'

请求字段

字段说明
contents[].parts[].text文本提示词
generationConfig.imageConfig.aspectRatio画幅,例如 1:116:99:16
generationConfig.imageConfig.imageSize常用档位为 1K2K4K,使用大写 K
generationConfig.responseModalities控制 Base64、URL 或组合返回

aspectRatioimageSize 可省略。图生图希望沿用参考图比例时,可省略 aspectRatio 或使用通道支持的自动模式。

图生图输入

在文本 part 之外加入图片 part。Base64 输入使用 inline_data

json
{
  "inline_data": {
    "mime_type": "image/jpeg",
    "data": "BASE64_IMAGE_DATA"
  }
}

远程图片使用 file_data

json
{
  "file_data": {
    "mime_type": "image/jpeg",
    "file_uri": "https://example.com/reference.jpg"
  }
}

远程 URL 必须允许服务端直接访问。Base64 数据不要包含日志中可识别的用户隐私信息。

返回模式

responseModalities返回内容常见读取位置
["IMAGE"]Base64 图片candidates[0].content.parts[].inline_data.data
["TEXT"]图片 URLparts[].textparts[].file_data.file_uri
["IMAGE", "TEXT"]Base64 与 URL同时检查上述字段

客户端应遍历 parts 并按字段类型读取,不依赖固定数组下标。URL 可能是临时地址,应及时下载。

兼容性要求

  • 不同 Gemini 图像模型支持的画幅和分辨率可能不同。
  • 模型不可用或参数不支持时,不应自动改用另一个付费模型。
  • x-goog-api-key 属于敏感请求头,日志策略与 Bearer Token 相同。

TopAPIs API 文档