modelli

OpenAI: GPT Image 2.5 Flare

Markdown · JSON

OpenAI: GPT Image 2.5 Flare

GPT Image 2.5 Flare genera e modifica immagini a partire da testo e riferimenti, con particolare attenzione alla creazione visiva rapida nell'uso quotidiano. Supporta dimensioni personalizzate, sfondi trasparenti, maschere e livelli di qualità fino a max per bozze, illustrazioni e materiali per campagne.

Informazioni sul modello

Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.

GPT Image 2.5 Flare è l'edizione di OpenAI per la generazione e la modifica di immagini pensata per il lavoro quotidiano rapido e di alta qualità. Accetta testo e immagini e restituisce immagini. Usala per bozze visive, illustrazioni, concept di prodotto e compiti creativi ricorrenti in cui un brief deve diventare rapidamente un'immagine utilizzabile. Flare è separata da Sunburst, il cui posizionamento pone l'accento sulla precisione delle modifiche. Scegli Flare per la creazione abituale di immagini e Sunburst quando la priorità è una modifica precisa.

Parti dal soggetto principale, dall'azione, dall'ambiente, dalla composizione e dal trattamento visivo. Per un'illustrazione di campagna, chiedi un ciclista che attraversa un piccolo ponte nella luce calda della sera, con una silhouette marcata e cielo libero per aggiungere testo in seguito. Un brief esplorativo conciso può lasciare aperte le scelte estetiche; un brief di produzione deve indicare i dettagli e le posizioni importanti. I flussi diretti di generazione e modifica consentono prompt fino a 32.000 caratteri e da uno a dieci risultati, permettendo di confrontare alcune variazioni rispetto allo stesso obiettivo.

Per la modifica si possono fornire fino a sedici immagini di riferimento. Assegna a ciascuna un ruolo chiaro, anziché aspettarti che il modello decida se un'immagine rappresenti l'identità del soggetto, lo scenario o lo stile. Una maschera può guidare una modifica a una regione; con più immagini, si applica alla prima. L'immagine e la maschera devono avere formato e dimensioni corrispondenti, e la maschera deve contenere un canale alfa. La guida richiede che l'immagine di partenza e la maschera siano inferiori a 50 MB. Una maschera è una guida, anziché una promessa di conservazione esatta dei contorni: indica quindi sia la modifica desiderata sia ciò che deve restare riconoscibile.

Flare supporta le qualità low, medium, high, xhigh, max e automatica, con auto come valore predefinito. Una qualità inferiore può servire per una bozza visiva rapida; le impostazioni superiori possono essere confrontate per i dettagli di una risorsa finale. La qualità è indipendente dalle dimensioni e dalla compressione dell'output. I formati standard comprendono 1024 × 1024, 1536 × 1024 e 1024 × 1536, con dimensioni automatiche o personalizzate disponibili. Scegli l'orientamento in funzione della destinazione finale e dello spazio utile nella scena.

Larghezza e altezza personalizzate devono essere multipli di sedici e nessun lato può superare 3840 pixel. Il rapporto consentito va da 1:3 a 3:1 e l'area totale deve essere di almeno 655.360 e al massimo 8.294.400 pixel. Tutte e quattro le condizioni si applicano insieme. La guida identifica come sperimentali le risoluzioni superiori a 2560 × 1440. Usa un'inquadratura valida e adatta alla composizione e includi nel brief tutti i dettagli che rischiano di essere tagliati, anziché considerare una risoluzione superiore un miglioramento automatico dell'impaginazione.

Il formato del risultato è PNG per impostazione predefinita, con alternative JPEG e WebP. JPEG e WebP consentono una compressione da 0 a 100. Per uno sfondo trasparente, seleziona PNG o WebP; sono supportati anche sfondi opachi e automatici. Una risorsa trasparente può essere inserita in un'impaginazione successiva, mentre un'immagine opaca include il proprio sfondo. Seleziona formato, sfondo e compressione secondo le effettive esigenze di consegna e conserva il file completato insieme al brief e alle impostazioni scelte.

