1. Nano Banana
Weimeta.ai API Docs
  • AI模型接口
    • 快速上手
    • 模型(Models)
      • 列出模型
        • 原生OpenAI格式
        • 原生Gemini格式
    • 聊天(Chat)
      • 原生OpenAI格式
        • ChatCompletions格式
        • Responses格式
      • 原生Gemini格式
        • 生成文本回复(支持流式)
        • Gemini媒体识别
      • 原生Claude格式
    • 图像(Images)
      • 原生OpenAI格式
        • 生成图像
        • 编辑图像
      • 通义千问格式
        • 生成图像
        • 编辑图像
      • Nano Banana
        • 原生Gemini格式
          POST
        • OpenAI聊天格式
          POST
    • 视频(Videos)
      • Sora格式
        • 创建视频
        • 获取视频任务状态
        • 获取视频内容
      • 可灵格式
        • Kling 文生视频
        • 获取 Kling 文生视频任务状态
        • Kling 图生视频
        • 获取 Kling 图生视频任务状态
      • 即梦格式
        • 即梦视频生成
      • seedance2.0 原生接口
        • 创建视频生成任务
        • 查询视频生成任务列表
        • 查询视频生成任务
        • 取消或删除视频生成任务
      • 创建视频生成任务
      • 获取视频生成任务状态
    • 嵌入(Embeddings)
      • 原生OpenAI格式
      • 原生Gemini格式
    • 补全(Completions)
      • 原生OpenAI格式
    • 音频(Audio)
      • 原生OpenAI格式
        • 音频转录
        • 音频翻译
        • 文本转语音
      • 原生Gemini格式
    • 实时语音(Realtime)
      • 原生OpenAI格式
    • 重排序(Rerank)
      • 文档重排序
    • 审查(Moderations)
      • 原生OpenAI格式
    • Volcengine Native Video Tasks
      • 创建视频生成任务
      • 查询视频生成任务列表
      • 查询视频生成任务
      • 取消或删除视频生成任务
    • 数据模型
      • Schemas
        • User
        • Log
        • Model
        • Token
        • PageInfo
        • Channel
        • Redemption
        • ApiResponse
        • ModelsResponse
        • Message
        • MessageContent
        • Tool
        • ToolCall
        • GeminiModelsResponse
        • ChatCompletionResponse
        • ChatCompletionRequest
        • ChatCompletionStreamResponse
        • CompletionRequest
        • CompletionResponse
        • ResponseFormat
        • ResponsesRequest
        • ResponsesResponse
        • ResponsesStreamResponse
        • ClaudeRequest
        • ClaudeMessage
        • ClaudeResponse
        • EmbeddingRequest
        • EmbeddingResponse
        • ImageGenerationRequest
        • ImageEditRequest
        • ImageResponse
        • AudioTranscriptionRequest
        • AudioTranslationRequest
        • AudioTranscriptionResponse
        • SpeechRequest
        • RerankRequest
        • RerankResponse
        • VideoRequest
        • ModerationRequest
        • VideoResponse
        • ModerationResponse
        • VideoTaskResponse
        • GeminiRequest
        • VideoTaskMetadata
        • VideoTaskError
        • GeminiResponse
        • OpenAIVideo
        • OpenAIVideoError
      • CreateVideoGenerationTaskRequest
      • GeminiChatRequest
      • GeminiImageRequest
      • ContentItem
      • GeminiContent
      • UrlObject
      • GeminiSystemInstruction
      • GeminiInputPart
      • DraftTask
      • GeminiPart
      • GeminiInlineData
      • CreateTaskResponse
      • GeminiTextPart
      • GeminiFileData
      • TaskListResponse
      • GeminiImageGenerationConfig
      • VideoTask
      • GeminiImageConfig
      • TaskContent
      • GeminiFunctionCall
      • GeminiThinkingConfig
      • Usage
      • GeminiFunctionResponse
      • GeminiSafetySetting
      • ToolUsage
      • GeminiGenerationConfig
      • GeminiImageResponse
      • TaskError
      • GeminiCandidate
      • ErrorResponse
      • GeminiOutputContent
      • GeminiFunctionTool
      • GeminiOutputPart
      • GeminiFunctionDeclaration
      • GeminiOutputInlineData
      • GeminiToolConfig
      • GeminiPromptFeedback
      • GeminiFunctionCallingConfig
      • GeminiChatResponse
      • GeminiUsageMetadata
      • GeminiModalityTokenCount
      • GatewayError
      • GeminiExecutableCode
      • GeminiCodeExecutionResult
      • GeminiSafetyRating
  1. Nano Banana

