GPT Image 2.5
The ChatGPT image model: realistic photos, logos with a transparent background, product shots and neat lettering.
Good for: realistic photos, logos, stickers, products, cards
How to get a better result
"Replace the background with a beach", "make it a watercolor".
The AI keeps everything else better: the face, the pose, the clothes.
Sharp, not blurry, so the person or object is clearly visible.
Pass this model in the request gpt-image-2.5-image-to-image
1. Create a task POST /api/v1/jobs/createTask
curl -X POST https://mixmedia.tech/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"
],
"resolution": "1K",
"aspect_ratio": "auto",
"output_format": "png",
"background": "auto",
"moderation": "low",
"quality": "auto"
}
}'import time, requests
API = "https://mixmedia.tech/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"
],
"resolution": "1K",
"aspect_ratio": "auto",
"output_format": "png",
"background": "auto",
"moderation": "low",
"quality": "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://mixmedia.tech/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"
],
"resolution": "1K",
"aspect_ratio": "auto",
"output_format": "png",
"background": "auto",
"moderation": "low",
"quality": "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: data.taskId. callBackUrl and Idempotency-Key are optional.
2. Status and result GET /api/v1/jobs/recordInfo
curl "https://mixmedia.tech/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 file POST /api/v1/files/upload
curl -X POST https://mixmedia.tech/api/v1/files/upload \
-H "Authorization: Bearer YOUR_API_KEY" -F "file=@photo.jpg"
The response has data.url. Pass that URL in the file field. Any public https URL works too.
Input fields
| Field | What to send |
|---|---|
prompt * | text, up to 20000 characters |
input_urls * | list of URLs, up to 16 |
resolution | 1K · 2K · 4K · default 1K |
aspect_ratio | 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 · default auto |
output_format | png · jpeg · webp · default png |
background | auto · opaque · transparent · default auto |
quality | auto · low · medium · high · default auto |
About the model
Photo editing with the ChatGPT image model. Describe the change as an instruction ("add a plane in the sky, keep the person and the background"). Add from 1 to 16 photos.


