OpenAI: GPT Image 2.5 Flare
GPT Image 2.5 Flare genererer og redigerer billeder ud fra tekst og referencer med fokus på hurtig visuel produktion til daglig brug. Den understøtter brugerdefinerede størrelser, gennemsigtige baggrunde, masker og kvalitetsniveauer op til max til udkast, illustrationer og kampagnemateriale.
- Ailoot · Billeder
POST /v1/images/generationsgpt-image-2.5-flare - Ailoot Ultra · Billeder
POST /v1/images/generationsgpt-image-2.5-flare - Ailoot Ultra · Billeder
POST /v1/images/generationsopenai/gpt-image-2.5-flare
Om modellen
Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.
GPT Image 2.5 Flare er OpenAI’s udgave til billedgenerering og redigering, rettet mod hurtigt dagligt arbejde i høj kvalitet. Den accepterer tekst og billeder og returnerer billedresultater. Brug den til visuelle udkast, illustrationer, produktkoncepter og tilbagevendende kreative opgaver, hvor et oplæg hurtigt skal blive til et brugbart billede. Flare er adskilt fra Sunburst, hvis profil lægger vægt på præcis redigering. Vælg Flare til rutinemæssig billedproduktion og Sunburst, når præcis redigering er vigtigst.
Begynd med hovedmotivet, handlingen, omgivelserne, kompositionen og den visuelle behandling. Til en kampagneillustration kan du bede om en cyklist, der krydser en lille bro i varmt aftenlys, med en markant silhuet og åben himmel til senere tekst. Et kort undersøgende oplæg kan lade æstetiske beslutninger stå åbne; et produktionsoplæg bør angive de detaljer og placeringer, der betyder noget. De direkte genererings- og redigeringsforløb tillader prompts på op til 32.000 tegn og ét til ti resultater, så nogle få variationer kan sammenlignes mod samme formål.
Redigering kan omfatte op til seksten referencebilleder. Giv hver reference en klar rolle frem for at forvente, at modellen afgør, om et billede repræsenterer motivets identitet, omgivelser eller stil. En maske kan guide en ændring af et område; med flere billeder gælder den for det første. Billedet og masken skal have samme format og dimensioner, og masken skal indeholde en alfakanal. Vejledningen kræver, at kilden og masken er under 50 MB. En maske er vejledning frem for et løfte om præcis bevarelse af grænsen, så angiv både den ønskede ændring og det, der skal forblive genkendeligt.
Flare understøtter low, medium, high, xhigh, max og automatisk kvalitet, med auto som standard. Lavere kvalitet kan bruges til et hurtigt visuelt udkast; højere indstillinger kan sammenlignes for detaljerne i et endeligt aktiv. Kvalitet er uafhængig af størrelse og outputkomprimering. Standardstørrelser omfatter 1024 × 1024, 1536 × 1024 og 1024 × 1536, og automatiske eller brugerdefinerede dimensioner er også tilgængelige. Vælg orienteringen efter den endelige placering og scenens nyttige plads.
Brugerdefineret bredde og højde skal være multipla af seksten, og ingen kant må være over 3840 pixels. Det tilladte forhold går fra 1:3 til 3:1, og det samlede areal skal være mindst 655.360 og højst 8.294.400 pixels. Alle fire betingelser gælder samtidig. Vejledningen angiver opløsninger over 2560 × 1440 som eksperimentelle. Brug en gyldig ramme, der passer til kompositionen, og medtag detaljer, der er følsomme over for beskæring, i oplægget frem for at behandle større opløsning som en automatisk layoutforbedring.
Resultatformatet er som standard PNG med JPEG og WebP som alternativer. JPEG og WebP tillader komprimering fra 0 til 100. Til en gennemsigtig baggrund skal du vælge PNG eller WebP; uigennemsigtige og automatiske baggrunde understøttes også. Et gennemsigtigt aktiv kan placeres i et senere layout, mens et uigennemsigtigt billede omfatter sin egen baggrund. Vælg format, baggrund og komprimering efter det faktiske leveringsbehov, og gem den færdige fil sammen med oplægget og de valgte indstillinger.
Producenten dokumenterer direkte billedgenerering og redigering samt et samtalebaseret billedværktøj, der kan gemme valgte resultater til opfølgende ændringer. I dette forløb kan handlingen være automatisk, tvungen generering eller tvungen redigering, når et billede indgår i konteksten. Streaming kan vise op til tre delvise billeder før det endelige resultat. Disse forhåndsvisninger viser fremskridt frem for yderligere færdige leverancer. Ved trinvist arbejde skal du fortsætte fra det valgte billede og beskrive en synlig ændring, såsom at flytte ét objekt eller justere farvebehandlingen. Producentens grænseflade understøtter også batchbehandling.
Efterse billedets tekst, objekternes placering, motivdetaljer og komposition i den tilsigtede størrelse. GPT Image kan stadig have svært ved præcis tekstplacering, strukturerede layouts og gentagen visuel identitet på tværs af genereringer. Behold en accepteret variation som næste reference, og afgræns den følgende redigering til det relevante problem. Flares rolle i daglig generering er nyttig til en klar sekvens af oplæg, visuelle alternativer, udvælgelse og forbedring, hvor det endelige aktiv vurderes mod det faktiske kreative formål.
Ailoot · Billeder POST /v1/images/generations gpt-image-2.5-flare
gpt-image-2.5-flareStart
GPT Image 2.5 Flare genererer og redigerer billeder ud fra tekst og referencer med fokus på hurtig visuel produktion til daglig brug. Den understøtter brugerdefinerede størrelser, gennemsigtige baggrunde, masker og kvalitetsniveauer op til max til udkast, illustrationer og kampagnemateriale.
- Accepterede input
- Tekst
- Resultater
- Billeder
Tilgængelig i Ailoot · input og metoder
Ailoot · Billeder POST /v1/images/generations
- Inputtyper
text- Outputtyper
image- Outputformat
- Billedfil
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser gpt-image-2.5-flare | Standard— |
Feltprompt | Typestring | KravPåkrævet | Værdier og grænser Minimumslængde: 1 | Standard— |
Feltn | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 1 | Standard1 |
Feltresponse_format | Typestring | KravValgfrit | Værdier og grænser url, b64_json | Standard— |
Feltstream | Typeboolean | KravValgfrit | Værdier og grænser | Standardfalse |
Feltsize | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltquality | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltbackground | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltoutput_format | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltoutput_compression | Typeinteger | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltmoderation | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltinput_fidelity | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltstyle | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltpartial_images | Typeinteger | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Kombinationer af inputmaterialer
Tekst til billede · Påkrævet: prompt
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametermaterial_types | Kontrakttext |
Parameterrequired | Kontraktmodel, prompt |
Parameteroptional_controls | Kontraktnull |
Parametercontent_type | Kontraktapplication/json |
Livscyklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · det faktisk returnerede task_id eller posten i mediebiblioteket
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Metodernes strukturer og ID’er er præcise; leverandørens muligheder er adskilt fra adgangstilladelse.
Priser
Ailoot-metodetakster
POST /v1/images/generations- Tekstinput
- 0,005 US$ / 1K
- Input, billede
- 0,008 US$ / 1K tokens
- Output, billede
- 0,03 US$ / 1K tokens
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot · Billeder
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");
Hent og gem resultater
Ailoot · Billeder
Hent hvert returneret billede, eller gem dets Base64-indhold
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Behold alle færdige resultater
Gem hvert færdigt billede; hent hver returneret URL eller afkod dets Base64-indhold.
Gem hvert dataelement. Afkod hver b64_json, eller hent hver returneret signeret URL. Vælg filtypenavnet ud fra den faktiske MIME-type eller de faktiske bytes.
Hvis det oprindelige svar skal kontrolleres
Hvis resultatet af en billedgenerering eller -redigering skal kontrolleres, skal du gemme det oprindelige operation_id/X-Client-Request-ID og de returnerede resultatoplysninger. Hent eksisterende resultater, som du ejer, via mediebiblioteket med de faktiske task_id- eller asset_id-værdier. Send ikke anmodningen om generering/redigering igen, og opbyg ikke en polling-URL ud fra operation_id.
Svarfelter
| Felt | Type |
|---|---|
Feltcreated | Typeinteger |
Feltdata[].url | Typestring |
Feltdata[].b64_json | Typebase64 string |
Feltusage | Typeobject |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
Svarserver_error | BetingelseDet returnerede svar angiver, at operationen eller resultatet skal kontrolleres | Næste trinGem det oprindeligt returnerede operations-/opgave-ID, anmodningens headere og svaret; fortsæt med de understøttede læseanmodninger for den oprindelige operation. Send ikke oprettelsesanmodningen igen. |
Aliaser
Modelaliaser
Ailoot gpt-image-2.5-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare
Aliaser for metodestier
/v1/images
Relaterede kalder-ID’er
openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare
Ailoot Ultra · Billeder POST /v1/images/generations gpt-image-2.5-flare
gpt-image-2.5-flaregpt-image-2.5-flareopenai/gpt-image-2.5-flare
Start
GPT Image 2.5 Flare genererer og redigerer billeder ud fra tekst og referencer med fokus på hurtig visuel produktion til daglig brug. Den understøtter brugerdefinerede størrelser, gennemsigtige baggrunde, masker og kvalitetsniveauer op til max til udkast, illustrationer og kampagnemateriale.
- Accepterede input
- Tekst
- Resultater
- Billeder
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · Billeder POST /v1/images/generations
- Inputtyper
text- Outputtyper
image
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser gpt-image-2.5-flare | Standard— |
Feltprompt | Typestring | KravPåkrævet | Værdier og grænser Maksimal længde: 32.000 | Standard— |
Feltsize | Typestring | KravValgfrit | Værdier og grænser Betingelser: Brug auto eller WIDTHxHEIGHT, hvor begge dimensioner er delelige med 16. Den længste side må højst være 3,840 pixels, og den samlede størrelse må højst være 8,300,000 pixels. | Standardauto |
Feltbackground | Typestring | KravValgfrit | Værdier og grænser transparent, opaque, auto | Standardauto |
Feltmoderation | Typestring | KravValgfrit | Værdier og grænser low, auto Betingelser: Brug auto til standardmoderation af indhold. | Standard— |
Feltn | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 1 Maksimum: 10 | Standard1 |
Feltquality | Typestring | KravValgfrit | Værdier og grænser auto, high, medium, low | Standardauto |
Feltoutput_compression | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 0 Maksimum: 100 Betingelser: Gælder for JPEG- og WebP-output; send den dokumenterede heltalsværdi. | Standard100 |
Feltoutput_format | Typestring | KravValgfrit | Værdier og grænser webp, png, jpeg | Standardpng |
Feltstream | Typeboolean | KravValgfrit | Værdier og grænser false Betingelser: Denne rute returnerer ét færdigt JSON-svar. | Standardfalse |
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktprompt, model |
Parametermaterial_types | Kontrakttext |
Parameteroptional | Kontraktsize, background, moderation, n, quality, output_compression, output_format, stream |
Parameterconditions | KontraktEn gennemsigtig baggrund kræver PNG eller WebP., Outputkomprimering gælder for JPEG eller WebP., Den valgte metode genererer ud fra tekst. De redigerings- og streamingparametre, der er beskrevet for producenten, er separate funktioner. |
Livscyklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · det faktisk returnerede task_id eller posten i mediebiblioteket
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Priser
Sådan beregnes det endelige beløb
De viste satser bruges til at anslå omkostningen før genereringen. Det endelige beløb beregnes ud fra den registrerede omkostning for den oprindelige generering. Den målte varighed af outputtet og de anslåede mængder er ikke den endelige fakturerbare mængde.
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Estimerede takster til sammenligning
Priser efter konfiguration
Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.
| Konfiguration | Takstplan | Forventet mængde | Beløb |
|---|---|---|---|
| KonfigurationGrundpriser for tokens | TakstplanGrundtakst | Forventet mængde— | Beløb Input · Inputtokens · Estimat kun til sammenligning — / 1K tokens Output · Outputtokens · Estimat kun til sammenligning — / 1K tokens Input · Cachelæsning · Estimat kun til sammenligning — / 1K tokens Input · Cacheskrivning · Estimat kun til sammenligning — / 1K tokens Input · Cacheskrivning, 1 time · Estimat kun til sammenligning — / 1K tokens |
| KonfigurationAnslået genereringsomkostning | Takstplan— | Forventet mængdeestimat for én generering | Beløb Output · Anslået genereringsomkostning · Estimat kun til sammenligning $0.24576 estimat før generering Dette estimat er hverken et ekstra gebyr eller en fast pris for den færdige generering. |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot Ultra · Billeder
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
Hent og gem resultater
Ailoot Ultra · Billeder
Hent hvert returneret billede, eller gem dets Base64-indhold
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Læsning af andet indhold
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.
Behold alle færdige resultater
Gem hvert færdigt billede; hent hver returneret URL eller afkod dets Base64-indhold.
Gem hele svaret og alle headere, alle faktisk returnerede output, de oprindeligt returnerede identifikatorer og alle felter med forbrugsdata. Gendan den oprindelige operation uden at sende oprettelsesanmodningen igen.
Hvis det oprindelige svar skal kontrolleres
Gem det returnerede X-Client-Request-ID til afstemning. Brug kun faktisk returnerede task_id/asset_id-værdier eller dit eget mediebibliotek til læseanmodninger; opbyg aldrig en opgave-URL ud fra operations-ID’et, og send aldrig oprettelsesanmodningen igen.
Svarfelter
| Felt | Type |
|---|---|
Feltcreated | Type |
Feltdata[].url | Type |
Feltdata[].b64_json | Type |
Feltusage | Type |
Aliaser
Modelaliaser
Ailoot gpt-image-2.5-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare
Aliaser for metodestier
/v1/images
Relaterede kalder-ID’er
openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare
Ailoot Ultra · Billeder POST /v1/images/generations openai/gpt-image-2.5-flare
openai/gpt-image-2.5-flaregpt-image-2.5-flareopenai/gpt-image-2.5-flare
Start
GPT Image 2.5 Flare genererer og redigerer billeder ud fra tekst og referencer med fokus på hurtig visuel produktion til daglig brug. Den understøtter brugerdefinerede størrelser, gennemsigtige baggrunde, masker og kvalitetsniveauer op til max til udkast, illustrationer og kampagnemateriale.
- Accepterede input
- Tekst · Billeder
- Resultater
- Billeder
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · Billeder POST /v1/images/generations
- Inputtyper
text,image- Outputtyper
image
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser openai/gpt-image-2.5-flare | Standard— |
Feltprompt | Typestring | KravPåkrævet | Værdier og grænser Minimumslængde: 1 | Standard— |
Feltaspect_ratio | Typestring | KravValgfrit | Værdier og grænser 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto | Standard— |
Feltquality | Typestring | KravValgfrit | Værdier og grænser auto, low, medium, high, xhigh, max | Standard— |
Feltbackground | Typestring | KravValgfrit | Værdier og grænser auto, transparent, opaque | Standard— |
Feltn | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 1 Maksimum: 10 | Standard— |
Feltinput_references | Typearray | KravValgfrit | Værdier og grænser Minimumsantal elementer: 0 Maksimalt antal elementer: 16 | Standard— |
Feltoutput_compression | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 0 Maksimum: 100 | Standard— |
Feltprovider | Typeobject | KravValgfrit | Værdier og grænser | Standard— |
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktmodel, prompt |
Parametermaterial_types | Kontrakttext, image |
Livscyklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · det faktisk returnerede task_id eller posten i mediebiblioteket
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Priser
Sådan beregnes det endelige beløb
De viste satser bruges til at anslå omkostningen før genereringen. Det endelige beløb beregnes ud fra den registrerede omkostning for den oprindelige generering. Den målte varighed af outputtet og de anslåede mængder er ikke den endelige fakturerbare mængde.
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Estimerede takster til sammenligning
Priser efter konfiguration
Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.
| Konfiguration | Takstplan | Forventet mængde | Beløb |
|---|---|---|---|
| KonfigurationGrundpriser for tokens | TakstplanGrundtakst | Forventet mængde— | Beløb Input · Inputtokens · Estimat kun til sammenligning — / 1K tokens Output · Outputtokens · Estimat kun til sammenligning — / 1K tokens Input · Cachelæsning · Estimat kun til sammenligning — / 1K tokens Input · Cacheskrivning · Estimat kun til sammenligning — / 1K tokens Input · Cacheskrivning, 1 time · Estimat kun til sammenligning — / 1K tokens |
| KonfigurationAnslået genereringsomkostning | Takstplan— | Forventet mængdeestimat for én generering | Beløb Output · Anslået genereringsomkostning · Estimat kun til sammenligning $0.24576 estimat før generering Dette estimat er hverken et ekstra gebyr eller en fast pris for den færdige generering. |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot Ultra · Billeder
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
Hent og gem resultater
Ailoot Ultra · Billeder
Hent hvert returneret billede, eller gem dets Base64-indhold
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Læsning af andet indhold
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.
Behold alle færdige resultater
Gem hvert færdigt billede; hent hver returneret URL eller afkod dets Base64-indhold.
Gem hele svaret og alle headere, alle faktisk returnerede output, de oprindeligt returnerede identifikatorer og alle felter med forbrugsdata. Gendan den oprindelige operation uden at sende oprettelsesanmodningen igen.
Hvis det oprindelige svar skal kontrolleres
Gem det returnerede X-Client-Request-ID til afstemning. Brug kun faktisk returnerede task_id/asset_id-værdier eller dit eget mediebibliotek til læseanmodninger; opbyg aldrig en opgave-URL ud fra operations-ID’et, og send aldrig oprettelsesanmodningen igen.
Svarfelter
| Felt | Type |
|---|---|
Feltcreated | Type |
Feltdata[].url | Type |
Feltdata[].b64_json | Type |
Feltusage | Type |
Aliaser
Modelaliaser
Ailoot gpt-image-2.5-flare
Ailoot Ultra gpt-image-2.5-flare, openai/gpt-image-2.5-flare
Aliaser for metodestier
/v1/images
Relaterede kalder-ID’er
openai/gpt-image-2.5-flare, gpt-image-2.5-flare, gpt-image-2.5-flare
FAQ · OpenAI: GPT Image 2.5 Flare
- Hvilke input og resultater er tilgængelige?
POST /v1/images/generations·gpt-image-2.5-flare:text→imagePOST /v1/images/generations·gpt-image-2.5-flare:text→imagePOST /v1/images/generations·openai/gpt-image-2.5-flare:text,image→image- Hvilke felter bruger anmodningen?
POST /v1/images/generations·gpt-image-2.5-flare:model,prompt,n,response_format,streamPOST /v1/images/generations·gpt-image-2.5-flare:model,prompt,size,background,moderation,n,quality,output_compression,output_format,streamPOST /v1/images/generations·openai/gpt-image-2.5-flare:model,prompt,aspect_ratio,quality,background,n,input_references,output_compression,provider- Hvilke grænser gælder?
POST /v1/images/generations·gpt-image-2.5-flare:n.minimum:1POST /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:100POST /v1/images/generations·openai/gpt-image-2.5-flare:n.minimum:1;n.maximum:10;output_compression.minimum:0;output_compression.maximum:100