原生Gemini格式

POST
/v1beta/models/{model}:generateContent/
使用 Gemini 原生 GenerateContent 请求格式生成或编辑图片。

前置阅读#

以下为 Google Gemini 官方资料。本文档描述的是服务平台实际开放的字段和调用方式;
如果官方资料与本文档存在差异,请以本文档及服务平台公告为准。
核心协议与图片输入输出:
Gemini 图像生成与图片编辑
GenerateContent API 完整字段参考
文件与多模态输入方式
Gemini API v1 与 v1beta 版本说明
输出控制与安全:
Gemini 思考能力与思考 Token
安全设置与拦截反馈
用量与计费:
Token 统计与 usageMetadata
Gemini 模型官方价格

1. 接口说明#

文生图:在 contents[].parts[].text 中填写图片描述。
图片编辑:在同一个 parts 数组中同时传入 text 和一个或多个 inlineData。
图片比例和分辨率:使用 generationConfig.imageConfig.aspectRatio 和 imageSize。
返回格式:图片位于 candidates[].content.parts[].inlineData,其中 data 是不含 Data URL 前缀的 Base64。
用量格式:本接口返回 Gemini 原生 usageMetadata,不会返回单价、币种或本次扣费金额。
当前不开放 Google Search Grounding,也不支持请求字段 tools。

2. 计费原理与计算口径#

一次图像请求可能同时消耗输入 Token、文本输出 Token、思考 Token 和图片输出 Token。
这些用量的单价可能不同,因此不能使用 totalTokenCount × 一个统一单价 计算费用。
客户侧可以使用响应中的 usageMetadata 预估费用和核对账单。实际生效的单价、币种、
价格版本、倍率和折扣以服务平台提供的报价及账单为准,不建议把本文示例价格永久写死在业务代码中。
本文三个示例模型的参考费率如下:
模型输入文本/思考输出图片输出图片计费方式
gemini-2.5-flash-imageUSD 0.30/100 万 TokenUSD 2.50/100 万 TokenUSD 0.039/张按实际返回图片张数
gemini-3-pro-imageUSD 2.00/100 万 TokenUSD 12.00/100 万 TokenUSD 120.00/100 万图片 Token按图片 Token
gemini-3.1-flash-imageUSD 0.50/100 万 TokenUSD 3.00/100 万 TokenUSD 60.00/100 万图片 Token按图片 Token
计费时使用以下用量:
变量Gemini 响应字段含义
P_TEXTpromptTokensDetails[modality=TEXT].tokenCount文本输入 Token
P_IMAGEpromptTokensDetails[modality=IMAGE].tokenCount参考图片输入 Token
O_TEXTcandidatesTokensDetails[modality=TEXT].tokenCount文本输出 Token
O_IMAGEcandidatesTokensDetails[modality=IMAGE].tokenCount图片输出 Token
THOUGHTthoughtsTokenCount思考 Token
N_IMAGE响应中返回的图片 inlineData 数量实际返回图片张数
本文三个模型的文本输入和图片输入使用相同输入单价,因此可以使用
promptTokenCount 作为输入总量。candidatesTokenCount 可能同时包含文本和图片 Token,
不能将其整体按文本输出价或图片输出价计算。
输入费用 = promptTokenCount × 输入单价 ÷ 1,000,000

文本/思考输出费用
  = (O_TEXT + THOUGHT) × 文本/思考输出单价 ÷ 1,000,000

按图片 Token 计费时:
  图片输出费用 = O_IMAGE × 图片输出单价 ÷ 1,000,000

按图片张数计费时:
  图片输出费用 = N_IMAGE × 每张图片单价

请求总费用 = 输入费用 + 文本/思考输出费用 + 图片输出费用
cachedContentTokenCount 和 cacheTokensDetails 是输入 Token 的缓存子集,不能与
promptTokenCount 重复相加。如果有效价格表对缓存另行定价,应先从普通输入中扣除缓存用量,
再分别应用普通输入价和缓存价。
图片输出 Token 优先读取 candidatesTokensDetails[modality=IMAGE]。如果该明细缺失,
只有在有效价格表明确给出“模型 + 分辨率对应图片 Token”时,才可以按请求的 imageSize
回退换算;否则应以服务平台账单为准。

3. Gemini 响应字段逐项说明#

3.1 响应顶层字段#

字段类型说明
candidatesarray候选结果列表。每个候选可能包含文字、思考摘要和图片。
promptFeedbackobject整个输入提示的安全反馈。提示被拦截时可能没有 candidates。
usageMetadataobject本次请求的 Token 用量,是费用预估和账单核对的核心对象。
modelVersionstring上游实际执行请求的模型版本,建议与请求模型一起保存。
responseIdstring上游响应 ID,用于请求定位和账单核对。

3.2 candidates[] 字段#

字段类型说明
candidates[].indexinteger候选序号,通常从 0 开始。
candidates[].contentobject当前候选的输出内容。
candidates[].finishReasonstring结束原因。STOP 通常表示正常完成;SAFETY、IMAGE_SAFETY、NO_IMAGE 等表示未正常得到图片结果。
candidates[].finishMessagestring对结束原因的可读补充说明,可能缺失。
candidates[].safetyRatingsarray当前候选的安全分类和风险概率。

3.3 content 和 parts[] 字段#

字段类型说明
content.rolestring输出角色,通常为 model。
content.partsarray输出片段列表,文字和图片可以同时存在。
parts[].textstring模型返回的说明文字;当 thought=true 时表示思考摘要。
parts[].inlineDataobject返回的图片或其他内联媒体。
parts[].inlineData.mimeTypestring媒体类型,例如 image/png 或 image/jpeg。
parts[].inlineData.datastring图片原始字节的 Base64,不包含 data:image/...;base64, 前缀。
parts[].inlineData.displayNamestring可选的媒体显示名称。
parts[].thoughtboolean是否为思考内容。普通图片结果通常不包含该字段或为 false。
parts[].thoughtSignaturestring多轮图片编辑时可能需要原样回传的不透明签名。

3.4 promptFeedback 和安全字段#

字段类型说明
promptFeedback.blockReasonstring输入被拦截的原因,例如 SAFETY、BLOCKLIST、PROHIBITED_CONTENT。
promptFeedback.safetyRatingsarray输入提示的安全评估列表。
safetyRatings[].categorystring被评估的安全类别。
safetyRatings[].probabilitystring风险概率,例如 NEGLIGIBLE、LOW、MEDIUM、HIGH。
safetyRatings[].blockedboolean是否因为该安全类别而被拦截。

3.5 usageMetadata 字段#

字段类型计费含义
promptTokenCountinteger输入总 Token,包含文本、参考图片以及可能存在的缓存输入。
cachedContentTokenCountinteger缓存命中 Token,是 promptTokenCount 的子集,不能重复相加。
candidatesTokenCountinteger候选输出总 Token,可能同时包含文本和图片 Token。
thoughtsTokenCountinteger思考 Token,按文本/思考输出价格计费。
totalTokenCountinteger总 Token 核验字段,不能直接乘以单一价格计算精确金额。
promptTokensDetailsarray输入 Token 的模态明细。图片编辑时通常同时出现 TEXT 和 IMAGE。
cacheTokensDetailsarray缓存 Token 的模态明细,是输入 Token 的子集。
candidatesTokensDetailsarray输出 Token 的模态明细。文本读取 TEXT,图片读取 IMAGE。
serviceTierstring上游实际服务层级,可能缺失;最终计费仍以服务平台有效价格为准。
*TokensDetails[].modalitystringToken 模态,例如 TEXT、IMAGE、AUDIO、VIDEO。
*TokensDetails[].tokenCountinteger对应模态的 Token 数量。
客户侧建议保存请求模型、modelVersion、responseId、完整 usageMetadata、
请求的 imageSize、实际返回图片张数、使用的价格版本和计算金额,便于后续核对。