Il produttore documenta la generazione e la modifica dirette di immagini, oltre a uno strumento conversazionale per immagini che può conservare i risultati selezionati per cambiamenti successivi. In quel flusso, l'azione può essere automatica, una generazione forzata o una modifica forzata quando un'immagine è presente nel contesto. Lo streaming può mostrare fino a tre immagini parziali prima del risultato finale. Queste anteprime indicano l'avanzamento e non sono ulteriori risultati finiti. Per il lavoro iterativo, prosegui dall'immagine scelta e descrivi un cambiamento visibile, come spostare un oggetto o regolare il trattamento cromatico. L'interfaccia del produttore supporta anche l'elaborazione in batch.

Esamina i testi, la posizione degli oggetti, i dettagli del soggetto e la composizione dell'immagine alle dimensioni previste. GPT Image può ancora incontrare difficoltà nel posizionamento esatto del testo, nelle impaginazioni strutturate e nella ripetizione dell'identità visiva fra generazioni. Conserva una variazione accettata come riferimento successivo e concentra la modifica seguente sul problema rilevante. Il ruolo di Flare nella generazione quotidiana è utile per una sequenza chiara di brief, alternative visive, selezione e perfezionamento, valutando la risorsa finale rispetto allo scopo creativo effettivo.

Ailoot · Immagini POST /v1/images/generations gpt-image-2.5-flare

gpt-image-2.5-flare

OpenAI /gpt-image-2.5-flare

Introduzione

GPT Image 2.5 Flare genera e modifica immagini a partire da testo e riferimenti, con particolare attenzione alla creazione visiva rapida nell'uso quotidiano. Supporta dimensioni personalizzate, sfondi trasparenti, maschere e livelli di qualità fino a max per bozze, illustrazioni e materiali per campagne.

Input accettati
Testo
Risultati
Immagini

Disponibile in Ailoot · input e metodi

Ailoot · Immagini POST /v1/images/generations
Tipi di input
text
Tipi di output
image
Formato di output
File immagine
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
gpt-image-2.5-flare
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limiti
Lunghezza minima: 1
Predefinito—
CamponTipointegerRequisitoFacoltativoValori e limiti
Minimo: 1
Predefinito1
Camporesponse_formatTipostringRequisitoFacoltativoValori e limiti
url, b64_json
Predefinito—
CampostreamTipobooleanRequisitoFacoltativoValori e limitiPredefinitofalse
CamposizeTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampoqualityTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampobackgroundTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campooutput_formatTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campooutput_compressionTipointegerRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampomoderationTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campoinput_fidelityTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampostyleTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campopartial_imagesTipointegerRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Combinazioni di materiali in input

Da testo a immagine · Obbligatorio: prompt

Parametri e ciclo di vita del metodo
ParametroContratto
Parametromaterial_typesContrattotext
ParametrorequiredContrattomodel, prompt
Parametrooptional_controlsContrattonull
Parametrocontent_typeContrattoapplication/json

Ciclo di vita: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id effettivamente restituito o record della libreria multimediale

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Le strutture dei metodi e gli ID sono esatti; la capacità del fornitore è distinta dall’ammissione delle richieste.

Tariffe

Tariffe dei metodi Ailoot

Ailoot ImmaginiPOST /v1/images/generations
Testo in input
0,005 USD / 1K
Input, immagine
0,008 USD / 1K tokens
Output, immagine
0,03 USD / 1K tokens

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Esempi di richieste

Ailoot · Immagini

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");

Ricevi e salva i risultati

Ailoot · Immagini

Scarica ogni immagine restituita o salvane il contenuto Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Conserva tutti i risultati completati

Salva ogni immagine completata; recupera ogni URL restituito oppure decodificane il contenuto Base64.

Salva ogni elemento data. Decodifica ogni b64_json o recupera ogni URL firmato restituito. Scegli l'estensione del nome del file in base al MIME e ai byte effettivi.

Se occorre verificare la risposta originale

Se il risultato di una generazione o modifica di immagini richiede una verifica, conserva operation_id/X-Client-Request-ID originale e le informazioni sul risultato restituito. Recupera i risultati esistenti che ti appartengono tramite la libreria multimediale usando i valori effettivi di task_id o asset_id. Non reinviare la richiesta di generazione/modifica e non costruire un URL di polling a partire da operation_id.

