GPT Image 2
gpt-image-2Illustrations, comics, and stickers with ten aspect ratios, at 1K.



- Price from
- $0.02
- Resolutions
- 1K
- Average time
- 43 s
- Success rate over 7 days
- 90 %
- Updated
Couldn’t load the 7-day stats.
01Playground
Try GPT Image 2
Prompt, reference images, aspect ratio, and resolution, all without code. The code of the same request is one button away.
02Pricing
GPT Image 2 pricing
The official OpenAI price and ours. No subscription: you pay from your balance only for successful images.
| Resolution | Official OpenAI price | Rendergrid | Savings | For $10 |
|---|---|---|---|---|
| 1K | $0.0531 | $0.02 | 62% | 500 images |
- 1OpenAI: 1024x1024, medium quality
At OpenAI’s official price: $530, savings of $330
From $1,000 per month—send a request and we’ll work out custom terms.
03Examples
Made with GPT Image 2
Seven images from this model, with their prompts. “Open in the playground” fills the prompt and parameters into the form.

A four-panel comic: a little robot learns to bake bread — kneads the dough, waits by the oven, the dough overflows, the robot proudly holds a loaf. Short captions in English, bright colors

A sticker pack of six stickers with a cheerful fox: waving a paw, sleeping, drinking coffee, working on a laptop, looking surprised, celebrating. White outline, cartoon style

Children’s book illustration: a fox cub in a yellow raincoat jumps through puddles in an autumn park, watercolor, soft colors

Flat illustration for a website: a team of four people works at a shared table with laptops, pastel colors, lots of white space, no text

A cute mascot for a bakery called “Warm Bread”: a round robot in a chef’s hat holding a loaf, flat vector illustration, soft colors, light background, no text

Illustrated map of a small seaside town in a flat style: waterfront, lighthouse, market, park, a dotted walking route, pastel colors, no labels

