models

OpenAI: GPT Image 2

Markdown · JSON

OpenAI: GPT Image 2

GPT Image 2 generuoja ir redaguoja vaizdus iš teksto bei vaizdinių etalonų. Jis palaiko lanksčius kadro matmenis ir automatiškai apdoroja vaizdų įvestį dideliu tikslumu, siūlydamas atskirus galutinės medžiagos kokybės, formato ir fono valdiklius.

Apie modelį

Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.

GPT Image 2 yra OpenAI modelis vaizdams generuoti ir redaguoti iš teksto bei vaizdinės įvesties. Jis kuria naują vaizdą iš rašytinio aprašo ir gali naudoti šaltinio vaizdus redagavimui ar etalonais grindžiamam darbui. Praktinės užduotys apima iliustracijas, produktų koncepcijas, vizualines kompozicijas ir esamos medžiagos pakeitimus. Tai atskira versija nuo GPT Image 2.5 Sunburst ir Flare modelių, turinti savo kokybės diapazoną ir įvesties tikslumo elgesį.

Generavimui aprašykite objektą, sceną, kompoziciją, šviesą ir norimą stilių. Redagavimui įvardykite, kas turi keistis ir kas išlaikyti išvaizdą. Produkto aprašas gali prašyti keramikinio šviestuvo ant šviesaus paviršiaus su centruotu siluetu ir vieta užrašui; tolesnis redagavimas gali pakeisti foną, išsaugodamas šviestuvo formą ir žiūrėjimo kampą. Dokumentuotos tiesioginės generavimo ir redagavimo eigos priima iki 32 000 simbolių užklausas ir gali pateikti nuo vieno iki dešimties vaizdų.

Redagavimas pagal etalonus priima iki šešiolikos įvesties vaizdų. Nurodykite kiekvieno etalono paskirtį, kad objektas, fonas ir vizualinis apdorojimas nebūtų supainioti. GPT Image 2 automatiškai apdoroja kiekvieną vaizdo įvestį dideliu tikslumu; input_fidelity reikia praleisti, nes šioje versijoje jis nereguliuojamas. Tai skiriasi nuo GPT Image 1 high arba low pasirinkimo ir tik low įvesties tikslumo režimo GPT Image 1 Mini. Didelio tikslumo įvesties apdorojimas padeda šaltinio detalėms, bet negarantuoja, kad kiekviena detalė bus atkurta nepakeista.

Kaukė gali identifikuoti redaguojamą sritį. Šaltinio vaizdas ir kaukė turi būti to paties formato bei matmenų ir pagal vadovo paruošimo reikalavimus mažesni nei 50 MB; kaukei taip pat reikia alfa kanalo. Jei pateikti keli įvesties vaizdai, kaukė taikoma pirmajam. Modelis kaukę laiko užklausa grindžiama gaire, o ne griežta geometrine riba. Aprašykite vietinį pakeitimą ir išsaugojimo reikalavimus, tada patikrinkite aplinkinę sritį dėl netyčinių skirtumų.

GPT Image 2 palaiko low, medium, high ir auto kokybę; numatytoji – auto. 2.5 šeimos xhigh ir max nuostatos nepriklauso šios versijos kokybės diapazonui. Dydis gali būti kvadratinis, horizontalus, vertikalus, automatinis arba tinkamas individualus plotis ir aukštis. Gamintojo pavyzdžiai apima 1024 × 1024, 1536 × 1024, 1024 × 1536, 2048 × 2048, 2048 × 1152, 3840 × 2160 ir 2160 × 3840 pikselių. Orientaciją ir detalumo lygį rinkitės tikram maketui, užuot laikę kokybę bei matmenis tuo pačiu valdikliu.

Individualūs matmenys turi būti šešiolikos pikselių kartotiniai, su didžiausia 3840 pikselių kraštine, ilgosios ir trumposios kraštinių santykiu ne daugiau kaip 3:1 ir plotu nuo 655 360 iki 8 294 400 pikselių. Šios sąlygos galioja vienu metu. Didesnės nei 2560 × 1440 raiškos pažymėtos kaip eksperimentinės. Vieną taisyklę atitinkantis kadras gali pažeisti kitą, todėl pasirinkite palaikomą matmenų porą ir apraše nurodykite apkirpimui jautrius elementus.