Campi della risposta
CampoTipo
CampocreatedTipointeger
Campodata[].urlTipostring
Campodata[].b64_jsonTipobase64 string
CampousageTipoobject
Errori e passaggi successivi
RispostaCondizionePassaggio successivo
Risposta400 · invalid_request_errorCondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validiPassaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione.
Rispostaserver_errorCondizioneLa risposta restituita indica che l'operazione o il risultato richiede una verificaPassaggio successivoConserva l'ID originale di operazione/task restituito, gli header della richiesta e la risposta; continua a leggere l'operazione originale tramite le modalità supportate. Non reinviare la richiesta di creazione.

Alias

Alias del modello

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

Alias dei percorsi dei metodi

/v1/images

ID di chiamata correlati

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

Ailoot Ultra · Immagini POST /v1/images/generations gpt-image-2.5-flare

gpt-image-2.5-flare

OpenAI /gpt-image-2.5-flare
ID del modello
  • gpt-image-2.5-flare
  • openai/gpt-image-2.5-flare

Introduzione

GPT Image 2.5 Flare genera e modifica immagini a partire da testo e riferimenti, con particolare attenzione alla creazione visiva rapida nell'uso quotidiano. Supporta dimensioni personalizzate, sfondi trasparenti, maschere e livelli di qualità fino a max per bozze, illustrazioni e materiali per campagne.

Input accettati
Testo
Risultati
Immagini

Disponibile in Ailoot · input e metodi

Ailoot Ultra · Immagini POST /v1/images/generations
Tipi di input
text
Tipi di output
image
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
gpt-image-2.5-flare
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limiti
Lunghezza massima: 32.000
Predefinito—
CamposizeTipostringRequisitoFacoltativoValori e limiti
Condizioni: Usa auto o WIDTHxHEIGHT con entrambe le dimensioni divisibili per 16. Il lato più lungo non deve superare 3,840 pixel e la dimensione totale non deve superare 8,300,000 pixel.
Predefinitoauto
CampobackgroundTipostringRequisitoFacoltativoValori e limiti
transparent, opaque, auto
Predefinitoauto
CampomoderationTipostringRequisitoFacoltativoValori e limiti
low, auto
Condizioni: Usa auto per la moderazione standard dei contenuti.
Predefinito—
CamponTipointegerRequisitoFacoltativoValori e limiti
Minimo: 1
Massimo: 10
Predefinito1
CampoqualityTipostringRequisitoFacoltativoValori e limiti
auto, high, medium, low
Predefinitoauto
Campooutput_compressionTipointegerRequisitoFacoltativoValori e limiti
Minimo: 0
Massimo: 100
Condizioni: Si applica all'output JPEG e WebP; invia il valore intero documentato.
Predefinito100
Campooutput_formatTipostringRequisitoFacoltativoValori e limiti
webp, png, jpeg
Predefinitopng
CampostreamTipobooleanRequisitoFacoltativoValori e limiti
false
Condizioni: Questa rotta restituisce un'unica risposta JSON completa.
Predefinitofalse
Parametri e ciclo di vita del metodo
ParametroContratto
Parametrocontent_typeContrattoapplication/json
ParametrorequiredContrattoprompt, model
Parametromaterial_typesContrattotext
ParametrooptionalContrattosize, background, moderation, n, quality, output_compression, output_format, stream
ParametroconditionsContrattoUno sfondo trasparente richiede PNG o WebP., La compressione dell'output si applica a JPEG o WebP., Il metodo selezionato genera a partire dal testo. I controlli di modifica e di streaming descritti per il produttore sono funzionalità separate.

Ciclo di vita: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id effettivamente restituito o record della libreria multimediale

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Tariffe

Calcolo del costo finale

Le tariffe visualizzate stimano il costo prima della generazione. L'addebito finale viene calcolato in base al costo registrato per la generazione originale. La durata misurata dell'output e le quantità previste non costituiscono la quantità finale fatturabile.

Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.

Modalità rapida
Non specificato Quando è selezionata la modalità rapida
Modalità flex
Non specificato Quando è selezionata la modalità flex
Sforzo massimo di ragionamento
Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)

Tariffe stimate per il confronto

