Gemini OpenAI format (Images)
Image Series
Gemini OpenAI format (Images)
Gemini imagine series via OpenAI-compatible /v1/images/generations and /v1/images/edits
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)./v1/images/generations and /v1/images/edits.
Base URL: https://api.gravitex.ai
Contents
- Authentication
- Models
- Endpoints
/v1/images/generations— Text-to-image / image-to-image- [Request parameters](#Request parameters)
imageField格式size/qualitymapping- [Response format](#Response format)
- [
/v1/images/edits— Image edits](#v1imagesedits—Image edits) - Examples
- 1. Text-to-image
- 2. Image-to-image / style transfer
- [3. Multi-image blend](#3-Multi-image blend)
- [4.
/v1/images/editsequivalent call](#4-v1imagesedits-equivalent call) - 5. Python (OpenAI SDK)
- 6. Node.js (OpenAI SDK)
- Errors
- Billing
- LimitationDescription
- [Best practices](#Best practices)
- 常见Issue
- Appendix: vs
/v1/chat/completions
Authentication
所有Endpoint使用 Bearer Token Authentication。在 Gravitex AI 控制台 创建令牌后,在请求头中添加:Models
More imagine models are added over time — see the console model list.
Endpoints
对 imagine 模型来说,/v1/images/generations与/v1/images/edits完全等价——传不传imageField决定是文生图还是图生图,而不是Endpoint路径。选哪个看你用的 SDK 习惯(OpenAI Python SDK 中images.generatevsimages.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/png、image/jpeg、image/jpg、image/webp、image/heic、image/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形式返回,客户端可选择展示。usageField格式与 OpenAI gpt-image-1 完全对齐,方便用 OpenAI SDK 的项目无缝接入。
Error response
/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.edit 与 images.generate 是两个不同的Method,部分用户习惯按”编辑”语义走 edits 入口。
⚠️ 与 OpenAI 官方 dall-e-2 的/images/edits不同:本EndpointNot supportedmultipart/form-data上传 +maskField(imagine 模型靠 prompt 指挥编辑,不需要 mask)。imageField同 generations。
Examples
1. Text-to-image
Basic usage:prompt only.
2. Image-to-image / style transfer
把一张照片改成赛博朋克风格——image Field传单张参考图。
3. Multi-image blend
把多张参考图合成到一张图里——image Field传字符串数组。
4. /v1/images/edits equivalent call
Same as example 2, via edits:
5. Python (OpenAI SDK)
images.edit 在我们这里也走 generations Protocol;如要走 /v1/images/edits 入口,请用 client.images.edit(...)):
6. Node.js (OpenAI SDK)
Errors
On failure, HTTP ≠ 200:Common error codes
prompt_blocked often means sensitive topics — rephrase prompt.
Billing
- 按”实际生成的图片张数”计费:上游真实返回了几张图就扣几张,请求里的
nParameter不影响计费(见 LimitationDescription)。 - **No charge when blocked or zero images.
- See console pricing per model/quality.
- 计费明细可在 令牌使用记录 页查看,每条记录包含
生成数量 NField。
LimitationDescription
Best practices
- prompt: be specific (style, color, composition, camera); avoid vague words.
- **Start I2I with ≤512×512 references, then full size.
- 多次Retry:图像生成有随机性,同一 prompt 可能首次效果不理想,建议提供”重新生成”按钮让用户多试几次。
- **Add regenerate/report for sensitive topics.
- **Persist
b64_jsonimmediately — no upstream cache. - **Show
revised_promptas free UX copy under the image. - **Draft at
1K, final at2Kto save cost.
常见Issue
Q1:Why n=4 returns one image?
A:Gemini imagine 模型上游单次调用只产出 1 张图,平台会按实际产出张数计费。需要多张请客户端多次调用,每次单独计费。
Q2:Can I mask regions for I2I?
A:imagine 模型Nomask 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(imageConfig、safetySettings、thinking_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 是数组:
