Skip to main content
POST
Gemini OpenAI format (Images)
For native generateContent image generation, see Gemini Native (Image). For extra_body.google fine control, use /v1/chat/completions via Gemini OpenAI format (Chat) (see appendix).
Gemini imagine models (including Google “nano banana” and other multimodal image models that return text + image) are available on Gravitex AI via OpenAI-compatible /v1/images/generations and /v1/images/edits. Base URL: https://api.gravitex.ai

Contents


Authentication

所有Endpoint使用 Bearer Token Authentication。在 Gravitex AI 控制台 创建令牌后,在请求头中添加:
Use JSON:

Models

More imagine models are added over time — see the console model list.

Endpoints

对 imagine 模型来说,/v1/images/generations/v1/images/edits 完全等价——传不传 image Field决定是文生图还是图生图,而不是Endpoint路径。选哪个看你用的 SDK 习惯(OpenAI Python SDK 中 images.generate vs images.edit)。

/v1/images/generations — Text-to-image / image-to-image

POST https://api.gravitex.ai/v1/images/generations

Request parameters

image Field格式

image Field用于”图生图”——把一张或多张参考图喂给模型作为视觉上下文。支持以下两种 JSON 形态:
  • URL 形态:网关会自动 fetch 并校验图片Type;URL 必须可公网访问,建议用 https。
  • base64 / data URI: gateway decodes and sniffs MIME.
  • Supported formats: image/pngimage/jpegimage/jpgimage/webpimage/heicimage/heif
  • Not supported multipart/form-data 上传文件——请把图片转成 base64 或先上传到对象存储拿到 URL。

size / quality mapping

imagine 模型的Output有限定档位(不像传统模型可任意指定像素),网关会自动把 OpenAI 风格的mapping到模型支持的档位。

size → aspect ratio

quality → imageSize tier

Response format

Success response

Gemini imagine 模型在生成图片的同时常常会返回一段文字描述(“我帮您画了 X”),这段文字以 revised_prompt + metadata.text 形式返回,客户端可选择展示。 usage Field格式与 OpenAI gpt-image-1 完全对齐,方便用 OpenAI SDK 的项目无缝接入。

Error response

详见 Errors 章节。

/v1/images/edits — Image edits

POST https://api.gravitex.ai/v1/images/edits 请求/Response format与 /v1/images/generations 完全一致(同样接受 JSON + image Field,返回相同结构)。区别仅在于 OpenAI Python SDK 中 images.editimages.generate 是两个不同的Method,部分用户习惯按”编辑”语义走 edits 入口。
⚠️ 与 OpenAI 官方 dall-e-2 的 /images/edits 不同:本EndpointNot supported multipart/form-data 上传 + mask Field(imagine 模型靠 prompt 指挥编辑,不需要 mask)。image Field同 generations。

Examples

1. Text-to-image

Basic usage: prompt only.

2. Image-to-image / style transfer

把一张照片改成赛博朋克风格——image Field传单张参考图。
Or base64 / data URI (local files):

3. Multi-image blend

把多张参考图合成到一张图里——image Field传字符串数组。

4. /v1/images/edits equivalent call

Same as example 2, via edits:

5. Python (OpenAI SDK)

图生图(OpenAI SDK 的 images.edit 在我们这里也走 generations Protocol;如要走 /v1/images/edits 入口,请用 client.images.edit(...)):

6. Node.js (OpenAI SDK)

I2I with fetch:

Errors

On failure, HTTP ≠ 200:

Common error codes

prompt_blocked often means sensitive topics — rephrase prompt.

Billing

  • 按”实际生成的图片张数”计费:上游真实返回了几张图就扣几张,请求里的 n Parameter不影响计费(见 LimitationDescription)。
  • **No charge when blocked or zero images.
  • See console pricing per model/quality.
  • 计费明细可在 令牌使用记录 页查看,每条记录包含 生成数量 N Field。

LimitationDescription


Best practices

  1. prompt: be specific (style, color, composition, camera); avoid vague words.
  2. **Start I2I with ≤512×512 references, then full size.
  3. 多次Retry:图像生成有随机性,同一 prompt 可能首次效果不理想,建议提供”重新生成”按钮让用户多试几次。
  4. **Add regenerate/report for sensitive topics.
  5. **Persist b64_json immediately — no upstream cache.
  6. **Show revised_prompt as free UX copy under the image.
  7. **Draft at 1K, final at 2K to save cost.

常见Issue

Q1:Why n=4 returns one image?

A:Gemini imagine 模型上游单次调用只产出 1 张图,平台会按实际产出张数计费。需要多张请客户端多次调用,每次单独计费。

Q2:Can I mask regions for I2I?

A:imagine 模型No mask Field,所有改动通过 prompt 描述(如”只把头发改成红色,其它保持不变”)。模型会理解 prompt 自动定位区域。

Q3:No data: prefix on b64_json?

A:b64_json 是纯 base64 字符串,方便直接 decode 保存为文件。如果你要嵌入 HTML <img src>,自己拼接前缀即可:"data:image/png;base64," + b64_json

Q4:Images only, no text?

A:当前不能——imagine 模型的特色就是图文一起返回,revised_prompt/metadata.text Field可以选择不展示,但请求层面无法关闭。

Q5:Same price for T2I and I2I?

A:是的——按”Output图片张数 + Output quality 档位”计费,与是否带 image Field无关。

Q6:Text + multiple reference images?

A:可以。image Field支持 string[],配合 prompt 描述融合方式,参考 [场景 3:Multi-image blend](#3-Multi-image blend)。

Q7:generations vs chat for imagine?

A:详见 附录。简单来说:
  • /v1/images/generations:Protocol简单(OpenAI Image API 标准),适合”我只要图片”的场景。
  • /v1/chat/completions:能控制 Gemini 原生Parameter(imageConfigsafetySettingsthinking_config 等),适合”需要细粒度控制”的场景。

Appendix: vs /v1/chat/completions

Gemini imagine 模型同时也可以走 OpenAI 的 /v1/chat/completions Endpoint(把 prompt 写成 message,把图片放进 content 数组)。两个入口对比: Chat endpoint example (Gemini OpenAI Chat):
返回的 choices[0].message.content 是数组: