← 返回 API 文档

Nano Banana · Adobe 4K

使用 Gemini 原生 GenerateContent 协议,支持 Flash 与 Pro 两个完整模型名、4K 文生图、单图参考和多图参考。

Gemini NativeAdobe 4KFlash / Pro文生图单图 / 多图参考Base64 图片

01 · 接入信息

鉴权请求头

x-goog-api-key: YOUR_API_KEY

生成端点

/v1beta/models/{MODEL}:generateContent

响应图片

inlineData.data(Base64)

**协议说明:**请求体始终是 JSON。参考图放在 contents[].parts[].inlineData 中,不使用 multipart,也不传 image[]。

02 · 两个示例模型

代码
curl "https://yyds.seqnode.com/v1/models" \
  -H "Authorization: Bearer YOUR_API_KEY"
模型 常用名称 定位 4K 参数
gemini-3.1-flash-image-preview Nano Banana 2 / Flash 速度优先,适合批量草图和常规出图 imageSize="4K"
gemini-3-pro-image-preview Nano Banana Pro 质量优先,适合细节、构图和多图融合 imageSize="4K"

**模型名必须完整:**本页示例使用以上两个 Preview 名称。不同 Key 的分组还可能开放非 Preview 或 Firefly 完整模型名,请以 GET /v1/models 的实际返回为准。

03 · Flash 文生图请求

代码
curl "https://yyds.seqnode.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
  -H "x-goog-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary '{

    "contents": [{

      "role": "user",

      "parts": [{

        "text": "极简产品插画:一只戴蓝色围巾的白色小狐狸站在浅灰背景中,柔和棚拍光线,画面居中,不要文字"

      }]

    }],

    "generationConfig": {

      "responseModalities": ["IMAGE"],

      "imageConfig": {

        "aspectRatio": "1:1",

        "imageSize": "4K"

      }

    }

  }'

04 · Pro 文生图请求

代码
curl "https://yyds.seqnode.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \
  -H "x-goog-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary '{

    "contents": [{

      "role": "user",

      "parts": [{

        "text": "极简产品插画:一只戴蓝色围巾的白色小狐狸站在浅灰背景中,柔和棚拍光线,画面居中,不要文字"

      }]

    }],

    "generationConfig": {

      "responseModalities": ["IMAGE"],

      "imageConfig": {

        "aspectRatio": "1:1",

        "imageSize": "4K"

      }

    }

  }'

05 · 请求参数

字段 必填 说明
contents 是 对话内容数组。生图请求至少包含一个 role=user 的内容项。
parts[].text 是 提示词。多图时明确写出“参考图 1”“参考图 2”的用途。
parts[].inlineData 参考图请求必填 mimeType 与纯 Base64 图片数据;不要带 Data URL 前缀。
responseModalities 建议 ["IMAGE"] 只返回图片;需要模型文字说明时使用 ["TEXT","IMAGE"]。
imageConfig.aspectRatio 否 常用值:1:1、3:2、2:3、4:3、3:4、16:9、9:16、21:9。
imageConfig.imageSize 是(本分组) Adobe 4K 使用 4K。值区分大小写,字母 K 必须大写。

**4K 请求:**在 generationConfig.imageConfig 中同时传入 aspectRatio 与大写的 imageSize: "4K"。

06 · 单图参考

把提示词与参考图放进同一个 parts 数组。下面只展示请求体,端点中的 {MODEL} 替换为 §02 的任一模型。

代码
{

  "contents": [{

    "role": "user",

    "parts": [

      {

        "text": "保持参考图主体、姿势和构图,只把围巾改成红色,把背景改成浅蓝色,不要文字"

      },

      {

        "inlineData": {

          "mimeType": "image/jpeg",

          "data": "BASE64_IMAGE_1"

        }

      }

    ]

  }],

  "generationConfig": {

    "responseModalities": ["IMAGE"],

    "imageConfig": {"aspectRatio": "1:1", "imageSize": "4K"}

  }

}

已实测:gemini-3.1-flash-image-preview 使用一张 PNG 参考图返回 HTTP 200、STOP 和 JPEG 图片。

**MIME 必须匹配:**PNG 使用 image/png,JPEG 使用 image/jpeg,WebP 使用 image/webp。Base64 字符串中不要包含 data:image/...;base64,。

07 · 多图参考

每张参考图增加一个 inlineData。数组顺序就是提示词中的参考图顺序。