Prezzi per configurazione

Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.

ConfigurazioneListino delle tariffeQuantità previstaCosto
ConfigurazioneTariffe base dei tokenListino delle tariffeTariffa baseQuantità prevista—Costo
Input · Token in input · Stima solo a fini di confronto — / 1K token
Output · Token in output · Stima solo a fini di confronto — / 1K token
Input · Lettura dalla cache · Stima solo a fini di confronto — / 1K token
Input · Scrittura nella cache · Stima solo a fini di confronto — / 1K token
Input · Scrittura nella cache, 1 ora · Stima solo a fini di confronto — / 1K token
ConfigurazioneCosto stimato della generazioneListino delle tariffe—Quantità previstastima per una generazioneCosto
Output · Costo di generazione stimato · Stima solo a fini di confronto $0.24576 stima prima della generazione

Questa stima non è un addebito aggiuntivo né una tariffa fissa per la generazione completata.

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Esempi di richieste

Ailoot Ultra · Immagini

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

Ricevi e salva i risultati

Ailoot Ultra · Immagini

Scarica ogni immagine restituita o salvane il contenuto Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Altre letture di contenuto
Leggi le risorse esistenti di tua proprietà
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.
Conserva tutti i risultati completati

Salva ogni immagine completata; recupera ogni URL restituito oppure decodificane il contenuto Base64.

Conserva la risposta completa e gli header, ogni output effettivo, gli identificatori originali restituiti e tutti i campi di utilizzo. Recupera l'operazione originale senza inviare nuovamente la richiesta di creazione.

Se occorre verificare la risposta originale

Conserva l'X-Client-Request-ID restituito per la riconciliazione. Leggi solo i valori task_id/asset_id effettivamente restituiti o la tua libreria multimediale; non costruire mai un URL del task a partire dall'ID dell'operazione e non reinviare mai la richiesta di creazione.

Campi della risposta
CampoTipo
CampocreatedTipo
Campodata[].urlTipo
Campodata[].b64_jsonTipo
CampousageTipo

Alias

Alias del modello

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

Alias dei percorsi dei metodi

/v1/images

ID di chiamata correlati

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

Ailoot Ultra · Immagini POST /v1/images/generations openai/gpt-image-2.5-flare

openai/gpt-image-2.5-flare

OpenAI /openai/gpt-image-2.5-flare
ID del modello
  • gpt-image-2.5-flare
  • openai/gpt-image-2.5-flare

Introduzione

GPT Image 2.5 Flare genera e modifica immagini a partire da testo e riferimenti, con particolare attenzione alla creazione visiva rapida nell'uso quotidiano. Supporta dimensioni personalizzate, sfondi trasparenti, maschere e livelli di qualità fino a max per bozze, illustrazioni e materiali per campagne.

Input accettati
Testo · Immagini
Risultati
Immagini

Disponibile in Ailoot · input e metodi

Ailoot Ultra · Immagini POST /v1/images/generations
Tipi di input
text, image
Tipi di output
image
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
openai/gpt-image-2.5-flare
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limiti
Lunghezza minima: 1
Predefinito—
Campoaspect_ratioTipostringRequisitoFacoltativoValori e limiti
1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto
Predefinito—
CampoqualityTipostringRequisitoFacoltativoValori e limiti
auto, low, medium, high, xhigh, max
Predefinito—
CampobackgroundTipostringRequisitoFacoltativoValori e limiti
auto, transparent, opaque
Predefinito—
CamponTipointegerRequisitoFacoltativoValori e limiti
Minimo: 1
Massimo: 10
Predefinito—
Campoinput_referencesTipoarrayRequisitoFacoltativoValori e limiti
Numero minimo di elementi: 0
Numero massimo di elementi: 16
Predefinito—
Campooutput_compressionTipointegerRequisitoFacoltativoValori e limiti
Minimo: 0
Massimo: 100
Predefinito—
CampoproviderTipoobjectRequisitoFacoltativoValori e limitiPredefinito—
Parametri e ciclo di vita del metodo
ParametroContratto
Parametrocontent_typeContrattoapplication/json
ParametrorequiredContrattomodel, prompt
Parametromaterial_typesContrattotext, image

