models

OpenAI: GPT Image 2

Markdown · JSON

OpenAI: GPT Image 2

GPT Image 2 genereert en bewerkt beelden op basis van tekst en visuele referenties. Het ondersteunt flexibele beeldafmetingen en verwerkt beeldinvoer automatisch met hoge getrouwheid, met afzonderlijke regelingen voor kwaliteit, formaat en achtergrond van het afgewerkte bestand.

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

GPT Image 2 is het model van OpenAI voor beeldgeneratie en -bewerking op basis van tekst en visuele invoer. Het maakt een nieuw beeld op basis van een geschreven briefing en kan bronbeelden gebruiken voor bewerkingen of werk op basis van referenties. Praktische taken omvatten illustraties, productconcepten, visuele composities en wijzigingen aan een bestaand beeld. Het is een afzonderlijke editie naast GPT Image 2.5 Sunburst en Flare, met een eigen kwaliteitsbereik en gedrag voor invoergetrouwheid.

Beschrijf voor generatie het onderwerp, de scène, compositie, het licht en de beoogde stijl. Benoem bij een bewerking wat moet veranderen en wat zijn uiterlijk moet behouden. Een productbriefing kan een keramische lamp op een bleek oppervlak vragen, met een gecentreerd silhouet en ruimte voor een bijschrift; een vervolgbewerking kan de achtergrond veranderen met behoud van de vorm en kijkhoek van de lamp. De gedocumenteerde directe generatie- en bewerkingsworkflows aanvaarden prompts tot 32.000 tekens en kunnen één tot tien beelden opleveren.

Bewerking met referenties aanvaardt maximaal zestien invoerbeelden. Geef het doel van elke referentie op, zodat een onderwerp, achtergrond en visuele uitwerking niet door elkaar worden gehaald. GPT Image 2 verwerkt elk invoerbeeld automatisch met hoge getrouwheid; input_fidelity moet worden weggelaten omdat die voor deze editie niet instelbaar is. Dit verschilt van de keuze high of low bij GPT Image 1 en de invoergetrouwheidsmodus met alleen low van GPT Image 1 Mini. Invoerverwerking met hoge getrouwheid ondersteunt brondetails zonder te garanderen dat elk detail ongewijzigd wordt gereproduceerd.

Een masker kan het te bewerken gebied aanduiden. Volgens de voorbereidingsvereisten van de handleiding moeten bronbeeld en masker hetzelfde formaat en dezelfde afmetingen hebben en kleiner zijn dan 50 MB; het masker heeft ook een alfakanaal nodig. Als meerdere invoerbeelden worden aangeleverd, geldt het masker voor het eerste. Het model behandelt het masker als promptgestuurde richtlijn, niet als een strikte geometrische grens. Beschrijf de lokale wijziging en vereisten voor behoud en controleer daarna het omliggende gebied op onbedoelde verschillen.

GPT Image 2 ondersteunt de kwaliteit low, medium, high en auto, met auto als standaard. De instellingen xhigh en max van de 2.5-familie behoren niet tot het kwaliteitsbereik van deze editie. Het formaat kan vierkant, liggend, staand, automatisch of een geldige aangepaste breedte en hoogte zijn. De voorbeelden van de producent omvatten 1.024 × 1.024, 1.536 × 1.024, 1.024 × 1.536, 2.048 × 2.048, 2.048 × 1.152, 3.840 × 2.160 en 2.160 × 3.840 pixels. Kies de oriëntatie en het detailniveau voor de daadwerkelijke lay-out, in plaats van kwaliteit en afmetingen als dezelfde regeling te beschouwen.

Aangepaste afmetingen moeten veelvouden van zestien pixels zijn, met een maximale zijde van 3.840 pixels, een verhouding tussen de lange en korte zijde van maximaal 3:1 en een oppervlakte van 655.360 tot 8.294.400 pixels. Deze voorwaarden gelden tegelijk. Resoluties boven 2.560 × 1.440 zijn als experimenteel gemarkeerd. Een kader dat aan één regel voldoet, kan nog steeds tegen een andere ingaan. Kies dus een ondersteund paar afmetingen en beschrijf de elementen die gevoelig zijn voor uitsnijden in de briefing.

