图像生成/编辑
通过 Gemini 原生 generateContent 接口生成或编辑图像 — Nano Banana 系列、Gemini Flash Image 等
通过 Google Gemini 原生 generateContent 接口调用 Nano Banana 系列图像模型生成或编辑图像。amux-api 在网关层会自动为图像模型注入 responseModalities=["TEXT","IMAGE"],并将上游返回的 inlineData 透传给客户端。
| 项目 | 值 |
|---|---|
| 请求方法 | POST |
| 请求路径 | /v1beta/models/{model}:generateContent |
| 完整 URL | https://api.amux.ai/v1beta/models/gemini-2.5-flash-image:generateContent |
| 请求格式 | application/json |
| 响应格式 | application/json |
本接口与 Gemini 文本聊天 共用同一端点。请求体的完整字段参考请见文本聊天文档;本页仅聚焦图像生成相关字段与响应处理。
支持图像生成的模型
amux-api 内置以下 Gemini 图像生成模型(SupportedImagineModels):
| 模型 | 别名 / 说明 |
|---|---|
gemini-2.5-flash-image | Nano Banana |
gemini-3-pro-image-preview | Nano Banana Pro |
gemini-3.1-flash-image-preview | Nano Banana 2 |
gemini-2.0-flash-exp-image-generation | 早期实验版 |
gemini-2.0-flash-exp | 早期实验版 |
完整可用模型与计费见 https://api.amux.ai/pricing。
imagen-* 系列(如 imagen-4.0-generate-001)走 Google 原生 :predict 端点,不在本页范围内。可通过 /v1/images/generations(OpenAI 格式)调用。
路径参数
Prop
Type
请求头与认证
与文本聊天一致,三种鉴权方式任选其一:
| 渠道 | 取值 |
|---|---|
| Authorization | Bearer <API_TOKEN>(推荐) |
| x-goog-api-key | <API_TOKEN> |
| ?key= | query 参数 |
关键请求字段
Prop
Type
generationConfig 关键字段
Prop
Type
字段命名陷阱:Gemini 上游对 imageConfig 内字段仅接受 camelCase(aspectRatio、imageSize),传入 snake_case 会被上游拒绝。如果需要在 OpenAI Chat 格式(extra_body.google.image_config)中传入,amux-api 会自动从 snake_case 转 camelCase(详见 OpenAI 聊天格式)。
请求示例
文本生图
curl "https://api.amux.ai/v1beta/models/gemini-2.5-flash-image:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AMUX_API_KEY" \
-d '{
"contents": [
{
"role": "user",
"parts": [
{ "text": "一只戴着贝雷帽的可爱海獭幼崽,水彩风格" }
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "1K"
}
}
}'import os
import base64
from google import genai
client = genai.Client(
api_key=os.environ["AMUX_API_KEY"],
http_options={"base_url": "https://api.amux.ai"},
)
response = client.models.generate_content(
model="gemini-2.5-flash-image",
contents="一只戴着贝雷帽的可爱海獭幼崽,水彩风格",
config={
"response_modalities": ["TEXT", "IMAGE"],
"image_config": {
"aspect_ratio": "1:1",
"image_size": "1K",
},
},
)
for part in response.candidates[0].content.parts:
if part.inline_data:
with open("otter.png", "wb") as f:
f.write(base64.b64decode(part.inline_data.data))import { writeFileSync } from 'node:fs';
import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({
apiKey: process.env.AMUX_API_KEY!,
httpOptions: { baseUrl: 'https://api.amux.ai' },
});
const response = await ai.models.generateContent({
model: 'gemini-2.5-flash-image',
contents: '一只戴着贝雷帽的可爱海獭幼崽,水彩风格',
config: {
responseModalities: ['TEXT', 'IMAGE'],
imageConfig: { aspectRatio: '1:1', imageSize: '1K' },
},
});
for (const part of response.candidates![0].content!.parts!) {
if (part.inlineData) {
writeFileSync('otter.png', Buffer.from(part.inlineData.data!, 'base64'));
}
}图像编辑(参考图 + 提示词)
IMAGE_BASE64=$(base64 < cat.png | tr -d '\n')
curl "https://api.amux.ai/v1beta/models/gemini-2.5-flash-image:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AMUX_API_KEY" \
-d "{
\"contents\": [{
\"role\": \"user\",
\"parts\": [
{ \"text\": \"把这张图的背景换成樱花飘落的春日庭院\" },
{ \"inlineData\": { \"mimeType\": \"image/png\", \"data\": \"$IMAGE_BASE64\" } }
]
}],
\"generationConfig\": {
\"responseModalities\": [\"TEXT\", \"IMAGE\"],
\"imageConfig\": { \"aspectRatio\": \"1:1\" }
}
}"响应示例
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{ "text": "这是一只戴着贝雷帽的海獭幼崽。" },
{
"inlineData": {
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": []
}
],
"usageMetadata": {
"promptTokenCount": 24,
"candidatesTokenCount": 1290,
"totalTokenCount": 1314,
"promptTokensDetails": [
{ "modality": "TEXT", "tokenCount": 24 }
]
}
}响应字段
完整响应结构与 文本聊天的响应 一致。图像生成的关键差异:
Prop
Type
错误响应
错误响应结构与 Gemini 文本聊天 一致:
{
"error": {
"code": 400,
"message": "...",
"status": "INVALID_ARGUMENT"
}
}常见错误:
| 错误 | 原因 |
|---|---|
not supported model for image generation | 模型不在 SupportedImagineModels 列表中(amux 网关层校验) |
extra_body.google.image_config.aspectRatio is not supported, use ... aspect_ratio | 通过 extra_body 传入时使用了 camelCase;应使用 snake_case |