跳转到主要内容

Gemini 图片生成

POST /v1beta/models/{model}:generateContent
截至 2026 年 3 月 23 日,Crazyrouter 生产环境对 Gemini 图片生成的验证结果如下:
  • gemini-3.1-flash-image-preview 使用 responseModalities: ["IMAGE"] 时,成功返回 inlineData
  • gemini-3-pro-image-preview 返回的是 text,文本中嵌入了 data:image/...;base64,... 的 Markdown 图片
  • gemini-2.5-flash-image 也返回 text,文本中嵌入了 data:image/...;base64,...
  • gemini-2.5-flash-image-preview 返回 text,文本中嵌入了托管图片 URL
Gemini 图片模型当前在 Crazyrouter 上并没有统一响应格式。不要假设所有模型都会返回 inlineData

当前最稳妥的示例模型

对于“直接拿到图片二进制数据”这个目标,当前最容易处理的是 gemini-3.1-flash-image-preview
curl "https://crazyrouter.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent?key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          {"text": "Generate an IMAGE of a simple red square on a white background. Return image output."}
        ]
      }
    ],
    "generationConfig": {
      "responseModalities": ["IMAGE"]
    }
  }'
生产环境实际返回的关键形态:
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "iVBORw0KGgoAAA..."
            }
          }
        ]
      }
    }
  ]
}

其他已观察到的返回形态

同一天的生产环境检查里,还观察到以下模型差异:
  • gemini-3-pro-image-preview: parts[0].text![image](data:image/jpeg;base64,...)
  • gemini-2.5-flash-image: parts[0].text![image](data:image/png;base64,...)
  • gemini-2.5-flash-image-preview: parts[0].text![Image](https://...)
如果你要兼容多模型,建议优先按下面顺序解析:
  1. 先检查 inlineData
  2. 再检查 text 中是否包含 data:image/
  3. 最后检查 text 中是否包含外链图片 URL
本页没有继续保留宽高比、批量出图等参数说明,因为这些参数在本轮生产验证中没有逐项复测。