De uitvoer is standaard PNG; JPEG of WebP is ook beschikbaar. Compressie van 0 tot 100 wordt ondersteund voor JPEG en WebP. De achtergrond kan ondoorzichtig of automatisch zijn; de specifieke huidige referentie beschrijft transparantie voor GPT Image 2 als een previewmogelijkheid. Gebruik bij het aanvragen van transparantie PNG of WebP, zodat een alfakanaal kan worden behouden. De gedocumenteerde streamingworkflow laat maximaal drie gedeeltelijke beelden toe vóór het afgewerkte beeld; bewaar het eindbestand en geen voortgangsvoorvertoning. De interface van de fabrikant ondersteunt ook batchverwerking.

Beoordeel teksthelderheid, de positie van objecten en het behoud van brondetails in het werkelijke resultaat. GPT Image kan moeite hebben met nauwkeurige belettering, lay-outgevoelige composities en terugkerende visuele identiteit over afzonderlijke generaties heen. Gebruik voor een reeks bewerkingen het gekozen resultaat als volgende bron en geef een concrete wijziging die bij een zichtbaar probleem hoort. De bruikbare uitvoer van GPT Image 2 is een beeld dat verbonden is met een duidelijke generatie- of bewerkingsbriefing, met invoer met hoge getrouwheid, afmetingen en kwaliteit die voor die specifieke taak zijn gekozen.

Ailoot · Afbeeldingen POST /v1/images/generations gpt-image-2

gpt-image-2

OpenAI /gpt-image-2

Aan de slag

GPT Image 2 genereert en bewerkt beelden op basis van tekst en visuele referenties. Het ondersteunt flexibele beeldafmetingen en verwerkt beeldinvoer automatisch met hoge getrouwheid, met afzonderlijke regelingen voor kwaliteit, formaat en achtergrond van het afgewerkte bestand.

Toegestane invoer
Tekst
Resultaten
Afbeeldingen

Beschikbaar in Ailoot · invoer en methoden

Ailoot · Afbeeldingen POST /v1/images/generations
Invoer
text
Uitvoer
image
Uitvoerformaat
Afbeeldingsbestand
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
gpt-image-2
Standaard—
VeldpromptTypestringVereisteVereistWaarden en limieten
Minimumlengte: 1
Standaard—
VeldnTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Standaard1
Veldresponse_formatTypestringVereisteOptioneelWaarden en limieten
url, b64_json
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
VeldsizeTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldqualityTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldbackgroundTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldoutput_formatTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldoutput_compressionTypeintegerVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldmoderationTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldinput_fidelityTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldstyleTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldpartial_imagesTypeintegerVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Combinaties van invoermaterialen

Tekst naar afbeelding · Vereist: prompt

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext
ParameterrequiredContractmodel, prompt
Parameteroptional_controlsContractnull
Parametercontent_typeContractapplication/json

Levenscyclus: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · daadwerkelijk teruggegeven task_id of record in de mediabibliotheek

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating.

Tarieven

Ailoot-methodetarieven

Ailoot AfbeeldingenPOST /v1/images/generations
Tekstinvoer
US$ 0,0025 / 1K
Invoer, afbeelding
US$ 0,004 / 1K tokens
Uitvoer, afbeelding
US$ 0,015 / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot · Afbeeldingen

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

Resultaten ophalen en opslaan

Ailoot · Afbeeldingen

Download elke teruggegeven afbeelding of sla de Base64-inhoud ervan op

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Alle voltooide resultaten bewaren

Sla elke voltooide afbeelding op; haal elke teruggegeven URL op of decodeer de bijbehorende Base64-inhoud.