Išvestis pagal numatymą yra PNG, taip pat galimi JPEG arba WebP. JPEG ir WebP palaikomas glaudinimas nuo 0 iki 100. Fonas gali būti nepermatomas arba automatinis; konkreti dabartinė specifikacija GPT Image 2 skaidrumą aprašo kaip bandomąją funkciją. Prašydami skaidrumo naudokite PNG arba WebP, kad būtų galima išlaikyti alfa kanalą. Dokumentuota srautinė eiga leidžia iki trijų dalinių vaizdų prieš užbaigtą vaizdą; išsaugokite galutinę medžiagą, o ne pažangos peržiūrą. Gamintojo sąsaja taip pat palaiko paketinį apdorojimą.

Tikrame rezultate įvertinkite teksto aiškumą, objektų vietą ir šaltinio detalių išsaugojimą. Modeliui GPT Image gali būti sunku tiksliai atvaizduoti raides, kurti išdėstymui jautrias kompozicijas ir išlaikyti pasikartojančią vizualinę tapatybę tarp atskirų generavimų. Redagavimų sekai pasirinktą rezultatą naudokite kaip kitą šaltinį ir pateikite konkretų pakeitimą, susietą su matomu trūkumu. Naudinga GPT Image 2 išvestis yra vaizdas, susietas su aiškiu generavimo ar redagavimo aprašu, o didelio tikslumo įvestys, matmenys ir kokybė parinkti būtent tai užduočiai.

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

gpt-image-2

OpenAI /gpt-image-2

Pradžia

GPT Image 2 generuoja ir redaguoja vaizdus iš teksto bei vaizdinių etalonų. Jis palaiko lanksčius kadro matmenis ir automatiškai apdoroja vaizdų įvestį dideliu tikslumu, siūlydamas atskirus galutinės medžiagos kokybės, formato ir fono valdiklius.

Leidžiamos įvestys
Tekstas
Rezultatai
Vaizdai

Prieinama Ailoot · įvestys ir metodai

Ailoot · Vaizdai POST /v1/images/generations
Įvestis
text
Išvestis
image
Išvesties formatas
Vaizdo failas
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
gpt-image-2
Numatyta—
LaukaspromptTipasstringReikalavimasPrivalomaReikšmės ir ribos
Mažiausias ilgis: 1
Numatyta—
LaukasnTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Numatyta1
Laukasresponse_formatTipasstringReikalavimasNeprivalomaReikšmės ir ribos
url, b64_json
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
LaukassizeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasqualityTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasbackgroundTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasoutput_formatTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasoutput_compressionTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasmoderationTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasinput_fidelityTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasstyleTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukaspartial_imagesTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Įvesties medžiagos deriniai

Iš teksto į vaizdą · Privaloma: prompt

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrasmaterial_typesSpecifikacijatext
ParametrasrequiredSpecifikacijamodel, prompt
Parametrasoptional_controlsSpecifikacijanull
Parametrascontent_typeSpecifikacijaapplication/json

Gyvavimo ciklas: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · faktiškai grąžinta task_id reikšmė arba medijos bibliotekos įrašas

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

Planai

Ailoot metodų įkainiai

Ailoot VaizdaiPOST /v1/images/generations
Tekstinė įvestis
0,0025 USD / 1K
Įvestis, vaizdas
0,004 USD / 1K tokens
Išvestis, vaizdas
0,015 USD / 1K tokens

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Užklausų pavyzdžiai

Ailoot · Vaizdai

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

Gauti ir išsaugoti rezultatus

Ailoot · Vaizdai

Atsisiųskite kiekvieną grąžintą vaizdą arba išsaugokite jo Base64 turinį

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną baigtą vaizdą; gaukite turinį iš kiekvieno grąžinto URL arba dekoduokite jo Base64 turinį.

Išsaugokite kiekvieną duomenų elementą. Iškoduokite kiekvieną b64_json arba atsisiųskite turinį pagal kiekvieną grąžintą pasirašytą URL. Failo plėtinį pasirinkite pagal faktinį MIME tipą ir baitus.

Jei reikia patikrinti pradinį atsakymą

