models

OpenAI: GPT Image 2.5 Flare

Markdown · JSON

OpenAI: GPT Image 2.5 Flare

GPT Image 2.5 Flare génère et retouche des images à partir de texte et de références, en privilégiant la création visuelle rapide au quotidien. Il prend en charge les tailles personnalisées, les fonds transparents, les masques et les niveaux de qualité jusqu’à max pour les ébauches, les illustrations et les ressources de campagne.

À 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.

GPT Image 2.5 Flare est l’édition de génération et de retouche d’images d’OpenAI destinée à un travail quotidien rapide et de haute qualité. Il accepte du texte et des images et renvoie des images. Utilisez-le pour les ébauches visuelles, les illustrations, les concepts de produits et les tâches créatives récurrentes où un brief doit rapidement devenir une image exploitable. Flare est distinct de Sunburst, qui met l’accent sur la précision des retouches. Choisissez Flare pour la création courante d’images et Sunburst lorsque la précision de la retouche est prioritaire.

Commencez par le sujet principal, l’action, l’environnement, la composition et le traitement visuel. Pour une illustration de campagne, demandez un cycliste traversant un petit pont dans la lumière chaude du soir, avec une silhouette marquée et un ciel dégagé pour ajouter du texte plus tard. Un brief d’exploration concis peut laisser les choix esthétiques ouverts ; un brief de production doit nommer les détails et les placements importants. Les processus directs de génération et de retouche autorisent des prompts allant jusqu’à 32 000 caractères et peuvent produire entre un et dix résultats, ce qui permet de comparer quelques variantes selon le même objectif.

La retouche peut utiliser jusqu’à seize images de référence. Attribuez à chaque référence un rôle clair plutôt que d’attendre du modèle qu’il décide si l’image représente l’identité du sujet, le décor ou le style. Un masque peut guider une modification dans une zone ; avec plusieurs images, il s’applique à la première. L’image et le masque doivent avoir un format et des dimensions identiques, et le masque doit contenir un canal alpha. Le guide exige une taille inférieure à 50 MB pour la source et le masque. Le masque constitue une indication plutôt qu’une promesse de préservation exacte des contours : indiquez donc la modification voulue et ce qui doit rester reconnaissable.

Flare prend en charge les qualités low, medium, high, xhigh, max et automatique, avec auto par défaut. Une qualité inférieure peut servir à une ébauche visuelle rapide ; les réglages supérieurs peuvent être comparés pour les détails d’une ressource finale. La qualité est indépendante de la taille et de la compression de sortie. Les tailles standard comprennent 1024 × 1024, 1536 × 1024 et 1024 × 1536 ; des dimensions automatiques ou personnalisées sont aussi disponibles. Choisissez l’orientation selon l’emplacement final et l’espace utile de la scène.

La largeur et la hauteur personnalisées doivent être des multiples de seize, sans qu’aucun côté dépasse 3840 pixels. Le rapport autorisé va de 1:3 à 3:1 et la surface totale doit être d’au moins 655 360 et d’au plus 8 294 400 pixels. Les quatre conditions s’appliquent simultanément. Le guide qualifie d’expérimentales les résolutions supérieures à 2560 × 1440. Utilisez un cadre valide adapté à la composition et incluez dans le brief les détails à préserver du recadrage plutôt que de considérer une résolution supérieure comme une amélioration automatique de la mise en page.

Le résultat est au format PNG par défaut, avec JPEG et WebP comme alternatives. JPEG et WebP autorisent une compression de 0 à 100. Pour un fond transparent, choisissez PNG ou WebP ; les fonds opaques et automatiques sont également pris en charge. Une ressource transparente peut être insérée dans une mise en page ultérieure, tandis qu’une image opaque comprend son propre fond. Choisissez le format, le fond et la compression selon le besoin réel de livraison, et conservez le fichier terminé avec le brief et les réglages choisis.

