GPT Image 2.5 Sunburst 2026-09-08
GPT Image 2.5 Sunburst crée des images à partir d’une consigne textuelle. Il prend en charge les dimensions personnalisées, des niveaux de qualité étendus et un arrière-plan transparent ; le fabricant met aussi en avant la précision de la retouche.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
La génération et le travail sur l’image
GPT Image 2.5 Sunburst est un modèle d’OpenAI pour créer des images. Le fabricant porte une attention particulière à la précision de la retouche des contenus sources. Le modèle accepte les consignes textuelles et, dans les opérations prévues à cet effet, des sources visuelles.
La fiche Ailoot actuelle présente la création d’une image à partir de texte. On peut définir la scène, la composition, le style et les détails du futur résultat. Les modes de travail avec des références, de retouche et de modification d’une zone par masque décrits par OpenAI nécessitent une prise en charge distincte des images d’entrée ; la présence d’une génération textuelle ne la confirme pas.
La qualité et la forme de l’image
Les niveaux disponibles sont low, medium, high, xhigh, max et auto. Le choix de qualité contrôle le mode de production de l’image. Il diffère des dimensions de la composition et du degré de compression du fichier obtenu.
Les dimensions peuvent être carrées, horizontales, verticales, choisies automatiquement ou définies manuellement. Pour des dimensions personnalisées, chaque côté est un multiple de 16 pixels et ne dépasse pas 3840 pixels. La surface doit être comprise entre 655 360 et 8 294 400 pixels, et le rapport du côté long au côté court ne doit pas dépasser 3:1. Toutes ces conditions s’appliquent simultanément.
Le fabricant indique les résolutions supérieures à 2560x1440 comme expérimentales. Une grande image permet de choisir un espace de composition adapté, mais ne dispense pas de vérifier les textes et la disposition des objets.
Les formats de résultat et l’arrière-plan
PNG est utilisé par défaut ; JPEG et WebP sont également prévus. La compression peut être réglée dans JPEG et WebP. Un arrière-plan transparent nécessite PNG ou WebP, car JPEG ne conserve pas le canal alpha. Un arrière-plan opaque et un choix automatique sont prévus en plus de la transparence.
Les dimensions, la qualité, le format et l’arrière-plan concernent différents aspects du résultat. Le style de l’image est défini par la description textuelle avec le contenu de la scène. La prise en charge des réglages précis doit être considérée séparément des capacités générales du fabricant.
La précision des retouches et le contrôle de l’image
Selon OpenAI, le traitement d’une tâche complexe peut prendre jusqu’à deux minutes. Il s’agit de la description de la génération chez le fabricant, et non d’une garantie du délai total de réception du résultat dans une application précise.
Dans une opération de retouche prise en charge séparément, le masque guide la modification de la zone choisie. Il ne garantit pas une correspondance stricte du résultat avec la limite ; promettre une retouche locale exacte serait donc excessif. L’utilisation de ce mode nécessite un moyen adapté de transmettre la source.
Lors de la génération, le modèle peut aussi se tromper dans le placement du texte et des détails ou modifier l’apparence d’un personnage entre différentes images. Le contrôle des textes, de la composition et de la constance relève de la vérification du fichier finalisé. Même une consigne détaillée ne garantit pas ces propriétés.
Ailoot · Génération d’images POST /v1/images/generations gpt-image-2.5-sunburst-2026-09-08
gpt-image-2.5-sunburst-2026-09-08
gpt-image-2.5-sunburst-2026-09-08Premiers pas
GPT Image 2.5 Sunburst crée des images à partir d’une consigne textuelle. Il prend en charge les dimensions personnalisées, des niveaux de qualité étendus et un arrière-plan transparent ; le fabricant met aussi en avant la précision de la retouche.
- Entrées acceptées
- Texte
- Résultats
- Images
Disponible dans Ailoot · entrées et méthodes
Ailoot · Génération d’images POST /v1/images/generations
- Types d’entrée
text- Types de sortie
image- Format de sortie
- Fichier image
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites gpt-image-2.5-sunburst-2026-09-08 | Par défaut— |
Champprompt | Typestring | ExigenceObligatoire | Valeurs et limites Longueur minimale: 1 | Par défaut— |
Champn | Typeinteger | ExigenceFacultatif | Valeurs et limites Minimum: 1 | Par défaut1 |
Champresponse_format | Typestring | ExigenceFacultatif | Valeurs et limites url, b64_json | Par défaut— |
Champstream | Typeboolean | ExigenceFacultatif | Valeurs et limites | Par défautfalse |
Champsize | Typestring | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Champquality | Typestring | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Champbackground | Typestring | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Champoutput_format | Typestring | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Champoutput_compression | Typeinteger | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Champmoderation | Typestring | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Champinput_fidelity | Typestring | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Champstyle | Typestring | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Champpartial_images | Typeinteger | ExigenceFacultatif | Valeurs et limites Selon le modèle | Par défaut— |
Combinaisons d’éléments d’entrée
Texte vers image · Obligatoire : prompt
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrematerial_types | Contrattext |
Paramètrerequired | Contratmodel, prompt |
Paramètreoptional_controls | Contratnull |
Paramètrecontent_type | Contratapplication/json |
Cycle de vie : synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id effectivement renvoyé ou enregistrement de la bibliothèque multimédia
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission.
Tarifs
Tarifs des méthodes Ailoot
POST /v1/images/generations- Texte en entrée
- 0,005 USD / 1K
- Entrée, image
- 0,008 USD / 1K tokens
- Sortie, image
- 0,03 USD / 1K tokens
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot · Génération d’images
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
export AILOOT_API_KEY
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 image brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-image-2.5-sunburst-2026-09-08", "prompt": ""}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Set your actual UTF-8 image brief file")
request={'model': 'gpt-image-2.5-sunburst-2026-09-08', 'prompt': ''}
request["prompt"]=f.read_text(encoding="utf-8")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "gpt-image-2.5-sunburst-2026-09-08", "prompt": ""};
if(!process.env.AILOOT_PROMPT_FILE)throw new Error("Set your actual UTF-8 image brief file");
request.prompt=readFileSync(process.env.AILOOT_PROMPT_FILE,"utf8");
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
if(!encoded && uri.startsWith("data:image/")) {
const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
encoded=uri.slice(comma+1);
}
if(encoded) {
if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
raw=Buffer.from(encoded,"base64");
} else if(uri) {
const u=new URL(uri,"https://api.ailoot.ai");
if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
if(!response.ok) throw new Error("Image content download failed: "+response.status);
raw=Buffer.from(await response.arrayBuffer());
} else throw new Error("Image has neither bytes nor URL");
if(!raw.length) throw new Error("Empty image result");
const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");
Recevoir et enregistrer les résultats
Ailoot · Génération d’images
Téléchargez chaque image renvoyée ou enregistrez son contenu Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Conserver tous les résultats terminés
Enregistrez chaque image terminée ; récupérez chaque URL renvoyée ou décodez son contenu Base64.
Enregistrez chaque élément de données. Décodez chaque b64_json ou récupérez chaque URL signée renvoyée. Choisissez l’extension du fichier à partir du type MIME et des octets réels.
Si la réponse d’origine doit être vérifiée
Si le résultat d’une génération ou d’une retouche d’image nécessite une vérification, conservez l’operation_id/X-Client-Request-ID d’origine et les informations renvoyées sur le résultat. Récupérez les résultats existants qui vous appartiennent via la bibliothèque multimédia, à l’aide des valeurs task_id ou asset_id réelles. Ne soumettez pas à nouveau la requête de génération/retouche et ne construisez pas d’URL d’interrogation du statut à partir d’operation_id.
Champs de la réponse
| Champ | Type |
|---|---|
Champcreated | Typeinteger |
Champdata[].url | Typestring |
Champdata[].b64_json | Typebase64 string |
Champusage | Typeobject |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse400 · invalid_request_error | ConditionChamps obligatoires, représentation des contenus ou valeur de paramètre non valides | Étape suivanteCorrigez les champs indiqués avant une nouvelle requête de création. |
Réponseserver_error | ConditionLa réponse renvoyée indique que l’opération ou le résultat nécessite une vérification | Étape suivanteConservez l’identifiant d’opération/de tâche initialement renvoyé, les en-têtes de la requête et la réponse ; poursuivez les lectures prises en charge de cette opération d’origine. Ne soumettez pas à nouveau la requête de création. |
Alias
Alias du modèle
Ailoot gpt-image-2.5-sunburst-2026-09-08
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · GPT Image 2.5 Sunburst 2026-09-08
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/images/generations·gpt-image-2.5-sunburst-2026-09-08:text→image- Quels champs la requête utilise-t-elle ?
POST /v1/images/generations·gpt-image-2.5-sunburst-2026-09-08:model,prompt,n,response_format,stream- Quelles limites s’appliquent ?
POST /v1/images/generations·gpt-image-2.5-sunburst-2026-09-08:n.minimum:1