Skip to main content
POST
https://www.geeknow.top
/
v1beta
/
models
/
{model}
:generateContent
Gemini 图像生成 API
curl --request POST \
  --url https://www.geeknow.top/v1beta/models/{model}:generateContent \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "contents": [
    {}
  ],
  "contents[].role": "<string>",
  "contents[].parts": [
    {}
  ],
  "contents[].parts[].text": "<string>",
  "contents[].parts[].inlineData": {},
  "contents[].parts[].inlineData.mimeType": "<string>",
  "contents[].parts[].inlineData.data": "<string>",
  "generationConfig": {},
  "generationConfig.responseModalities": [
    "<string>"
  ],
  "generationConfig.imageConfig": {},
  "generationConfig.imageConfig.aspectRatio": "<string>",
  "generationConfig.imageConfig.imageSize": "<string>",
  "safetySettings": [
    {}
  ]
}
'
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "BASE64_OR_URL"
            }
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 123,
    "candidatesTokenCount": 456,
    "totalTokenCount": 579,
    "trafficType": "ON_DEMAND"
  },
  "modelVersion": "gemini-3-pro-image-preview",
  "createTime": "2026-05-21T00:00:00Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.geeknow.top/llms.txt

Use this file to discover all available pages before exploring further.

Gemini 图像生成 API

Gemini 图像模型统一使用官方 generateContent 格式生图,适合直接复用 contents / parts 结构。
  • 路径为 POST /v1beta/models/{model}:generateContent
  • 文生图和图生图都走同一套 contents[].parts[] 结构。
  • 参考图通过 parts[].inlineData 传入。
  • 插件里 responseModalities 默认同时请求 IMAGETEXT
  • 返回里既可能直接给 inlineData.data Base64,也可能给图片 URL。

支持模型

  • gemini-3-pro-image-preview
  • gemini-2.5-flash-image-preview
  • gemini-3.1-flash-image-preview

模型差异

模型imageSize 行为说明
gemini-3-pro-image-preview支持 1K2K会按请求里的 imageSize 真实下发
gemini-2.5-flash-image-preview实际回落为 1K即使界面允许选 2K,插件最终也会发 1K
gemini-3.1-flash-image-preview实际回落为 1K即使界面允许选 2K,插件最终也会发 1K

先看懂图生图

Gemini 这里没有单独的“编辑接口”。图生图就是把参考图直接作为输入拼进 contents[].parts[] 最简单的理解是:
  • 文生图:parts[] 里只有文字
  • 图生图:parts[] 里有文字,也有图片
也就是说,提示词和参考图是一起发给模型的。

文生图 vs 图生图

场景parts[] 内容说明
文生图只有 text纯提示词生成
图生图text + 一个或多个 inlineData让模型参考已有图片风格、主体或构图

图生图怎么传

你只需要记住一个规则:
  • 第一类内容是提示词:{ "text": "..." }
  • 第二类内容是参考图:{ "inlineData": { "mimeType": "...", "data": "BASE64..." } }
插件里的实际做法也是这样:
  • 先放 prompt
  • 再把每一张参考图转成 Base64
  • 逐张 append 到同一个 parts[]

图生图最小示例

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "保留参考图的主体氛围,重做成更高级的海报" },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "BASE64_IMAGE"
          }
        }
      ]
    }
  ],
  "generationConfig": {
    "responseModalities": ["TEXT", "IMAGE"],
    "imageConfig": {
      "aspectRatio": "16:9",
      "imageSize": "2K"
    }
  }
}

方法与路径

POST /v1beta/models/{model}:generateContent

请求示例

curl -X POST https://www.geeknow.top/v1beta/models/gemini-3-pro-image-preview:generateContent \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "一张未来感 AI 工作台场景,冷色氛围,电影级布光" }
        ]
      }
    ],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "temperature": 1.0,
      "topP": 0.95,
      "maxOutputTokens": 8192,
      "imageConfig": {
        "aspectRatio": "16:9",
        "imageSize": "2K"
      }
    }
  }'

图生图示例

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "融合参考图风格,输出一张高清横版海报" },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "BASE64_IMAGE_1"
          }
        },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "BASE64_IMAGE_2"
          }
        }
      ]
    }
  ],
  "generationConfig": {
    "responseModalities": ["TEXT", "IMAGE"],
    "imageConfig": {
      "aspectRatio": "16:9",
      "imageSize": "2K"
    }
  }
}

图生图字段解释

字段图生图里的作用
parts[].text告诉模型“你要怎么改、保留什么、输出成什么风格”
parts[].inlineData.mimeType声明参考图格式
parts[].inlineData.data参考图的 Base64 内容
imageConfig.aspectRatio约束最终出图比例
imageConfig.imageSize约束最终出图清晰度

能传几张参考图

从你的 main.py 现有实现看,插件会遍历 reference_images,把每一张图都追加到 parts[] 里,所以文档上可以理解为:
  • 支持 1 张参考图
  • 也支持多张参考图
  • 多张时就是连续放多个 inlineData

返回后怎么看结果

Gemini 生图返回的图片通常在:
  • candidates[0].content.parts[].inlineData.data
这个字段可能有两种情况:
  1. 直接是 Base64 图片数据
  2. 直接是图片 URL
你的插件已经兼容了这两种返回方式,所以文档里看到 BASE64_OR_URL 是有意这么写的。

Body

contents
array<object>
required
输入内容列表。每项通常包含 roleparts
contents[].role
string
角色字段。插件固定使用 user
contents[].parts
array<object>
required
内容片段数组。提示词和参考图都在这里构造。
contents[].parts[].text
string
文本提示词。
contents[].parts[].inlineData
object
参考图输入。包含 mimeTypedata 两个字段。
contents[].parts[].inlineData.mimeType
string
图片 MIME 类型,常见值为 image/jpegimage/pngimage/webp
contents[].parts[].inlineData.data
string
Base64 编码的图片内容。
generationConfig
object
required
生成配置对象。
generationConfig.responseModalities
array<string>
返回模态列表。插件默认使用 ["IMAGE", "TEXT"]
generationConfig.imageConfig
object
required
图像配置对象。
generationConfig.imageConfig.aspectRatio
string
图片比例。插件支持 1:116:99:164:33:43:22:321:9
generationConfig.imageConfig.imageSize
string
图片清晰度。gemini-3-pro-image-preview 支持插件里暴露的 1K2Kgemini-2.5-flash-image-previewgemini-3.1-flash-image-preview 会实际回落为 1K
safetySettings
array<object>
安全设置。可不传。

响应示例

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "BASE64_OR_URL"
            }
          }
        ]
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 123,
    "candidatesTokenCount": 456,
    "totalTokenCount": 579,
    "trafficType": "ON_DEMAND"
  },
  "modelVersion": "gemini-3-pro-image-preview",
  "createTime": "2026-05-21T00:00:00Z"
}

Response

candidates[].content.parts[].inlineData.mimeType
string
返回图片 MIME 类型。
candidates[].content.parts[].inlineData.data
string
图片数据。可能是 Base64,也可能直接是图片 URL。
usageMetadata
object
Token 统计信息。

相关接口