Le fabricant documente la génération et les retouches directes d’images, ainsi qu’un outil d’image conversationnel qui peut conserver les résultats sélectionnés pour des changements ultérieurs. Dans ce processus, la sélection de l’action peut être automatique, ou il est possible de forcer une génération ou, lorsqu’une image figure dans le contexte, une retouche. La diffusion en continu peut montrer jusqu’à trois images partielles avant le résultat final. Ces aperçus indiquent l’avancement et ne constituent pas des livrables terminés supplémentaires. Pour un travail par étapes, poursuivez à partir de l’image choisie et décrivez un changement visible, par exemple déplacer un objet ou ajuster le traitement des couleurs. L’interface du fabricant prend aussi en charge le traitement par lots.

Examinez le texte, la position des objets, les détails du sujet et la composition de l’image à la taille prévue. GPT Image peut encore rencontrer des difficultés avec le placement exact du texte, les mises en page structurées et la répétition d’une identité visuelle d’une génération à l’autre. Conservez une variante acceptée comme référence suivante et limitez la retouche suivante au problème qui compte. La vocation de Flare pour la génération quotidienne convient à une séquence claire de brief, de variantes visuelles, de sélection et d’affinement, dont la ressource finale est jugée selon l’objectif créatif réel.

Ailoot · Génération d’images POST /v1/images/generations gpt-image-2.5-flare

gpt-image-2.5-flare

OpenAI /gpt-image-2.5-flare

Premiers pas

GPT Image 2.5 Flare génère et retouche des images à partir de texte et de références, en privilégiant la création visuelle rapide au quotidien. Il prend en charge les tailles personnalisées, les fonds transparents, les masques et les niveaux de qualité jusqu’à max pour les ébauches, les illustrations et les ressources de campagne.

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
Entrée
text
Sortie
image
Format de sortie
Fichier image
ChampTypeExigenceValeurs et limitesPar défaut
ChampmodelTypestringExigenceObligatoireValeurs et limites
gpt-image-2.5-flare
Par défaut—
ChamppromptTypestringExigenceObligatoireValeurs et limites
Longueur minimale: 1
Par défaut—
ChampnTypeintegerExigenceFacultatifValeurs et limites
Minimum: 1
Par défaut1
Champresponse_formatTypestringExigenceFacultatifValeurs et limites
url, b64_json
Par défaut—
ChampstreamTypebooleanExigenceFacultatifValeurs et limitesPar défautfalse
ChampsizeTypestringExigenceFacultatifValeurs et limites
Selon le modèle
Par défaut—
ChampqualityTypestringExigenceFacultatifValeurs et limites
Selon le modèle
Par défaut—
ChampbackgroundTypestringExigenceFacultatifValeurs et limites
Selon le modèle
Par défaut—
Champoutput_formatTypestringExigenceFacultatifValeurs et limites
Selon le modèle
Par défaut—
Champoutput_compressionTypeintegerExigenceFacultatifValeurs et limites
Selon le modèle
Par défaut—
ChampmoderationTypestringExigenceFacultatifValeurs et limites
Selon le modèle
Par défaut—
Champinput_fidelityTypestringExigenceFacultatifValeurs et limites
Selon le modèle
Par défaut—
ChampstyleTypestringExigenceFacultatifValeurs et limites
Selon le modèle
Par défaut—
Champpartial_imagesTypeintegerExigenceFacultatifValeurs 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ètreContrat
Paramètrematerial_typesContrattext
ParamètrerequiredContratmodel, prompt
Paramètreoptional_controlsContratnull
Paramètrecontent_typeContratapplication/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

Ailoot Génération d’imagesPOST /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

curlPython SDKNode.js SDK
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-flare", "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-flare', '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-flare", "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}/content
  • GET /v1/media/assets
  • GET /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 le contenu de 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
ChampType
ChampcreatedTypeinteger
Champdata[].urlTypestring
Champdata[].b64_jsonTypebase64 string
ChampusageTypeobject
Erreurs et étapes suivantes
RéponseConditionÉtape suivante
Réponse400 · invalid_request_errorConditionChamps 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_errorConditionLa 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-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare

Alias des chemins de méthode

/v1/images

ID d’appel associés

openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare

Ailoot Ultra · Génération d’images POST /v1/images/generations gpt-image-2.5-flare

gpt-image-2.5-flare

OpenAI /gpt-image-2.5-flare
ID du modèle
  • gpt-image-2.5-flare
  • openai/gpt-image-2.5-flare

Premiers pas

GPT Image 2.5 Flare génère et retouche des images à partir de texte et de références, en privilégiant la création visuelle rapide au quotidien. Il prend en charge les tailles personnalisées, les fonds transparents, les masques et les niveaux de qualité jusqu’à max pour les ébauches, les illustrations et les ressources de campagne.

Entrées acceptées
Texte
Résultats
Images

Disponible dans Ailoot · entrées et méthodes

Ailoot Ultra · Génération d’images POST /v1/images/generations
Entrée
text
Sortie
image
ChampTypeExigenceValeurs et limitesPar défaut
ChampmodelTypestringExigenceObligatoireValeurs et limites
gpt-image-2.5-flare
Par défaut—
ChamppromptTypestringExigenceObligatoireValeurs et limites
Longueur maximale: 32'000
Par défaut—
ChampsizeTypestringExigenceFacultatifValeurs et limites
Conditions: Utilisez auto ou WIDTHxHEIGHT, avec les deux dimensions divisibles par 16. Le côté le plus long ne doit pas dépasser 3,840 pixels et la taille totale ne doit pas dépasser 8,300,000 pixels.
Par défautauto
ChampbackgroundTypestringExigenceFacultatifValeurs et limites
transparent, opaque, auto
Par défautauto
ChampmoderationTypestringExigenceFacultatifValeurs et limites
low, auto
Conditions: Utilisez auto pour la modération standard du contenu.
Par défaut—
ChampnTypeintegerExigenceFacultatifValeurs et limites
Minimum: 1
Maximum: 10
Par défaut1
ChampqualityTypestringExigenceFacultatifValeurs et limites
auto, high, medium, low
Par défautauto
Champoutput_compressionTypeintegerExigenceFacultatifValeurs et limites
Minimum: 0
Maximum: 100
Conditions: S’applique aux sorties JPEG et WebP ; envoyez la valeur entière documentée.
Par défaut100
Champoutput_formatTypestringExigenceFacultatifValeurs et limites
webp, png, jpeg
Par défautpng
ChampstreamTypebooleanExigenceFacultatifValeurs et limites
false
Conditions: Cette route renvoie une réponse JSON complète.
Par défautfalse
Paramètres et cycle de vie de la méthode
ParamètreContrat
Paramètrecontent_typeContratapplication/json
ParamètrerequiredContratprompt, model
Paramètrematerial_typesContrattext
ParamètreoptionalContratsize, background, moderation, n, quality, output_compression, output_format, stream
ParamètreconditionsContratUn arrière-plan transparent nécessite le format PNG ou WebP., La compression de sortie s’applique aux formats JPEG ou WebP., La méthode sélectionnée génère à partir de texte. Les paramètres de modification et de diffusion en continu décrits par le fabricant sont des capacités distinctes.

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}

Tarifs

Calcul du coût final

Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.

Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.

Mode rapide
Non précisé Lorsque le mode rapide est sélectionné
Mode Flex
Non précisé Lorsque le mode flex est sélectionné
Effort de raisonnement maximal
Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)

Tarifs estimés à des fins de comparaison

Prix par configuration

Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.

ConfigurationBarème tarifaireQuantité prévisionnelleCoût
ConfigurationTarifs de base des jetonsBarème tarifaireTarif de baseQuantité prévisionnelle—Coût
Entrée · Tokens en entrée · Estimation à des fins de comparaison uniquement — / 1K tokens
Sortie · Tokens en sortie · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K tokens
ConfigurationCoût estimé de la générationBarème tarifaire—Quantité prévisionnelleEstimation pour une générationCoût
Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.24576 estimation avant génération

Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée.

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 Ultra · Génération d’images

