Skip to content

图像生成

POST  v1beta/models/{model}:generateContent/

请求参数

Authorization

在 Header 添加参数 Authorization,其值为在 Bearer 之后拼接 Token。

Authorization: Bearer ******************

path 参数

参数名类型必填说明
modelstring必需模型

Body 参数

Content-Type: application/json

参数名类型必填说明
contentsarray [object]必需输入内容数组。包含发送给模型的对话历史或输入数据。
├─ rolestring可选消息的角色(例如 "user" 或 "model")。
└─ partsarray [object]可选内容片段数组,可以包含文本、图片等。
└─ textstring可选具体的文本提示词或内容。
generationConfigobject必需生成配置对象。用于控制模型生成的各种参数。
└─ responseModalitiesarray[string]必需响应模态。指定模型输出的形式,例如 ["TEXT", "IMAGE"] 表示同时输出文本和图片。
└─ imageConfigobject必需图像配置对象。专门用于配置生成图片的参数。
├─ aspectRatiostring必需宽高比。指定生成图片的比例(例如 "1:1", "16:9", "9:16")。
└─ imageSizestring必需图片尺寸。指定生成图片的具体分辨率大小。

请求示例 (JSON)

{
    "contents": [
        {
            "role": "user",
            "parts": [
                {
                    "text": "draw a cat"
                }
            ]
        }
    ],
    "generationConfig": {
        "responseModalities": [
            "TEXT",
            "IMAGE"
        ],
        "imageConfig": {
            "aspectRatio": "16:9",
            "imageSize": "4K"
        }
    }
}

返回响应

200 成功

Content-Type: application/json

响应参数

字段名类型必填说明
candidatesarray [object]必需候选回复列表。包含模型生成的一个或多个回复结果。
├─ contentobject可选内容对象。包含模型生成的实际内容。
│ ├─ partsarray [object]必需内容片段数组,可能包含文本或图片数据。
│ │ └─ textstring可选生成的文本内容。
│ │ └─ inline_dataobject可选内联数据。通常用于返回生成的图片或上传的文件二进制数据。
│ │ ├─ mime_typestring必需数据的 MIME 类型(例如 "image/png")。
│ │ └─ datastring必需Base64 编码的数据字符串。
│ └─ rolestring必需回复的角色(通常为 "model")。
├─ finishReasonstring可选停止原因。说明模型为何停止生成(例如 "STOP", "MAX_TOKENS")。
├─ indexinteger可选索引。该候选项在列表中的序号。
└─ safetyRatingsarray [object]可选安全评级。内容的安全过滤信息。
├─ categorystring必需安全类别(如 "HARM_CATEGORY_HARASSMENT")。
└─ probabilitystring必需违规概率(如 "NEGLIGIBLE", "LOW", "HIGH")。
usageMetadataobject必需用量元数据。关于 Token 消耗的统计信息。
├─ promptTokenCountinteger必需提示词 Token 数。输入内容消耗的 Token 数量。
├─ candidatesTokenCountinteger必需候选项 Token 数。生成的回复消耗的 Token 数量。
└─ totalTokenCountinteger必需总 Token 数。此次请求的总消耗量。

响应示例

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "已根据你提供的图片生成赛博朋克风格的建筑插画,分辨率为2K,宽高比1:1。"
          },
          {
            "inline_data": {
              "mime_type": "image/png",
              "data": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAACk5+V5AA...(图片Base64编码)"
            }
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": [
        {
          "category": "HARM_CATEGORY_HATE_SPEECH",
          "probability": "NEGLIGIBLE"
        },
        {
          "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
          "probability": "NEGLIGIBLE"
        }
      ]
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 128,
    "candidatesTokenCount": 56,
    "totalTokenCount": 184
  }
}

示例代码

python
import http.client
import json

conn = http.client.HTTPSConnection("nxaiapp.com")
payload = json.dumps({
   "contents": [
      {
         "role": "user",
         "parts": [
            {
               "text": "draw a cat"
            }
         ]
      }
   ],
   "generationConfig": {
      "responseModalities": [
         "TEXT",
         "IMAGE"
      ],
      "imageConfig": {
         "aspectRatio": "16:9",
         "imageSize": "4K"
      }
   }
})
headers = {
   'Authorization': 'Bearer <token>',
   'Content-Type': 'application/json'
}
conn.request("POST", "/v1beta/models/:generateContent/", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))