Sla elk gegevensitem op. Decodeer elke b64_json of haal elke teruggegeven ondertekende URL op. Kies een bestandsextensie op basis van de daadwerkelijke MIME/bytes.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Als het resultaat van een afbeeldingsgeneratie of -bewerking gecontroleerd moet worden, bewaar dan de oorspronkelijke operation_id/X-Client-Request-ID en de teruggegeven resultaatinformatie. Haal bestaande eigen resultaten terug via de mediabibliotheek met daadwerkelijk teruggegeven task_id- of asset_id-waarden. Dien de generatie- of bewerkingsaanvraag niet opnieuw in en stel geen polling-URL samen op basis van operation_id.

Antwoordvelden
VeldType
VeldcreatedTypeinteger
Velddata[].urlTypestring
Velddata[].b64_jsonTypebase64 string
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.
Antwoordserver_errorVoorwaardeDe teruggegeven respons geeft aan dat de bewerking of het resultaat gecontroleerd moet wordenVolgende stapBewaar de oorspronkelijk teruggegeven bewerkings-/taak-ID, aanvraagheaders en respons; blijf de oorspronkelijke bewerking uitlezen via de ondersteunde leesaanvragen. Dien de aanmaakaanvraag niet opnieuw in.

Aliasnamen

Modelaliasnamen

Ailoot gpt-image-2
Ailoot Ultra gpt-image-2, openai/gpt-image-2

Aliasnamen voor methodepaden

/v1/images

Gerelateerde aanroeper-ID’s

openai/gpt-image-2, gpt-image-2, gpt-image-2

Ailoot Ultra · Afbeeldingen POST /v1/images/generations gpt-image-2

gpt-image-2

OpenAI /gpt-image-2
Model-ID
  • gpt-image-2
  • openai/gpt-image-2

Aan de slag

GPT Image 2 genereert en bewerkt beelden op basis van tekst en visuele referenties. Het ondersteunt flexibele beeldafmetingen en verwerkt beeldinvoer automatisch met hoge getrouwheid, met afzonderlijke regelingen voor kwaliteit, formaat en achtergrond van het afgewerkte bestand.

Toegestane invoer
Tekst
Resultaten
Afbeeldingen

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Afbeeldingen POST /v1/images/generations
Invoer
text
Uitvoer
image
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
gpt-image-2
Standaard—
VeldpromptTypestringVereisteVereistWaarden en limieten
Maximumlengte: 32.000
Standaard—
VeldsizeTypestringVereisteOptioneelWaarden en limieten
Voorwaarden: Gebruik auto of WIDTHxHEIGHT met beide afmetingen deelbaar door 16. De langste zijde bedraagt hoogstens 3,840 pixels en de totale grootte hoogstens 8,300,000 pixels.
Standaardauto
VeldbackgroundTypestringVereisteOptioneelWaarden en limieten
transparent, opaque, auto
Standaardauto
VeldmoderationTypestringVereisteOptioneelWaarden en limieten
low, auto
Voorwaarden: Gebruik auto voor standaardmoderatie van inhoud.
Standaard—
VeldnTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Maximum: 10
Standaard1
VeldqualityTypestringVereisteOptioneelWaarden en limieten
auto, high, medium, low
Standaardauto
Veldoutput_compressionTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 0
Maximum: 100
Voorwaarden: Geldt voor JPEG- en WebP-uitvoer; verstuur de gedocumenteerde gehele waarde.
Standaard100
Veldoutput_formatTypestringVereisteOptioneelWaarden en limieten
webp, png, jpeg
Standaardpng
VeldstreamTypebooleanVereisteOptioneelWaarden en limieten
false
Voorwaarden: Deze route geeft één volledig JSON-antwoord terug.
Standaardfalse
Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractprompt, model
Parametermaterial_typesContracttext
ParameteroptionalContractsize, background, moderation, n, quality, output_compression, output_format, stream
ParameterconditionsContractVoor een transparante achtergrond is PNG of WebP vereist., Uitvoercompressie geldt voor JPEG of WebP., De geselecteerde methode genereert op basis van tekst. De bewerkings- en streamingopties die voor de fabrikant worden beschreven, zijn afzonderlijke mogelijkheden.