Ciclo di vita: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id effettivamente restituito o record della libreria multimediale

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Tariffe

Calcolo del costo finale

Le tariffe visualizzate stimano il costo prima della generazione. L'addebito finale viene calcolato in base al costo registrato per la generazione originale. La durata misurata dell'output e le quantità previste non costituiscono la quantità finale fatturabile.

Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.

Modalità rapida
Non specificato Quando è selezionata la modalità rapida
Modalità flex
Non specificato Quando è selezionata la modalità flex
Sforzo massimo di ragionamento
Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)

Tariffe stimate per il confronto

Prezzi per configurazione

Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.

ConfigurazioneListino delle tariffeQuantità previstaCosto
ConfigurazioneTariffe base dei tokenListino delle tariffeTariffa baseQuantità prevista—Costo
Input · Token in input · Stima solo a fini di confronto — / 1K token
Output · Token in output · Stima solo a fini di confronto — / 1K token
Input · Lettura dalla cache · Stima solo a fini di confronto — / 1K token
Input · Scrittura nella cache · Stima solo a fini di confronto — / 1K token
Input · Scrittura nella cache, 1 ora · Stima solo a fini di confronto — / 1K token
ConfigurazioneCosto stimato della generazioneListino delle tariffe—Quantità previstastima per una generazioneCosto
Output · Costo di generazione stimato · Stima solo a fini di confronto $0.24576 stima prima della generazione

Questa stima non è un addebito aggiuntivo né una tariffa fissa per la generazione completata.

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Esempi di richieste

Ailoot Ultra · Immagini

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

Ricevi e salva i risultati

Ailoot Ultra · Immagini

Scarica ogni immagine restituita o salvane il contenuto Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Altre letture di contenuto
Leggi le risorse esistenti di tua proprietà
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.
Conserva tutti i risultati completati

Salva ogni immagine completata; recupera ogni URL restituito oppure decodificane il contenuto Base64.

Conserva la risposta completa e gli header, ogni output effettivo, gli identificatori originali restituiti e tutti i campi di utilizzo. Recupera l'operazione originale senza inviare nuovamente la richiesta di creazione.

Se occorre verificare la risposta originale

Conserva l'X-Client-Request-ID restituito per la riconciliazione. Leggi solo i valori task_id/asset_id effettivamente restituiti o la tua libreria multimediale; non costruire mai un URL del task a partire dall'ID dell'operazione e non reinviare mai la richiesta di creazione.

Campi della risposta
CampoTipo
CampocreatedTipo
Campodata[].urlTipo
Campodata[].b64_jsonTipo
CampousageTipo

Alias

Alias del modello

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

Alias dei percorsi dei metodi

/v1/images

ID di chiamata correlati

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

FAQ · OpenAI: GPT Image 2.5 Flare
Quali input e risultati sono disponibili?

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

Quali campi usa la richiesta?

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

Quali limiti si applicano?

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

Maggiori dettagli

Collega Ailoot a Claude Code, OpenCode, Hermes o alla tua applicazione.

L’azienda e il suo portafoglio di progetti

L’azienda e il suo portafoglio di progetti: milioni di clienti; vendite nell’ordine dei miliardi ogni mese.

Acquista token con uno sconto.

Sconto con abbonamento per lavoro regolare. Codici fino al 50% sull’acquisto di token.

Abbonamento
Scegli un piano scontato per richieste regolari.
Codice fino al 50%
Inserisci il codice all’acquisto. Il prezzo si aggiorna secondo la promozione.
Spese nella cronologia
Modello, token e importo sono salvati per ogni richiesta.

Scegli abbonamento · Consulta prezzi dei modelli

Collega l’API al prodotto che vendi.

SaaS, app e bot secondo offerta e accordo di licenza Ailoot. Per rivendere, richiedi una licenza reseller.

Applicazione commerciale
Integra generazione di testo, immagini, video e suono nelle funzioni a pagamento.
Licenza reseller
Invia descrizione del progetto e schema di accesso. Richiedi condizioni scritte per uso e rivendita.
Documenti sul sito
Offerta, accordo di licenza e politica sui dati sono disponibili prima della connessione.

Richiedi licenza reseller · Offerta e accordo di licenza