代码
{

  "contents": [{

    "role": "user",

    "parts": [

      {

        "text": "以参考图 1 的人物和构图为主体,只采用参考图 2 的服装与光影;保持面部特征,不要文字"

      },

      {

        "inlineData": {

          "mimeType": "image/png",

          "data": "BASE64_IMAGE_1"

        }

      },

      {

        "inlineData": {

          "mimeType": "image/jpeg",

          "data": "BASE64_IMAGE_2"

        }

      }

    ]

  }],

  "generationConfig": {

    "responseModalities": ["IMAGE"],

    "imageConfig": {"aspectRatio": "16:9", "imageSize": "4K"}

  }

}

已实测:gemini-3-pro-image-preview 使用两张 PNG 参考图返回 HTTP 200、STOP 和 JPEG 图片。

不要发送 multipart 摘要:{"parts":[{"field":"image[]"...}]} 是抓包工具的调试说明,不是 Gemini 请求体。这里的 parts 必须是上面这种 Gemini JSON 内容数组。

08 · Windows PowerShell 完整示例

代码
$model = "gemini-3.1-flash-image-preview"

$imageBase64 = [Convert]::ToBase64String(

  [IO.File]::ReadAllBytes((Resolve-Path ".\reference.jpg"))

)



$body = @{

  contents = @(@{

    role = "user"

    parts = @(

      @{ text = "保持主体不变,只把围巾改成红色" }

      @{ inlineData = @{ mimeType = "image/jpeg"; data = $imageBase64 } }

    )

  })

  generationConfig = @{

    responseModalities = @("IMAGE")

    imageConfig = @{ aspectRatio = "1:1"; imageSize = "4K" }

  }

} | ConvertTo-Json -Depth 12 -Compress



$request = @{

  Uri = "https://yyds.seqnode.com/v1beta/models/$model`:generateContent"

  Method = "Post"

  Headers = @{ "x-goog-api-key" = $env:YM2API_KEY }

  ContentType = "application/json"

  Body = $body

}

$result = Invoke-RestMethod @request



$imagePart = $result.candidates[0].content.parts |

  Where-Object { $_.inlineData } |

  Select-Object -First 1

$extension = if ($imagePart.inlineData.mimeType -eq "image/jpeg") { ".jpg" } else { ".png" }

[IO.File]::WriteAllBytes(

  (Join-Path $PWD "result$extension"),

  [Convert]::FromBase64String($imagePart.inlineData.data)

)

09 · 响应与图片保存

代码
{

  "candidates": [{

    "content": {

      "parts": [{

        "inlineData": {

          "mimeType": "image/jpeg",

          "data": "/9j/4AAQSkZJRgABAQ..."

        }

      }]

    },

    "finishReason": "STOP"

  }],

  "usageMetadata": {

    "promptTokenCount": 11,

    "candidatesTokenCount": 1096,

    "totalTokenCount": 1107

  }

}

不要假定输出一定是 PNG。先读取 inlineData.mimeType,再决定保存扩展名;图片内容从 inlineData.data Base64 解码。

10 · 常见错误与处理

现象 通常原因 处理
401 Key 缺失、失效,或请求头名称错误 使用该分组的 Key,并发送 x-goog-api-key 或 Bearer 鉴权
404 Not Found 模型名不属于此分组,或漏写 -preview 复制 §02 返回的完整模型名
400 invalid argument JSON 层级、字段大小写、比例或尺寸值错误 对照 §03–§07;使用 generationConfig.imageConfig 和大写 4K
没有 inlineData 未请求 IMAGE,或内容被模型拒绝 加入 responseModalities:["IMAGE"],并检查 finishReason 与错误正文
Base64 解码失败 数据被截断、附带 Data URL 前缀,或读取了文字 part 选择含 inlineData 的 part,并直接解码其中的 data
concurrency_limit 当前生图队列已满 等待 10–30 秒后指数退避重试

11 · Adobe 4K 支持比例与像素

比例 4K 像素 适用
1:1 4096×4096 Flash / Pro
3:2 / 2:3 5056×3392 / 3392×5056 Flash / Pro
4:3 / 3:4 4800×3584 / 3584×4800 Flash / Pro
5:4 / 4:5 4608×3712 / 3712×4608 Flash / Pro
16:9 / 9:16 5504×3072 / 3072×5504 Flash / Pro
21:9 6336×2688 Flash / Pro

**比例参数:**只传比例字符串,例如 "16:9";像素由模型的 4K 档位决定,不需要另传宽高。

Gemini 原生字段可参考 Google Gemini 图片生成文档。

更新于 2026-09-14 · 2 号站独立文档