4. 典型场景与计费示例#

以下金额仅用于展示如何从 Gemini Response JSON 读取字段并计算费用。

场景一:gemini-2.5-flash-image 文生图,按图片张数计费#

示例响应:
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "已根据描述生成图片。"
          },
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "<BASE64_IMAGE_DATA>"
            }
          }
        ]
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": []
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 4000,
    "candidatesTokenCount": 1490,
    "thoughtsTokenCount": 0,
    "totalTokenCount": 5490,
    "promptTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 4000
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 200
      },
      {
        "modality": "IMAGE",
        "tokenCount": 1290
      }
    ]
  },
  "modelVersion": "gemini-2.5-flash-image",
  "responseId": "response-example-001"
}
字段解释:
promptTokenCount=4000:输入总量为 4,000 Token。
candidatesTokensDetails[TEXT]=200:文本输出为 200 Token。
thoughtsTokenCount=0:没有思考 Token。
响应中有 1 个图片 inlineData,所以 N_IMAGE=1。
本模型示例价格按图片张数计费,因此不要再使用 IMAGE=1290 重复计算图片费用。
输入费用 = 4,000 × USD 0.30 ÷ 1,000,000 = USD 0.00120
文本输出费用 = 200 × USD 2.50 ÷ 1,000,000 = USD 0.00050
图片输出费用 = 1 × USD 0.039 = USD 0.03900
请求总费用 = USD 0.00120 + USD 0.00050 + USD 0.03900
            = USD 0.04070

场景二:gemini-3-pro-image 使用参考图生成 4K 图片#

示例响应:
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "已完成 4K 图片编辑。"
          },
          {
            "inlineData": {
              "mimeType": "image/jpeg",
              "data": "<BASE64_IMAGE_DATA>"
            }
          }
        ]
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": []
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 600,
    "candidatesTokenCount": 2050,
    "thoughtsTokenCount": 300,
    "totalTokenCount": 2950,
    "promptTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 40
      },
      {
        "modality": "IMAGE",
        "tokenCount": 560
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 50
      },
      {
        "modality": "IMAGE",
        "tokenCount": 2000
      }
    ],
    "serviceTier": "standard"
  },
  "modelVersion": "gemini-3-pro-image",
  "responseId": "response-example-002"
}
字段解释:
promptTokenCount=600:包含 40 个文本输入 Token 和 560 个参考图片输入 Token。
candidatesTokensDetails[TEXT]=50:文本输出为 50 Token。
thoughtsTokenCount=300:思考输出为 300 Token。
candidatesTokensDetails[IMAGE]=2000:4K 图片输出为 2,000 图片 Token。
candidatesTokenCount=2050 已经包含文本和图片 Token,不能再整体按某一种输出单价计算。
输入费用 = 600 × USD 2.00 ÷ 1,000,000 = USD 0.00120
文本/思考输出费用
  = (50 + 300) × USD 12.00 ÷ 1,000,000
  = USD 0.00420
图片输出费用 = 2,000 × USD 120.00 ÷ 1,000,000
             = USD 0.24000
请求总费用 = USD 0.00120 + USD 0.00420 + USD 0.24000
            = USD 0.24540

场景三:gemini-3.1-flash-image 生成 2K 图片,回退图片 Token#

