GPT Image 2.5
OpenAI · ~1.5 min
from $0.010per picture
The ChatGPT image model: realistic photos, neat lettering, product shots and precise photo edits.
Edit a photo
gpt-image-2.5-image-to-image · $0.010–$0.710 (depends on quality and resolution)Create a picture gpt-image-2.5-text-to-image · $0.010–$0.710 (depends on quality and resolution)| Mode | ID | Price |
|---|---|---|
| Edit a photo | gpt-image-2.5-image-to-image | $0.010–$0.710 (depends on quality and resolution) |
| Create a picture | gpt-image-2.5-text-to-image | $0.010–$0.710 (depends on quality and resolution) |
Edit a photo
Upload a photo and describe what to change. ID: gpt-image-2.5-image-to-image · $0.010–$0.710 (depends on quality and resolution) per image · ~1.5 min
Parameters (field input)
| Parameter | Required | Description | Values (default in bold) |
|---|---|---|---|
prompt | yes | What to draw or what to change | text, up to 20000 chars |
input_urls | yes | Links to your photos (https), up to 16 | ["https://…"] |
resolution | no | Long side: 0.5K ≈ 512 px, 1K ≈ 1024 px, 2K ≈ 2048 px, 4K ≈ 4096 px. Sizes above native are an upscale of the finished picture (Lanczos + light sharpening): 4K on Nano Banana 2 and Pro from 2K, 2K on Nano Banana from 1K, 2K and 4K on GPT Image from its native ~1.5K | 1K 2K 4K |
aspect_ratio | no | Image shape | auto 1:1 1:3 3:1 3:2 2:3 4:3 3:4 5:4 4:5 16:9 9:16 2:1 1:2 21:9 9:21 |
output_format | no | File format | png jpeg webp |
background | no | Background: auto, opaque, transparent (only with png or webp) | auto opaque transparent |
moderation | no | Accepted for apimart compatibility, does not change the result | low auto |
quality | no | Rendering effort; passed to ChatGPT. Changes the price (see the table below), auto = medium | auto low medium high xhigh max |
Example
curl -X POST https://mixmedia.tech/api/v1/jobs/createTask \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2.5-image-to-image","input":{"prompt":"Make the background a neon city at night","input_urls":["https://mixmedia.tech/static/img/previews/gpt-t2i.jpg"],"resolution":"1K","aspect_ratio":"auto","moderation":"low","quality":"auto"}}'
import os, requests
r = requests.post(
"https://mixmedia.tech/api/v1/jobs/createTask",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "gpt-image-2.5-image-to-image",
"input": {
"prompt": "Make the background a neon city at night",
"input_urls": [
"https://mixmedia.tech/static/img/previews/gpt-t2i.jpg"
],
"resolution": "1K",
"aspect_ratio": "auto",
"moderation": "low",
"quality": "auto"
}
},
)
print(r.json()) # {"code": 200, "data": {"taskId": "..."}}
const r = await fetch("https://mixmedia.tech/api/v1/jobs/createTask", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"model": "gpt-image-2.5-image-to-image",
"input": {
"prompt": "Make the background a neon city at night",
"input_urls": [
"https://mixmedia.tech/static/img/previews/gpt-t2i.jpg"
],
"resolution": "1K",
"aspect_ratio": "auto",
"moderation": "low",
"quality": "auto"
}
}),
});
console.log(await r.json()); // { code: 200, data: { taskId: "..." } }
Create a picture
Describe the picture and the model creates it from scratch. ID: gpt-image-2.5-text-to-image · $0.010–$0.710 (depends on quality and resolution) per image · ~1.5 min
Parameters (field input)
| Parameter | Required | Description | Values (default in bold) |
|---|---|---|---|
prompt | yes | What to draw or what to change | text, up to 20000 chars |
resolution | no | Long side: 0.5K ≈ 512 px, 1K ≈ 1024 px, 2K ≈ 2048 px, 4K ≈ 4096 px. Sizes above native are an upscale of the finished picture (Lanczos + light sharpening): 4K on Nano Banana 2 and Pro from 2K, 2K on Nano Banana from 1K, 2K and 4K on GPT Image from its native ~1.5K | 1K 2K 4K |
aspect_ratio | no | Image shape | auto 1:1 1:3 3:1 3:2 2:3 4:3 3:4 5:4 4:5 16:9 9:16 2:1 1:2 21:9 9:21 |
output_format | no | File format | png jpeg webp |
background | no | Background: auto, opaque, transparent (only with png or webp) | auto opaque transparent |
moderation | no | Accepted for apimart compatibility, does not change the result | low auto |
quality | no | Rendering effort; passed to ChatGPT. Changes the price (see the table below), auto = medium | auto low medium high xhigh max |
Example
curl -X POST https://mixmedia.tech/api/v1/jobs/createTask \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2.5-text-to-image","input":{"prompt":"A cat astronaut in a neon city, cinematic light","resolution":"1K","aspect_ratio":"auto","moderation":"low","quality":"auto"}}'
import os, requests
r = requests.post(
"https://mixmedia.tech/api/v1/jobs/createTask",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "gpt-image-2.5-text-to-image",
"input": {
"prompt": "A cat astronaut in a neon city, cinematic light",
"resolution": "1K",
"aspect_ratio": "auto",
"moderation": "low",
"quality": "auto"
}
},
)
print(r.json()) # {"code": 200, "data": {"taskId": "..."}}
const r = await fetch("https://mixmedia.tech/api/v1/jobs/createTask", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"model": "gpt-image-2.5-text-to-image",
"input": {
"prompt": "A cat astronaut in a neon city, cinematic light",
"resolution": "1K",
"aspect_ratio": "auto",
"moderation": "low",
"quality": "auto"
}
}),
});
console.log(await r.json()); // { code: 200, data: { taskId: "..." } }
Price by quality and resolution
Per picture. auto costs the same as medium.
quality | 1K | 2K | 4K |
|---|---|---|---|
auto | $0.010 | $0.030 | $0.040 |
low | $0.010 | $0.010 | $0.020 |
medium | $0.010 | $0.030 | $0.040 |
high | $0.050 | $0.110 | $0.180 |
xhigh | $0.090 | $0.190 | $0.320 |
max | $0.210 | $0.430 | $0.710 |
Compatibility
apimart/OpenAI-style requests work too:
model:gpt-image-2.5-image-to-image,gpt-image-2-image-to-image,gpt-image-2.5-text-to-image,gpt-image-2-text-to-image,gpt-image-2.5,gpt-image-2-5,gpt-image-2.5-flare,gpt-image-2.5-sunburst.sizeinstead ofaspect_ratio: a ratio (16:9) or exact pixels (1600x1200) — we use the closest supported ratio.- Photos can go in
image_urls,image_inputorinput_urls. Parameters may also be sent at the top level of the body, without theinputwrapper. resolutionin any case (1k,2K);jpgandjpegare the same.nmust be1(one image per request).- One name,
gpt-image-2.5, for both modes: with photos the task runs as Photo → Photo.resolution:1k,2kor4k— ChatGPT draws about 1.5K; 2K and 4K are an upscale of the finished picture (Lanczos + light sharpening) to a 2048 / 4096 px long side.quality(auto,low,medium,high,xhigh,max;hd=high,standard=medium) is passed to ChatGPT: the size stays the same, detail changes a little; the price follows the table below.model:gpt-image-2.5-flareandgpt-image-2.5-sunburstare the same model.moderationandmask_urlare accepted but do not change the result.
Result
Same as any task: call recordInfo or receive a callback. Image links are in resultJson (kept for 24 hours).
Upload your photos via files/upload or pass any public https links.