Skip to content

Gemini 图像生成(原生格式)

使用 Gemini 原生的 generateContent 接口进行图像生成与图像编辑。通过在 generationConfig.responseModalities 中声明 IMAGE 模态,模型会在返回中携带图片内容。

代表模型:

  • gemini-2.5-flash-image-preview(Nano Banana)
  • gemini-3-pro-image-preview

TIP

推荐使用本接口进行图像生成。Gemini 原生格式对图像生成、图生图、分辨率与宽高比等参数支持更完整。若需通过 OpenAI 兼容接口调用,请参考 OpenAI 兼容格式图像生成

WARNING

建议使用官方原生接口。跨格式调用(如通过 OpenAI /v1/images/generations 调用 Gemini 图像模型)由代理侧进行格式转换,可能存在参数缺失或行为差异等问题。具体支持范围请咨询 FreeAPI。

请求

Endpoint

http
POST https://www.free-api.ai/api/v1beta/models/{model}:generateContent

路径参数

名称必填说明
model图像模型名称,例如 gemini-2.5-flash-image-previewgemini-3-pro-image-preview

请求头

名称必填说明
AuthorizationBearer your-api-key
Content-Typeapplication/json

请求参数

字段类型必填说明
contentsarray提示词与参考图的内容数组
generationConfigobject生成配置,必须包含 responseModalities
generationConfig.responseModalitiesstring[]响应模态,图像生成需包含 "IMAGE",可组合 ["TEXT", "IMAGE"]
generationConfig.imageConfigobject图像相关配置
generationConfig.imageConfig.aspectRatiostring宽高比,例如 "1:1""16:9""9:16""4:3""3:4"
generationConfig.imageConfig.imageSizestring图像尺寸档位,例如 "1K""2K""4K"(不同模型支持档位不同)

请求示例

文生图(cURL)

bash
curl "https://www.free-api.ai/api/v1beta/models/gemini-3-pro-image-preview:generateContent" \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "一只戴着宇航头盔的橘猫漂浮在星云之间,写实风格,高细节" }
        ]
      }
    ],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {
        "aspectRatio": "16:9",
        "imageSize": "4K"
      }
    }
  }'

图生图 / 图像编辑

parts 中同时提供参考图 (inlineData) 与编辑指令文本:

json
{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "inlineData": {
            "mimeType": "image/png",
            "data": "<base64-encoded-image>"
          }
        },
        { "text": "把背景替换为夕阳下的海边,保持主体不变" }
      ]
    }
  ],
  "generationConfig": {
    "responseModalities": ["IMAGE"]
  }
}

Python (google-genai SDK)

python
import base64
from google import genai
from google.genai import types

client = genai.Client(
    api_key="your-api-key",
    http_options={"base_url": "https://www.free-api.ai/api"},
)

resp = client.models.generate_content(
    model="gemini-3-pro-image-preview",
    contents="一只戴着宇航头盔的橘猫漂浮在星云之间,写实风格,高细节",
    config=types.GenerateContentConfig(
        response_modalities=["TEXT", "IMAGE"],
    ),
)

for part in resp.candidates[0].content.parts:
    if part.inline_data:
        with open("out.png", "wb") as f:
            f.write(part.inline_data.data)

响应示例

图像以 Base64 的 inlineData 形式返回,可能同时包含文本与图像 part:

json
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          { "text": "已为您生成一张太空橘猫图。" },
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "<base64-encoded-image>"
            }
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 24,
    "candidatesTokenCount": 128,
    "totalTokenCount": 152
  }
}

保存图像(以 Python 为例):

python
import base64

with open("out.png", "wb") as f:
    f.write(base64.b64decode(image_b64))

常见问题

  • 返回中没有图像 part:请检查 generationConfig.responseModalities 是否包含 "IMAGE",以及所选模型是否支持图像生成。
  • 宽高比不生效:部分模型仅支持固定档位的 aspectRatio,请参考模型文档。
  • 图像被安全策略拦截finishReasonSAFETY 时,尝试调整提示词或降低敏感内容。

常见错误

HTTP 状态说明
400请求参数错误
401 / 403鉴权失败
429请求频率限制
5xx上游服务异常

Made with docs by FreeAPI Team