Holiday card: a bouquet of wildflowers in a glass jar on a windowsill, watercolor, soft light, room for a greeting at the top
04API
One request, one image
POST /images/ responds with 202 and an ID. Get the result by polling GET /creations/ or with a webhook.
| Parameter | Type | What to pass |
|---|---|---|
modelrequired | string | gpt-image-2 |
promptrequired | string | What to draw: subject, style, lighting, text in the image. Up to 20,000 characters. |
resolution | string | 1K is the only resolution; 2K and 4K get a 400 response before any charge. |
aspect_ratio | string | 1:1 16:9 9:16 4:3 3:4 2:3 3:2 5:4 4:5 21:9 |
image_file_ids | string[] | Up to 14 file IDs from POST /uploads, as reference images: PNG, JPEG, or WebP. For a text-only request, leave the field out. |
image_urls | string[] | Instead of files: from 1 to 14 public links to images. Don’t mix them with image_file_ids. |
webhook_url | string | An address for the event about completion or an error, instead of polling. |
X-Idempotency-Keyheader | string | Repeating a request with the same key won’t create a second request or a second charge. |
Pass an address in the webhook_url field and we’ll send a creation.completed or creation.failed event. Verify the signature with the secret from the portal, in the “Webhooks” section; the delivery log and a test send are there too.
curl https://api.rendergrid.io/ api/ public/ v1/ images/ generate \ -H "Authorization: Bearer $RENDERGRID_API_KEY" \ -H "Content-Type: application/json" \ -H "X-Idempotency-Key: 7b3e0c2a-0001" \ -d '{ "model": "gpt-image-2", "prompt": "A four-panel comic: a little robot learns to bake bread — kneads the dough, waits by the oven, the dough overflows, the robot proudly holds a loaf. Short captions in English, bright colors", "resolution": "1K", "aspect_ratio": "1:1" }' # then the status and links to the result curl https:// api.rendergrid.io/ api/ public/ v1/ creations/ 8f2c41a9-1710-4917-ae39-f3374ea1952c \ -H "Authorization: Bearer $RENDERGRID_API_KEY"
import os, time, requests API = "https://api.rendergrid.io/ api/ public/ v1" headers = {"Authorization": f"Bearer {os.environ['RENDERGRID_API_KEY']}"} job = requests.post(f"{API}/images/generate", headers=headers, json={ "model": "gpt-image-2", "prompt": "A four-panel comic: a little robot learns to bake bread — kneads the dough, waits by the oven, the dough overflows, the robot proudly holds a loaf. Short captions in English, bright colors", "resolution": "1K", "aspect_ratio": "1:1", }).json() # 202: {"id": "…", "status": "queued", "task_id": "…", "cost": 0.02} while True: c = requests.get(f"{API}/creations/{job['id']}", headers=headers).json() if c["status"] in ("completed", "failed"): break time.sleep(5) print(c.get("result_urls"))
const API = "https://api.rendergrid.io/ api/ public/ v1"; const headers = { Authorization: `Bearer ${process.env.RENDERGRID_API_KEY}`, "Content-Type": "application/json", }; const job = await fetch(`${API}/images/generate`, { method: "POST", headers, body: JSON.stringify({ model: "gpt-image-2", prompt: "A four-panel comic: a little robot learns to bake bread — kneads the dough, waits by the oven, the dough overflows, the robot proudly holds a loaf. Short captions in English, bright colors", resolution: "1K", aspect_ratio: "1:1", }), }).then((r) => r.json()); // 202: {"id": "…", "status": "queued", "task_id": "…", "cost": 0.02} let c; do { await new Promise((r) => setTimeout(r, 5000)); c = await fetch(`${API}/creations/${job.id}`, { headers }).then((r) => r.json()); } while (c.status === "queued" || c.status === "processing"); console.log(c.result_urls);
{
"id": "8f2c41a9-1710-4917-ae39-f3374ea1952c",
"status": "queued",
"task_id": "8f2c41a9-1710-4917-ae39-f3374ea1952c",
"cost": 0.02
}{
"id": "8f2c41a9-1710-4917-ae39-f3374ea1952c",
"status": "completed",
"result_urls": [
"https:// …"
]
}{
"id": "8f2c41a9-1710-4917-ae39-f3374ea1952c",
"status": "failed",
"error": "The image or prompt was rejected by the safety filter. Try a different image or rephrase the prompt.",
"failure": {
"type": "declined",
"code": "content_policy",
"retryable": false
}
}{
"error": {
"code": "ERR_INSUFFICIENT_BALANCE",
"message": "insufficient api wallet balance",
"details": { "required": 0.02, "available": 0.0 }
}
}05Description
What GPT Image 2 can do
An OpenAI model for generating and editing images at 1K resolution, with ten standard aspect ratios. It suits illustrations, comics, stickers, and flat graphics, as the examples below show.

A comic with several panels in one frame
Describe the panels in order (“first… second… third…”) and the hero, the action, and the captions come together in one frame.
gpt-image-2 · 1K · 1:1 · $0.02

A sticker set with one hero
One character in six situations, with a white outline, handy for messengers and bots. Describe the hero once and list the situations.
gpt-image-2 · 1K · 1:1 · $0.02