Jei vaizdo generavimo ar redagavimo rezultatą reikia patikrinti, išsaugokite pradinį operation_id/X-Client-Request-ID ir grąžintą informaciją apie rezultatą. Atkurkite prieigą prie esamų jums priklausančių rezultatų per medijos biblioteką, naudodami faktines task_id arba asset_id reikšmes. Pakartotinai neteikite generavimo ar redagavimo užklausos ir nekurkite būsenos tikrinimo URL iš operation_id.

Atsakymo laukai
LaukasTipas
LaukascreatedTipasinteger
Laukasdata[].urlTipasstring
Laukasdata[].b64_jsonTipasbase64 string
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.
Atsakymasserver_errorSąlygaGrąžintame atsakyme nurodoma, kad operaciją arba rezultatą reikia patikrintiKitas žingsnisIšsaugokite pradinį grąžintą operacijos ar užduoties ID, užklausos antraštes ir atsakymą; toliau tikrinkite tos pačios pradinės operacijos duomenis palaikomais būdais. Kūrimo užklausos pakartotinai neteikite.

Pseudonimai

Modelių pseudonimai

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

Metodų kelių pseudonimai

/v1/images

Susiję ID iškvietimui

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

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

gpt-image-2

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

Pradžia

GPT Image 2 generuoja ir redaguoja vaizdus iš teksto bei vaizdinių etalonų. Jis palaiko lanksčius kadro matmenis ir automatiškai apdoroja vaizdų įvestį dideliu tikslumu, siūlydamas atskirus galutinės medžiagos kokybės, formato ir fono valdiklius.

Leidžiamos įvestys
Tekstas
Rezultatai
Vaizdai

Prieinama Ailoot · įvestys ir metodai

Ailoot Ultra · Vaizdai POST /v1/images/generations
Įvestis
text
Išvestis
image
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
gpt-image-2
Numatyta—
LaukaspromptTipasstringReikalavimasPrivalomaReikšmės ir ribos
Didžiausias ilgis: 32 000
Numatyta—
LaukassizeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Sąlygos: Naudokite auto arba WIDTHxHEIGHT, kai abu matmenys dalijasi iš 16. Ilgiausia kraštinė negali viršyti 3,840 pikselių, o bendras dydis – 8,300,000 pikselių.
Numatytaauto
LaukasbackgroundTipasstringReikalavimasNeprivalomaReikšmės ir ribos
transparent, opaque, auto
Numatytaauto
LaukasmoderationTipasstringReikalavimasNeprivalomaReikšmės ir ribos
low, auto
Sąlygos: Įprastam turinio moderavimui naudokite auto.
Numatyta—
LaukasnTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Didžiausia reikšmė: 10
Numatyta1
LaukasqualityTipasstringReikalavimasNeprivalomaReikšmės ir ribos
auto, high, medium, low
Numatytaauto
Laukasoutput_compressionTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 0
Didžiausia reikšmė: 100
Sąlygos: Taikoma JPEG ir WebP išvesčiai; siųskite dokumentacijoje nurodytą sveikąjį skaičių.
Numatyta100
Laukasoutput_formatTipasstringReikalavimasNeprivalomaReikšmės ir ribos
webp, png, jpeg
Numatytapng
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
false
Sąlygos: Šis maršrutas grąžina vieną užbaigtą JSON atsakymą.
Numatytafalse
Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrascontent_typeSpecifikacijaapplication/json
ParametrasrequiredSpecifikacijaprompt, model
Parametrasmaterial_typesSpecifikacijatext
ParametrasoptionalSpecifikacijasize, background, moderation, n, quality, output_compression, output_format, stream
ParametrasconditionsSpecifikacijaSkaidriam fonui reikia PNG arba WebP., Išvesties glaudinimas taikomas JPEG arba WebP., Pasirinktas metodas generuoja iš teksto. Gamintojo aprašyti redagavimo ir srautinės išvesties valdikliai yra atskiros galimybės.

Gyvavimo ciklas: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · faktiškai grąžinta task_id reikšmė arba medijos bibliotekos įrašas

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Planai

