GPT Image 2.5

gpt-image-2.5-image-to-image ChatGPT

OpenAI GPT Image 2.5: photorealism, clean text, product shots and precise photo editing.

Pricing: $0.02 per image · failed tasks — $0 · ~2 min

Run with API
Upload a photo and describe what to change. API model: gpt-image-2.5-image-to-image

Input

input_urls * — your photo (required) ?
Click to choose a photo
or drop it here · JPG, PNG, WebP up to 15 MB · up to 16
Examples:
aspect_ratio — image shape ?
background — background ?

Output

GPT Image 2.5 · Image-to-Image — OpenAI

The result will appear here.
It usually takes ~2 min.

Sample output

Turn it into a glossy 3D glass icon, keep the shape

“Add a flying plane to the sky, keep the person and the scene”
“Make a pencil sketch from the photo”

1. Create a task POST /api/v1/jobs/createTask

curl -X POST https://ai.aimixmedia.site/api/v1/jobs/createTask \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-123" \
  -d '{
  "model": "gpt-image-2.5-image-to-image",
  "callBackUrl": "https://your-app.example/callback",
  "input": {
    "prompt": "Turn it into a glossy 3D glass icon, keep the shape",
    "input_urls": [
      "https://example.com/photo.jpg"
    ],
    "aspect_ratio": "auto",
    "resolution": "1K",
    "background": "auto"
  }
}'
import time, requests

API = "https://ai.aimixmedia.site/api/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

task = requests.post(f"{API}/jobs/createTask", headers=HEADERS, json={
    "model": "gpt-image-2.5-image-to-image",
    "callBackUrl": "https://your-app.example/callback",
    "input": {
        "prompt": "Turn it into a glossy 3D glass icon, keep the shape",
        "input_urls": [
            "https://example.com/photo.jpg"
        ],
        "aspect_ratio": "auto",
        "resolution": "1K",
        "background": "auto"
    }
}).json()
task_id = task["data"]["taskId"]

while True:
    info = requests.get(f"{API}/jobs/recordInfo", headers=HEADERS, params={"taskId": task_id}).json()["data"]
    if info["state"] in ("success", "fail"):
        break
    time.sleep(4)
print(info["state"], info.get("resultJson") or info.get("failMsg"))
const API = "https://ai.aimixmedia.site/api/v1";
const headers = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };

const { data } = await fetch(`${API}/jobs/createTask`, {
  method: "POST", headers,
  body: JSON.stringify({
    "model": "gpt-image-2.5-image-to-image",
    "callBackUrl": "https://your-app.example/callback",
    "input": {
      "prompt": "Turn it into a glossy 3D glass icon, keep the shape",
      "input_urls": [
        "https://example.com/photo.jpg"
      ],
      "aspect_ratio": "auto",
      "resolution": "1K",
      "background": "auto"
    }
  }),
}).then((r) => r.json());

let info;
do {
  await new Promise((r) => setTimeout(r, 4000));
  info = (await fetch(`${API}/jobs/recordInfo?taskId=${data.taskId}`, { headers }).then((r) => r.json())).data;
} while (!["success", "fail"].includes(info.state));
console.log(info.state, info.resultJson ?? info.failMsg);

Response: {"code":200,"msg":"success","data":{"taskId":"task_..."}}. callBackUrl and Idempotency-Key are optional.

2. Status and result GET /api/v1/jobs/recordInfo

curl "https://ai.aimixmedia.site/api/v1/jobs/recordInfo?taskId=TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

data.state: waiting | queuing | generating | success | fail. On success data.resultJson is a JSON string with resultUrls.

3. Upload a photo (optional) POST /api/v1/files/upload

curl -X POST https://ai.aimixmedia.site/api/v1/files/upload \
  -H "Authorization: Bearer YOUR_API_KEY" -F "file=@photo.jpg"

Returns data.url — pass it in input.input_urls. Any public https URL works too.

Input parameters

FieldTypeValues
prompt *stringup to 20000 chars
input_urls *string[] (URL)up to 16 URLs
aspect_ratiostringauto | 1:1 | 16:9 | 9:16 | 4:3 | 3:4 | 5:4 | 4:5 | 2:1 | 1:2 | 3:1 | 1:3 | 21:9 | 9:21 | 3:2 | 2:3 · default auto
resolutionstring1K · default 1K
backgroundstringauto | opaque | transparent · default auto
You need an API key ? — create one in the dashboard.

Model docs Callbacks & signature

GPT Image 2.5 · Image-to-Image — OpenAI

Image editing with OpenAI GPT Image 2.5. The prompt is applied to the attached photo — write it as an edit ("add a plane in the sky, keep the person and the background"). At least one reference image is required (up to 16). Output is PNG.

Pricing

Image to Image · gpt-image-2.5-image-to-image$0.02
Text to Image · gpt-image-2.5-text-to-image$0.02
Task failed$0 (auto refund)
Retry with the same Idempotency-Key$0

Retention

Results are kept for 30 days, run history forever. Download important files in time.

API model ID: gpt-image-2.5-image-to-image · aliases: gpt-image-2-image-to-image