12API logo12API
API 手册

NanoBanana 图片

使用 Gemini 图片模型生成、编辑和迭代图片

NanoBanana 使用 Gemini 原生 generateContent 格式处理图片,适合文本生成图片、参考图编辑、多图合成和多轮图片迭代。

接口选择

需要同步拿到 base64 图片时使用本页接口。需要批量生成、后台任务或直接返回图片 URL 时,使用 异步图片任务

接口概览

项目说明
方法POST
路径/v1beta/models/{model}:generateContent
Base URLhttps://cdn.12ai.org
请求格式application/json
认证?key=$API_KEY
返回图片candidates[].content.parts[].inlineData.data

推荐模型

模型适合场景
gemini-3.1-flash-image-preview日常图片生成首选,质量、速度和成本比较均衡
gemini-3-pro-image-preview专业素材、复杂指令、高分辨率输出
gemini-2.5-flash-image低延迟、大批量、基础图片任务

请求体

参数类型必填说明
contentsarray文本、图片或多轮上下文
generationConfig.responseModalitiesarray建议设为 ["IMAGE"]["TEXT", "IMAGE"]
generationConfig.imageConfig.aspectRatiostring宽高比,例如 1:116:99:16
generationConfig.imageConfig.imageSizestring512px1K2K4K,不同模型支持范围不同

参数大小写

Gemini 原生格式区分大小写。imageSize 需要写成 1K2K4K,不要写成 1k

文本生成图片

curl "https://cdn.12ai.org/v1beta/models/gemini-3.1-flash-image-preview:generateContent?key=$API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"text": "一张极简产品海报,白色背景,玻璃质感水杯,柔和棚拍光"}
      ]
    }],
    "generationConfig": {
      "responseModalities": ["IMAGE"],
      "imageConfig": {
        "aspectRatio": "1:1",
        "imageSize": "1K"
      }
    }
  }'
from google import genai
from google.genai import types

client = genai.Client(
    api_key="sk-xxx",
    http_options={"base_url": "https://cdn.12ai.org"},
)

response = client.models.generate_content(
    model="gemini-3.1-flash-image-preview",
    contents="一张极简产品海报,白色背景,玻璃质感水杯,柔和棚拍光",
    config=types.GenerateContentConfig(
        response_modalities=["IMAGE"],
        image_config=types.ImageConfig(
            aspect_ratio="1:1",
            image_size="1K",
        ),
    ),
)

for part in response.candidates[0].content.parts:
    if part.inline_data:
        part.as_image().save("output.png")
        break

参考图编辑

参考图需要以 inlineData 传入。Python SDK 可以直接传 PIL.Image,SDK 会处理图片数据。

from google import genai
from PIL import Image

client = genai.Client(
    api_key="sk-xxx",
    http_options={"base_url": "https://cdn.12ai.org"},
)

response = client.models.generate_content(
    model="gemini-3.1-flash-image-preview",
    contents=[
        Image.open("input.jpg"),
        "保留主体和构图,把背景改成雨夜霓虹街道",
    ],
)

for part in response.candidates[0].content.parts:
    if part.inline_data:
        part.as_image().save("edited.png")
        break

多图合成

from google import genai
from google.genai import types
from PIL import Image

client = genai.Client(
    api_key="sk-xxx",
    http_options={"base_url": "https://cdn.12ai.org"},
)

response = client.models.generate_content(
    model="gemini-3-pro-image-preview",
    contents=[
        Image.open("product.png"),
        Image.open("scene.png"),
        "把第一张产品自然放入第二张场景中,保持光影一致",
    ],
    config=types.GenerateContentConfig(
        response_modalities=["IMAGE"],
        image_config=types.ImageConfig(
            aspect_ratio="16:9",
            image_size="2K",
        ),
    ),
)

for part in response.candidates[0].content.parts:
    if part.inline_data:
        part.as_image().save("composite.png")
        break

响应结构

图片会以 base64 放在 inlineData.data 中。

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "<BASE64_IMAGE_DATA>"
            }
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 20,
    "candidatesTokenCount": 1120,
    "totalTokenCount": 1140
  }
}

尺寸与参考图限制

模型图片尺寸参考图
gemini-2.5-flash-image约 1K最多 3 张
gemini-3.1-flash-image-preview512px1K2K4K最多 14 张
gemini-3-pro-image-preview1K2K4K最多 14 张

常用宽高比:1:13:22:34:33:416:99:1621:9

提示词建议

目标写法
写实图片描述主体、环境、镜头、光线、材质
产品图明确背景、角度、阴影、品牌文字是否需要出现
图片编辑说明“保留什么”和“只修改什么”
多图合成指明每张参考图的用途,例如“第一张是产品,第二张是场景”

常见问题

问题处理方式
没有图片返回检查 responseModalities 是否包含 IMAGE
参数被拒绝检查字段大小写,例如 inlineDatamimeTypeimageSize
只想拿 URL改用 异步图片任务
图片数量不稳定图片模型不保证严格按数量返回,批量任务建议用异步接口

On this page