Kaip apskaičiuojamas galutinis mokestis

Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas
Nenurodyta Pasirinkus spartųjį režimą
Flex režimas
Nenurodyta Pasirinkus flex režimą
Didžiausios samprotavimo pastangos
Nenurodyta Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Numatomi įkainiai palyginimui

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėNumatomas kiekisMokestis
KonfigūracijaBaziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisNumatomas kiekis—Mokestis
Įvestis · Įvesties tokenai · Įvertis tik palyginimui — / 1K tokenų
Išvestis · Išvesties tokenai · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Talpyklos skaitymas · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Rašymas į talpyklą · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val · Įvertis tik palyginimui — / 1K tokenų
KonfigūracijaNumatoma generavimo kainaĮkainių lentelė—Numatomas kiekisvieno generavimo įvertisMokestis
Išvestis · Numatoma generavimo kaina · Įvertis tik palyginimui $0.24576 įvertis prieš generavimą

Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Užklausų pavyzdžiai

Ailoot Ultra · Vaizdai

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

Gauti ir išsaugoti rezultatus

Ailoot Ultra · Vaizdai

Atsisiųskite kiekvieną grąžintą vaizdą arba išsaugokite jo Base64 turinį

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Kito turinio skaitymas
Skaityti esamą jums priklausančią medžiagą
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.
Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną baigtą vaizdą; gaukite turinį iš kiekvieno grąžinto URL arba dekoduokite jo Base64 turinį.

Išsaugokite visą atsakymą ir antraštes, visus faktiškai gautus rezultatus, pradinius grąžintus identifikatorius ir visus naudojimo apskaitos laukus. Atkurkite prieigą prie pradinės operacijos pakartotinai neteikdami kūrimo užklausos.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite grąžintą X-Client-Request-ID duomenims sutikrinti. Tikrinkite tik faktiškai grąžintas task_id/asset_id reikšmes arba jums priklausančią medijos biblioteką; niekada nekurkite užduoties URL iš operacijos ID ir niekada pakartotinai neteikite kūrimo užklausos.

Atsakymo laukai
LaukasTipas
LaukascreatedTipas
Laukasdata[].urlTipas
Laukasdata[].b64_jsonTipas
LaukasusageTipas

Pseudonimai

Modelių pseudonimai

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

Metodų kelių pseudonimai

/v1/images

Susiję ID iškvietimui

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

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

openai/gpt-image-2

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

Pradžia

GPT Image 2 generuoja ir redaguoja vaizdus iš teksto bei vaizdinių etalonų. Jis palaiko lanksčius kadro matmenis ir automatiškai apdoroja vaizdų įvestį dideliu tikslumu, siūlydamas atskirus galutinės medžiagos kokybės, formato ir fono valdiklius.

Leidžiamos įvestys
Tekstas · Vaizdai
Rezultatai
Vaizdai

Prieinama Ailoot · įvestys ir metodai

Ailoot Ultra · Vaizdai POST /v1/images/generations
Įvestis
text, image
Išvestis
image
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
openai/gpt-image-2
Numatyta—
LaukaspromptTipasstringReikalavimasPrivalomaReikšmės ir ribos
Mažiausias ilgis: 1
Numatyta—
Laukasaspect_ratioTipasstringReikalavimasNeprivalomaReikšmės ir ribos
1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto
Numatyta—
LaukasqualityTipasstringReikalavimasNeprivalomaReikšmės ir ribos
auto, low, medium, high
Numatyta—
LaukasbackgroundTipasstringReikalavimasNeprivalomaReikšmės ir ribos
auto, opaque
Numatyta—
LaukasnTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Didžiausia reikšmė: 10
Numatyta—
Laukasinput_referencesTipasarrayReikalavimasNeprivalomaReikšmės ir ribos
Mažiausias elementų skaičius: 0
Didžiausias elementų skaičius: 16
Numatyta—
Laukasoutput_compressionTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 0
Didžiausia reikšmė: 100
Numatyta—
LaukasproviderTipasobjectReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrascontent_typeSpecifikacijaapplication/json
ParametrasrequiredSpecifikacijamodel, prompt
Parametrasmaterial_typesSpecifikacijatext, image

Gyvavimo ciklas: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · faktiškai grąžinta task_id reikšmė arba medijos bibliotekos įrašas

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Planai

Kaip apskaičiuojamas galutinis mokestis