Levenscyclus: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · daadwerkelijk teruggegeven task_id of record in de mediabibliotheek

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Tarieven

Zo worden de uiteindelijke kosten berekend

De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen niet de definitieve factureerbare hoeveelheid.

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Niet opgegeven Wanneer de snelle modus geselecteerd is
Flex-modus
Niet opgegeven Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt

Geschatte tarieven ter vergelijking

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelVerwachte hoeveelheidKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefVerwachte hoeveelheid—Kosten
Invoer · Invoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens
Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens
Invoer · Cache lezen · Schatting uitsluitend ter vergelijking — / 1K tokens
Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking — / 1K tokens
Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking — / 1K tokens
ConfiguratieGeschatte generatiekostenTariefstaffel—Verwachte hoeveelheidschatting voor één generatieKosten
Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking $0.24576 schatting vóór generatie

Deze raming is geen extra kost of vast tarief voor de voltooide generatie.

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Afbeeldingen

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', '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

Resultaten ophalen en opslaan

Ailoot Ultra · Afbeeldingen

Download elke teruggegeven afbeelding of sla de Base64-inhoud ervan op

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Lezen van andere inhoud
Bestaande eigen bestanden ophalen
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.
Alle voltooide resultaten bewaren

Sla elke voltooide afbeelding op; haal elke teruggegeven URL op of decodeer de bijbehorende Base64-inhoud.

Bewaar de volledige respons en headers, iedere daadwerkelijke uitvoer, de oorspronkelijk teruggegeven identificatoren en alle verbruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar de teruggegeven X-Client-Request-ID voor de reconciliatie. Lees uitsluitend daadwerkelijk teruggegeven task_id/asset_id-waarden of de eigen mediabibliotheek uit; bouw nooit een taak-URL op basis van de bewerkings-ID en dien de aanmaakaanvraag nooit opnieuw in.

Antwoordvelden
VeldType
VeldcreatedType
Velddata[].urlType
Velddata[].b64_jsonType
VeldusageType

Aliasnamen

Modelaliasnamen

Ailoot gpt-image-2
Ailoot Ultra gpt-image-2, openai/gpt-image-2

Aliasnamen voor methodepaden

/v1/images

Gerelateerde aanroeper-ID’s

openai/gpt-image-2, gpt-image-2, gpt-image-2

Ailoot Ultra · Afbeeldingen POST /v1/images/generations openai/gpt-image-2

openai/gpt-image-2

OpenAI /openai/gpt-image-2
Model-ID
  • gpt-image-2
  • openai/gpt-image-2

Aan de slag

GPT Image 2 genereert en bewerkt beelden op basis van tekst en visuele referenties. Het ondersteunt flexibele beeldafmetingen en verwerkt beeldinvoer automatisch met hoge getrouwheid, met afzonderlijke regelingen voor kwaliteit, formaat en achtergrond van het afgewerkte bestand.

Toegestane invoer
Tekst · Afbeeldingen
Resultaten
Afbeeldingen

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Afbeeldingen POST /v1/images/generations
Invoer
text, image
Uitvoer
image
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
openai/gpt-image-2
Standaard—
VeldpromptTypestringVereisteVereistWaarden en limieten
Minimumlengte: 1
Standaard—
Veldaspect_ratioTypestringVereisteOptioneelWaarden en limieten
1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto
Standaard—
VeldqualityTypestringVereisteOptioneelWaarden en limieten
auto, low, medium, high
Standaard—
VeldbackgroundTypestringVereisteOptioneelWaarden en limieten
auto, opaque
Standaard—
VeldnTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Maximum: 10
Standaard—
Veldinput_referencesTypearrayVereisteOptioneelWaarden en limieten
Minimumaantal items: 0
Maximumaantal items: 16
Standaard—
Veldoutput_compressionTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 0
Maximum: 100
Standaard—
VeldproviderTypeobjectVereisteOptioneelWaarden en limietenStandaard—
Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, prompt
Parametermaterial_typesContracttext, image