示例响应:
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "图片生成完成。"
          },
          {
            "inlineData": {
              "mimeType": "image/png",
              "data": "<BASE64_IMAGE_DATA>"
            }
          }
        ]
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": []
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 4000,
    "candidatesTokenCount": 2480,
    "thoughtsTokenCount": 200,
    "totalTokenCount": 6680,
    "promptTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 4000
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 800
      }
    ]
  },
  "modelVersion": "gemini-3.1-flash-image",
  "responseId": "response-example-003"
}
字段解释:
promptTokenCount=4000:输入总量为 4,000 Token。
candidatesTokensDetails[TEXT]=800:文本输出为 800 Token。
thoughtsTokenCount=200:思考输出为 200 Token。
响应缺少 candidatesTokensDetails[IMAGE],但实际返回了 1 张 2K 图片。
有效价格表规定 2K 图片按 1,680 图片 Token 计算,因此本例使用 O_IMAGE=1680。
如果响应已经返回 IMAGE 明细,应优先使用响应值,不再按分辨率换算。
输入费用 = 4,000 × USD 0.50 ÷ 1,000,000 = USD 0.00200
文本/思考输出费用
  = (800 + 200) × USD 3.00 ÷ 1,000,000
  = USD 0.00300
图片输出费用 = 1,680 × USD 60.00 ÷ 1,000,000
             = USD 0.10080
请求总费用 = USD 0.00200 + USD 0.00300 + USD 0.10080
            = USD 0.10580

请求参数

Authorization
Bearer Token
在 Header 添加参数
Authorization
,其值为在 Bearer 之后拼接 Token
示例:
Authorization: Bearer ********************
or
API Key
在 header 添加参数
x-goog-api-key
示例:
x-goog-api-key: ********************
or
API Key
在 query 添加参数
key
示例:
key: ********************
or
Path 参数

Body 参数application/json必填

示例
{
    "contents": [
        {
            "role": "user",
            "parts": [
                {
                    "text": "一只戴着宇航员头盔的橘猫站在月球上,电影感光影,细节丰富"
                }
            ]
        }
    ],
    "generationConfig": {
        "responseModalities": [
            "TEXT",
            "IMAGE"
        ],
        "imageConfig": {
            "aspectRatio": "16:9",
            "imageSize": "2K"
        }
    }
}

请求示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
cURL
curl --location '/v1beta/models/gemini-3-pro-image:generateContent/' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
    "contents": [
        {
            "role": "user",
            "parts": [
                {
                    "text": "一只戴着宇航员头盔的橘猫站在月球上,电影感光影,细节丰富"
                }
            ]
        }
    ],
    "generationConfig": {
        "responseModalities": [
            "TEXT",
            "IMAGE"
        ],
        "imageConfig": {
            "aspectRatio": "16:9",
            "imageSize": "2K"
        }
    }
}'

返回响应

🟢200成功
application/json
请求成功。响应可能包含图片、说明文字、思考摘要、用量信息或安全反馈。
Bodyapplication/json

示例
{
    "candidates": [
        {
            "content": {
                "role": "model",
                "parts": [
                    {
                        "text": "已按照要求生成图片。"
                    },
                    {
                        "inlineData": {
                            "mimeType": "image/png",
                            "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="
                        }
                    }
                ]
            },
            "finishReason": "STOP",
            "index": 0,
            "safetyRatings": []
        }
    ],
    "usageMetadata": {
        "promptTokenCount": 600,
        "candidatesTokenCount": 2050,
        "thoughtsTokenCount": 300,
        "totalTokenCount": 2950,
        "promptTokensDetails": [
            {
                "modality": "TEXT",
                "tokenCount": 40
            },
            {
                "modality": "IMAGE",
                "tokenCount": 560
            }
        ],
        "candidatesTokensDetails": [
            {
                "modality": "TEXT",
                "tokenCount": 50
            },
            {
                "modality": "IMAGE",
                "tokenCount": 2000
            }
        ],
        "serviceTier": "standard"
    },
    "modelVersion": "gemini-3-pro-image",
    "responseId": "response-example-id"
}
🟠400BadRequest
🟠401Unauthorized
🟠403Forbidden
🟠413RequestTooLarge
🟠429RateLimited
🔴500GatewayFailure
🔴502GatewayFailure
🔴503GatewayFailure
修改于 2026-07-23 03:46:06
上一页
编辑图像
下一页
OpenAI聊天格式
Built with