Rodomi įkainiai leidžia įvertinti kainą prieš generavimą. Galutinė suma apskaičiuojama pagal užfiksuotą pradinio generavimo kainą. Išmatuota rezultato trukmė ir prognozuoti kiekiai nėra galutinis apmokestinamas kiekis.

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas
Nenurodyta Pasirinkus spartųjį režimą
Flex režimas
Nenurodyta Pasirinkus flex režimą
Didžiausios samprotavimo pastangos
Nenurodyta Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Numatomi įkainiai palyginimui

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėNumatomas kiekisMokestis
KonfigūracijaBaziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisNumatomas kiekis—Mokestis
Įvestis · Įvesties tokenai · Įvertis tik palyginimui — / 1K tokenų
Išvestis · Išvesties tokenai · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Talpyklos skaitymas · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Rašymas į talpyklą · Įvertis tik palyginimui — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val · Įvertis tik palyginimui — / 1K tokenų
KonfigūracijaNumatoma generavimo kainaĮkainių lentelė—Numatomas kiekisvieno generavimo įvertisMokestis
Išvestis · Numatoma generavimo kaina · Įvertis tik palyginimui $0.24576 įvertis prieš generavimą

Šis įvertis nėra papildomas mokestis ar fiksuotas užbaigto generavimo įkainis.

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Užklausų pavyzdžiai

Ailoot Ultra · Vaizdai

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

Gauti ir išsaugoti rezultatus

Ailoot Ultra · Vaizdai

Atsisiųskite kiekvieną grąžintą vaizdą arba išsaugokite jo Base64 turinį

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Kito turinio skaitymas
Skaityti esamą jums priklausančią medžiagą
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.
Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną baigtą vaizdą; gaukite turinį iš kiekvieno grąžinto URL arba dekoduokite jo Base64 turinį.

Išsaugokite visą atsakymą ir antraštes, visus faktiškai gautus rezultatus, pradinius grąžintus identifikatorius ir visus naudojimo apskaitos laukus. Atkurkite prieigą prie pradinės operacijos pakartotinai neteikdami kūrimo užklausos.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite grąžintą X-Client-Request-ID duomenims sutikrinti. Tikrinkite tik faktiškai grąžintas task_id/asset_id reikšmes arba jums priklausančią medijos biblioteką; niekada nekurkite užduoties URL iš operacijos ID ir niekada pakartotinai neteikite kūrimo užklausos.

Atsakymo laukai
LaukasTipas
LaukascreatedTipas
Laukasdata[].urlTipas
Laukasdata[].b64_jsonTipas
LaukasusageTipas

Pseudonimai

Modelių pseudonimai

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

Metodų kelių pseudonimai

/v1/images

Susiję ID iškvietimui

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

FAQ · OpenAI: GPT Image 2
Kokios įvestys ir rezultatai prieinami?

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

Kokius laukus naudoja užklausa?

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

Kokie apribojimai taikomi?

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

Išsamiau

Prijunkite Ailoot prie Claude Code, OpenCode, Hermes arba savo programos.

Įmonė ir jos projektų portfelis

Įmonė ir jos projektų portfelis: milijonai klientų; mėnesio pardavimai siekia milijardus.

Pirkite žetonus su nuolaida.

Prenumeratos nuolaida reguliariam darbui. Kodai — iki 50% žetonų pirkimui.

Prenumerata
Pasirinkite planą su nuolaida reguliarioms užklausoms.
Nuolaidos kodas iki 50%
Įveskite kodą perkant. Kaina perskaičiuojama pagal galiojančios akcijos sąlygas.
Išlaidos istorijoje
Kiekvienai užklausai išsaugomi modelis, žetonai ir suma.

Pasirinkti prenumeratą · Peržiūrėti modelių kainas

Prijunkite API prie produkto, kurį parduodate.

SaaS, programos ir botai pagal Ailoot ofertą bei licencijos sutartį. Perpardavimui paprašykite perpardavėjo licencijos.

Komercinė programa
Teksto, vaizdų, video ir garso kūrimą integruokite į mokamas paslaugos funkcijas.
Perpardavėjo licencija
Atsiųskite projekto aprašymą ir prieigos schemą. Paprašykite rašytinių naudojimo ir perpardavimo sąlygų.
Dokumentai svetainėje
Oferta, licencijos sutartis ir duomenų tvarkymo politika prieinamos prieš prisijungiant.

Paprašyti perpardavėjo licencijos · Oferta ir licencijos sutartis