curl
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'prompt': 'A cute baby sea otter', 'model': 'gpt-image-2.5-flare', 'size': '1024x1024', 'n': 1, 'background': 'auto', 'moderation': 'auto', 'output_format': 'png'}

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

Recevoir et enregistrer les résultats

Ailoot Ultra · 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}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Autres lectures de contenu
Lire les ressources existantes dont vous êtes propriétaire
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
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.

Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.

Si la réponse d’origine doit être vérifiée

Conservez le X-Client-Request-ID renvoyé pour le rapprochement. Consultez uniquement les valeurs task_id/asset_id effectivement renvoyées ou votre bibliothèque multimédia ; ne construisez jamais une URL de tâche à partir de l’identifiant de l’opération et ne soumettez jamais à nouveau la création.

Champs de la réponse
ChampType
ChampcreatedType
Champdata[].urlType
Champdata[].b64_jsonType
ChampusageType

Alias

Alias du modèle

Ailoot gpt-image-2.5-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare

Alias des chemins de méthode

/v1/images

ID d’appel associés

openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare

Ailoot Ultra · Génération d’images POST /v1/images/generations openai/gpt-image-2.5-flare

openai/gpt-image-2.5-flare

OpenAI /openai/gpt-image-2.5-flare
ID du modèle
  • gpt-image-2.5-flare
  • openai/gpt-image-2.5-flare

Premiers pas

GPT Image 2.5 Flare génère et retouche des images à partir de texte et de références, en privilégiant la création visuelle rapide au quotidien. Il prend en charge les tailles personnalisées, les fonds transparents, les masques et les niveaux de qualité jusqu’à max pour les ébauches, les illustrations et les ressources de campagne.

Entrées acceptées
Texte · Images
Résultats
Images

Disponible dans Ailoot · entrées et méthodes

Ailoot Ultra · Génération d’images POST /v1/images/generations
Entrée
text, image
Sortie
image
ChampTypeExigenceValeurs et limitesPar défaut
ChampmodelTypestringExigenceObligatoireValeurs et limites
openai/gpt-image-2.5-flare
Par défaut—
ChamppromptTypestringExigenceObligatoireValeurs et limites
Longueur minimale: 1
Par défaut—
Champaspect_ratioTypestringExigenceFacultatifValeurs et limites
1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto
Par défaut—
ChampqualityTypestringExigenceFacultatifValeurs et limites
auto, low, medium, high, xhigh, max
Par défaut—
ChampbackgroundTypestringExigenceFacultatifValeurs et limites
auto, transparent, opaque
Par défaut—
ChampnTypeintegerExigenceFacultatifValeurs et limites
Minimum: 1
Maximum: 10
Par défaut—
Champinput_referencesTypearrayExigenceFacultatifValeurs et limites
Nombre minimal d’éléments: 0
Nombre maximal d’éléments: 16
Par défaut—
Champoutput_compressionTypeintegerExigenceFacultatifValeurs et limites
Minimum: 0
Maximum: 100
Par défaut—
ChampproviderTypeobjectExigenceFacultatifValeurs et limitesPar défaut—
Paramètres et cycle de vie de la méthode
ParamètreContrat
Paramètrecontent_typeContratapplication/json
ParamètrerequiredContratmodel, prompt
Paramètrematerial_typesContrattext, image

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}

Tarifs

Calcul du coût final

Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.

Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.

Mode rapide
Non précisé Lorsque le mode rapide est sélectionné
Mode Flex
Non précisé Lorsque le mode flex est sélectionné
Effort de raisonnement maximal
Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)

Tarifs estimés à des fins de comparaison

Prix par configuration

Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.