Levenscyclus: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · daadwerkelijk teruggegeven task_id of record in de mediabibliotheek

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Tarieven

Zo worden de uiteindelijke kosten berekend

De getoonde tarieven ramen de kosten vóór de generatie. De definitieve kosten worden berekend op basis van de kosten die voor de oorspronkelijke generatie zijn geregistreerd. De gemeten duur van het gegenereerde resultaat en de geraamde hoeveelheden vormen niet de definitieve factureerbare hoeveelheid.

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Niet opgegeven Wanneer de snelle modus geselecteerd is
Flex-modus
Niet opgegeven Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Niet opgegeven Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt

Geschatte tarieven ter vergelijking

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelVerwachte hoeveelheidKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefVerwachte hoeveelheid—Kosten
Invoer · Invoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens
Uitvoer · Uitvoertokens · Schatting uitsluitend ter vergelijking — / 1K tokens
Invoer · Cache lezen · Schatting uitsluitend ter vergelijking — / 1K tokens
Invoer · Cache schrijven · Schatting uitsluitend ter vergelijking — / 1K tokens
Invoer · Cache schrijven, 1 uur · Schatting uitsluitend ter vergelijking — / 1K tokens
ConfiguratieGeschatte generatiekostenTariefstaffel—Verwachte hoeveelheidschatting voor één generatieKosten
Uitvoer · Geschatte generatiekosten · Schatting uitsluitend ter vergelijking $0.24576 schatting vóór generatie

Deze raming is geen extra kost of vast tarief voor de voltooide generatie.

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Afbeeldingen

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', '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

Resultaten ophalen en opslaan

Ailoot Ultra · Afbeeldingen

Download elke teruggegeven afbeelding of sla de Base64-inhoud ervan op

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Lezen van andere inhoud
Bestaande eigen bestanden ophalen
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.
Alle voltooide resultaten bewaren

Sla elke voltooide afbeelding op; haal elke teruggegeven URL op of decodeer de bijbehorende Base64-inhoud.

Bewaar de volledige respons en headers, iedere daadwerkelijke uitvoer, de oorspronkelijk teruggegeven identificatoren en alle verbruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar de teruggegeven X-Client-Request-ID voor de reconciliatie. Lees uitsluitend daadwerkelijk teruggegeven task_id/asset_id-waarden of de eigen mediabibliotheek uit; bouw nooit een taak-URL op basis van de bewerkings-ID en dien de aanmaakaanvraag nooit opnieuw in.

Antwoordvelden
VeldType
VeldcreatedType
Velddata[].urlType
Velddata[].b64_jsonType
VeldusageType

Aliasnamen

Modelaliasnamen

Ailoot gpt-image-2
Ailoot Ultra gpt-image-2, openai/gpt-image-2

Aliasnamen voor methodepaden

/v1/images

Gerelateerde aanroeper-ID’s

openai/gpt-image-2, gpt-image-2, gpt-image-2

FAQ · OpenAI: GPT Image 2
Welke invoer en resultaten zijn beschikbaar?

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

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

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

Welke velden gebruikt het verzoek?

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

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

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

Welke limieten gelden?

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

POST /v1/images/generations · gpt-image-2: 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: n.minimum: 1; n.maximum: 10; output_compression.minimum: 0; output_compression.maximum: 100

Meer details

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement
Kies een abonnement met korting voor je terugkerende verzoeken.
Promotiecode tot 50%
Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.
Kosten in de geschiedenis
Model, tokens en bedrag worden per verzoek bewaard.

Kies een abonnement · Bekijk modelprijzen

Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie
Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.
Resellerlicentie
Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.
Documenten op de site
Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

Vraag een resellerlicentie aan · Aanbodvoorwaarden en licentieovereenkomst