Gemini 图片编辑

通过 Gemini GenerateContent 协议编辑图片

1. 概述

使用 Gemini 原生 GenerateContent 协议,将图片数据与编辑指令一并提交。

  • baseUrl:https://token.soar.qjclouds.cn/laserStreamEr/00000000/v1beta
  • completionsPath:/models/{model}:{invokeFuncName}
  • invokeFuncName:generateContent
  • 标准地址:POST {baseUrl}{completionsPath}
  • 鉴权:Authorization: Bearer <api_key>
  • 请求体:标准 Gemini GenerateContent JSON

地址拼接:{baseUrl}{completionsPath},其中 invokeFuncName为:generateContent ,model 为模型编码,例如:gemini-3.1-flash-lite-image,即 https://token.soar.qjclouds.cn/laserStreamEr/00000000/v1beta/models/gemini-3.1-flash-lite-image:generateContent

2. 鉴权

请求 Header 中需携带平台生成的 API Key:

HTTP
Authorization: Bearer <api_key>
Content-Type: application/json
Accept: application/json

3. 请求与响应示例

请求地址:https://token.soar.qjclouds.cn/laserStreamEr/00000000/v1beta/models/gemini-3.1-flash-lite-image:generateContent

Header 参数

字段 类型 必填 说明
Content-Type string 是 示例:application/json
Authorization string 是 示例:Bearer {YOUR_API_KEY}

Body 参数

字段 类型 必填 说明
contents array<object> 是 必需。与模型当前对话的内容。
contents[].role string 否 消息角色。多轮对话时必须交替出现 user/model,单轮请求可省略。
contents[].parts array<object> 是
contents[].parts[].text string 否 文本内容
contents[].parts[].inlineData object 否
contents[].parts[].inlineData.mimeType string 是 输入图片的 MIME 类型。
contents[].parts[].inlineData.data string 是 输入的图片信息,Base64 编码。
generationConfig object 是
generationConfig.responseModalities array<string> 是 可选。所请求的响应模态。表示模型可以返回且应在响应中预期的模态集合。这与回答的模态完全匹配。

一个模型可能支持多种模态组合。如果请求的模态与任何支持的组合都不匹配,则会返回错误。

空列表相当于仅请求文本。
generationConfig.imageConfig object 是
generationConfig.imageConfig.aspectRatio string 是 可选。要生成的图片的宽高比。支持的宽高比:1:1、1:4、4:1、1:8、8:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9 或 21:9。

如果未指定,模型将根据提供的任何参考图片选择默认宽高比。
generationConfig.imageConfig.imageSize string 是 可选。指定生成的图片的大小。支持的值包括 512、1K、2K、4K。如果未指定,模型将使用默认值 1K。
generationConfig.imageConfig.mimeType string 否 可选。图片输出的 MIME 类型。

响应状态

HTTP 状态码 说明
200 成功

成功响应参数

字段 类型 必填 说明
candidates array<object> 否
candidates[].content object 否
candidates[].content.role string 否
candidates[].content.parts array<object> 否
candidates[].content.parts[].text string 否
candidates[].content.parts[].thoughtSignature string 否
candidates[].content.parts[].inlineData object 否
candidates[].content.parts[].inlineData.mimeType string 否
candidates[].content.parts[].inlineData.data string 否
candidates[].finishReason string 否
candidates[].index integer 否
usageMetadata object 否
usageMetadata.promptTokenCount integer 否
usageMetadata.candidatesTokenCount integer 否
usageMetadata.totalTokenCount integer 否
usageMetadata.trafficType string 否
usageMetadata.promptTokensDetails array<object> 否
usageMetadata.promptTokensDetails[].modality string 否
usageMetadata.promptTokensDetails[].tokenCount integer 否
usageMetadata.candidatesTokensDetails array<object> 否
usageMetadata.candidatesTokensDetails[].modality string 是
usageMetadata.candidatesTokensDetails[].tokenCount integer 是
usageMetadata.thoughtsTokenCount integer 否

请求示例

JSON
{
  "contents": [{
    "role": "user",
    "parts": [
      { "text": "将图片修改为复古风格,色彩更温暖,并附上简短描述。" },
      { "inlineData": { "mimeType": "image/jpeg", "data": "base64 data" } }
    ]
  }],
  "generationConfig": {
    "responseModalities": ["IMAGE", "TEXT"],
    "imageConfig": { "aspectRatio": "16:9", "imageSize": "1K" }
  }
}

响应示例

JSON
{
  "candidates": [{
    "content": {
      "parts": [
        { "text": "这里是为您修改后的图片,采用了复古暖色调风格。" },
        { "inlineData": { "data": "base64 data" } }
      ],
      "role": "model"
    },
    "finishReason": "STOP"
  }],
  "modelVersion": "gemini-3.1-flash-lite-image",
  "responseId": "9CueavWVIszRi9sPrKHS-AM",
  "usageMetadata": {
    "candidatesTokenCount": 1199,
    "promptTokenCount": 1139,
    "totalTokenCount": 2338
  }
}

4. 调用提示

inlineData.mimeType 应与提交图片的实际格式一致。