A book illustration in soft watercolor
Watercolor, flat vector graphics, soft colors: name the style right in the prompt, as in the fox cub example.
gpt-image-2 · 1K · 3:4 · $0.02
Specifications and what to keep in mind
- Maker
- OpenAI
- ID
gpt-image-2- Resolutions
- 1K
- If omitted
- 1K · aspect ratio 1:1
- Reference images
- up to 14 · PNG, JPEG, WebP · up to 25 MiB
- Average time
- 43 s
- 1K only. A 2K or 4K request gets a 400 response before any charge; no money is taken for it. For these resolutions there are GPT Image 2 HD, GPT Image 2.5 Sunburst, or GPT Image 2.5 Flare.
- Ten aspect ratios; there is no
automode. - One request, one image. For a series, send several requests.
- A prompt is required, including with reference images, and can be at most 20,000 characters long.
- Reference images larger than 7 MiB or 4,096 pixels on the longer side may be downscaled or re-encoded; keep your originals.
- Masks are not supported: to change an image, pass it as a reference image and describe the edit in the prompt.
- Resolutions are size tiers, not pixels: the
widthandheightparameters are not accepted. - The result is stored for one day, so download the file to your own storage. A file ID is valid 24 hours after its upload. The stored file is deleted 48 hours after its last upload.
- The model may decline a prompt or a reference image: the request ends as
failed, and the money is returned.
Who it’s for
Illustrations for books, postcards, and covers.
Mascots, stickers, and image sets for messengers.
Flat illustrations, maps, and diagrams without stock images.
Comics and explanatory illustrations for courses.
How to write prompts
Five rules that most often improve the result.
- Story first, then style. Who is in the frame and what they are doing; name the style (“watercolor”, “flat vector illustration”) at the end.
- A series of frames in one prompt. For a comic, describe the panels in order and say how many there are.
- Leave room for text. If you’ll add lettering later, ask for a free area: “space for the greeting at the top”.
- Use reference images for the hero and style. Upload up to 14 files and say what to keep and what to change.
- There is one resolution. GPT Image 2 draws at 1K for $0.02. For 2K and 4K, choose GPT Image 2 HD, GPT Image 2.5 Sunburst, or GPT Image 2.5 Flare.
Comparison with neighboring models
| Model | Strength | Resolutions | Price from | Average time |
|---|---|---|---|---|
| GPT Image 2this model | Illustrations, comics, and stickers | 1K | from $0.02 | average 43 s |
| GPT Image 2.5 | Illustrations, maps, and posters with captions; thirteen aspect ratios | 1K | from $0.025 | average 35 s |
06FAQ
Questions about GPT Image 2
How much does one image from GPT Image 2 cost?
How much cheaper is this than OpenAI’s official price?
What happens if a generation fails?
Which resolutions and aspect ratios are supported?
auto mode: if you don’t specify an aspect ratio, it is 1:1.How long does an image take?
GET /creations/ {id} or pass webhook_url. Poll no more than once every 5 seconds.Can I upload my own images?
POST /uploads and pass them in image_file_ids (up to 14), or send links in image_urls. PNG, JPEG, and WebP work, up to 25 MiB each. A file ID is valid 24 hours after its upload. The stored file is deleted 48 hours after its last upload.Why only 1K?
How do I get the result?
202 response contains an ID. With it, GET /creations/ {id} returns the status and result_urls; instead of polling, pass webhook_url and we’ll send an event when the image is ready. Result files are stored for one day.How do I pay?
Do you offer terms for high volumes?
07Similar
Similar models

GPT Image 2.5
gpt-image-2.5Illustrations, maps and posters at 1K
Currently unavailable: generation is disabled; the price stays the same.

Nano Banana Pro
nano-banana-proComplex scenes, text in images and product shots — up to 4K
Currently unavailable: generation is disabled; the price stays the same.
08Articles
Articles about GPT Image 2

The best image generation APIs: 10 models in one table
Ten Nano Banana and GPT Image models in one table: resolutions, price per image, the task each model suits, and its average wait where measured.

Batch image generation API: queue, webhooks, safe retries
Send many image requests with a queue on your side, webhooks instead of polling, and an idempotency key for safe retries. Code in curl, Python, and Node.js.

How much do 10,000 AI images cost? Work out a budget
How to work out a monthly image budget: the formula, examples across models and resolutions, what stays out of the bill, and a template for your own counts.

High volumes
High volumes? Leave your contact and we’ll work out custom terms
A per-image price for your volume, limits for your traffic and a direct line on Telegram.
High-volume terms