图像生成
POST v1beta/models/{model}:generateContent/请求参数
Authorization
在 Header 添加参数 Authorization,其值为在 Bearer 之后拼接 Token。
Authorization: Bearer ******************path 参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 必需 | 模型 |
Body 参数
Content-Type: application/json
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| contents | array [object] | 必需 | 输入内容数组。包含发送给模型的对话历史或输入数据。 |
| ├─ role | string | 可选 | 消息的角色(例如 "user" 或 "model")。 |
| └─ parts | array [object] | 可选 | 内容片段数组,可以包含文本、图片等。 |
| └─ text | string | 可选 | 具体的文本提示词或内容。 |
| generationConfig | object | 必需 | 生成配置对象。用于控制模型生成的各种参数。 |
| └─ responseModalities | array[string] | 必需 | 响应模态。指定模型输出的形式,例如 ["TEXT", "IMAGE"] 表示同时输出文本和图片。 |
| └─ imageConfig | object | 必需 | 图像配置对象。专门用于配置生成图片的参数。 |
| ├─ aspectRatio | string | 必需 | 宽高比。指定生成图片的比例(例如 "1:1", "16:9", "9:16")。 |
| └─ imageSize | string | 必需 | 图片尺寸。指定生成图片的具体分辨率大小。 |
请求示例 (JSON)
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "draw a cat"
}
]
}
],
"generationConfig": {
"responseModalities": [
"TEXT",
"IMAGE"
],
"imageConfig": {
"aspectRatio": "16:9",
"imageSize": "4K"
}
}
}返回响应
200 成功
Content-Type: application/json
响应参数
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| candidates | array [object] | 必需 | 候选回复列表。包含模型生成的一个或多个回复结果。 |
| ├─ content | object | 可选 | 内容对象。包含模型生成的实际内容。 |
| │ ├─ parts | array [object] | 必需 | 内容片段数组,可能包含文本或图片数据。 |
| │ │ └─ text | string | 可选 | 生成的文本内容。 |
| │ │ └─ inline_data | object | 可选 | 内联数据。通常用于返回生成的图片或上传的文件二进制数据。 |
| │ │ ├─ mime_type | string | 必需 | 数据的 MIME 类型(例如 "image/png")。 |
| │ │ └─ data | string | 必需 | Base64 编码的数据字符串。 |
| │ └─ role | string | 必需 | 回复的角色(通常为 "model")。 |
| ├─ finishReason | string | 可选 | 停止原因。说明模型为何停止生成(例如 "STOP", "MAX_TOKENS")。 |
| ├─ index | integer | 可选 | 索引。该候选项在列表中的序号。 |
| └─ safetyRatings | array [object] | 可选 | 安全评级。内容的安全过滤信息。 |
| ├─ category | string | 必需 | 安全类别(如 "HARM_CATEGORY_HARASSMENT")。 |
| └─ probability | string | 必需 | 违规概率(如 "NEGLIGIBLE", "LOW", "HIGH")。 |
| usageMetadata | object | 必需 | 用量元数据。关于 Token 消耗的统计信息。 |
| ├─ promptTokenCount | integer | 必需 | 提示词 Token 数。输入内容消耗的 Token 数量。 |
| ├─ candidatesTokenCount | integer | 必需 | 候选项 Token 数。生成的回复消耗的 Token 数量。 |
| └─ totalTokenCount | integer | 必需 | 总 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"))