ConfigurationBarème tarifaireQuantité prévisionnelleCoût
ConfigurationTarifs de base des jetonsBarème tarifaireTarif de baseQuantité prévisionnelle—Coût
Entrée · Tokens en entrée · Estimation à des fins de comparaison uniquement — / 1K tokens
Sortie · Tokens en sortie · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K tokens
Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K tokens
ConfigurationCoût estimé de la générationBarème tarifaire—Quantité prévisionnelleEstimation pour une générationCoût
Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.24576 estimation avant génération

Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée.

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 Ultra · Génération d’images

curl
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'openai/gpt-image-2.5-flare', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

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

Recevoir et enregistrer les résultats

Ailoot Ultra · 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}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Autres lectures de contenu
Lire les ressources existantes dont vous êtes propriétaire
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
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.

Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.

Si la réponse d’origine doit être vérifiée

Conservez le X-Client-Request-ID renvoyé pour le rapprochement. Consultez uniquement les valeurs task_id/asset_id effectivement renvoyées ou votre bibliothèque multimédia ; ne construisez jamais une URL de tâche à partir de l’identifiant de l’opération et ne soumettez jamais à nouveau la création.

Champs de la réponse
ChampType
ChampcreatedType
Champdata[].urlType
Champdata[].b64_jsonType
ChampusageType

Alias

Alias du modèle

Ailoot gpt-image-2.5-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare

Alias des chemins de méthode

/v1/images

ID d’appel associés

openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare

FAQ · OpenAI: GPT Image 2.5 Flare
Quelles entrées et quels résultats sont disponibles ?

POST /v1/images/generations · gpt-image-2.5-flare: text → image

POST /v1/images/generations · gpt-image-2.5-flare: text → image

POST /v1/images/generations · openai/gpt-image-2.5-flare: text, image → image

Quels champs la requête utilise-t-elle ?

POST /v1/images/generations · gpt-image-2.5-flare: model, prompt, n, response_format, stream

POST /v1/images/generations · gpt-image-2.5-flare: model, prompt, size, background, moderation, n, quality, output_compression, output_format, stream

POST /v1/images/generations · openai/gpt-image-2.5-flare: model, prompt, aspect_ratio, quality, background, n, input_references, output_compression, provider

Quelles limites s’appliquent ?

POST /v1/images/generations · gpt-image-2.5-flare: n.minimum: 1

POST /v1/images/generations · gpt-image-2.5-flare: prompt.maximum_length: 32000; n.minimum: 1; n.maximum: 10; output_compression.minimum: 0; output_compression.maximum: 100

POST /v1/images/generations · openai/gpt-image-2.5-flare: n.minimum: 1; n.maximum: 10; output_compression.minimum: 0; output_compression.maximum: 100

Plus de détails

Connectez Ailoot à Claude Code, OpenCode, Hermes ou à votre application.

L’entreprise et son portefeuille de projets

L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.

Achetez des tokens à prix réduit.

Une remise d’abonnement pour le travail régulier. Des codes promo jusqu’à 50% sur l’achat de tokens.

Abonnement
Choisissez une offre à tarif réduit pour vos requêtes régulières.
Code promo jusqu’à 50%
Saisissez le code à l’achat. Le prix est recalculé selon la promotion en cours.
Dépenses dans l’historique
Modèle, tokens et montant sont enregistrés pour chaque requête.

Choisir un abonnement · Voir les prix des modèles

Connectez l’API au produit que vous vendez.

SaaS, applications et bots selon l’offre officielle et le contrat de licence Ailoot. Pour la revente, demandez une licence revendeur.

Application commerciale
Intégrez la génération de texte, d’images, de vidéo et de son aux fonctions payantes de votre service.
Licence revendeur
Envoyez la description du projet et le mode d’accès. Demandez des conditions écrites d’utilisation et de revente.
Documents sur le site
L’offre officielle, le contrat de licence et la politique de traitement des données sont accessibles avant connexion.

Demander une licence revendeur · Offre officielle et contrat de licence