OpenAI: GPT Image 2
A GPT Image 2 szövegből és vizuális referenciákból generál és szerkeszt képeket. Rugalmas képméreteket támogat, és a képbemeneteket automatikusan nagy forráshűséggel dolgozza fel, a kész anyaghoz külön minőség-, formátum- és háttérvezérlőkkel.
- Ailoot · Képek
POST /v1/images/generationsgpt-image-2 - Ailoot Ultra · Képek
POST /v1/images/generationsgpt-image-2 - Ailoot Ultra · Képek
POST /v1/images/generationsopenai/gpt-image-2
A modellről
Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.
A GPT Image 2 az OpenAI szöveges és vizuális bemenetből történő képgenerálásra és képszerkesztésre szolgáló modellje. Írásos leírásból új képet készít, és forrásképeket használhat szerkesztéshez vagy referenciaalapú munkához. Gyakorlati feladatai közé tartoznak az illusztrációk, termékkoncepciók, vizuális kompozíciók és meglévő anyagok módosításai. A GPT Image 2.5 Sunburst és Flare modellektől különálló kiadás, saját minőségtartománnyal és bemeneti forráshűségi működéssel.
Generáláshoz írja le a témát, a jelenetet, a kompozíciót, a fényt és a kívánt stílust. Szerkesztéshez nevezze meg, minek kell megváltoznia és minek kell megőriznie a megjelenését. Termékleírás kérhet kerámialámpát halvány felületen, középre helyezett körvonallal és a képaláírásnak hagyott hellyel; egy következő szerkesztés a lámpa alakjának és nézőpontjának megtartása mellett változtathatja meg a hátteret. A dokumentált közvetlen generálási és szerkesztési munkafolyamatok legfeljebb 32 000 karakteres promptot fogadnak, és egytől tízig terjedő számú képet adhatnak vissza.
A referenciaalapú szerkesztés legfeljebb tizenhat bemeneti képet fogad. Határozza meg minden referencia célját, hogy a téma, a háttér és a vizuális megjelenítés ne keveredjen össze. A GPT Image 2 minden képbemenetet automatikusan nagy forráshűséggel dolgoz fel; az input_fidelity paramétert el kell hagyni, mert ebben a kiadásban nem állítható. Ez eltér a GPT Image 1 high vagy low választásától és a GPT Image 1 Mini kizárólag low bemeneti forráshűségi módjától. A nagy forráshűségű bemenetfeldolgozás támogatja a forrásrészleteket, de nem garantálja minden részlet változatlan reprodukálását.
Maszkkal azonosítható a szerkesztendő terület. Az útmutató előkészítési követelményei szerint a forrásképnek és a maszknak azonos formátumúnak és méretűnek, valamint 50 MB alattinak kell lennie; a maszknak alfacsatornát is kell tartalmaznia. Több bemeneti kép esetén a maszkolás az elsőre vonatkozik. A modell a maszkot promptalapú iránymutatásként kezeli, nem szigorú geometriai határként. Írja le a helyi módosítást és a megőrzési követelményeket, majd vizsgálja meg a környező területet a nem kívánt eltérések miatt.
A GPT Image 2 low, medium, high és auto minőséget támogat, alapértelmezése auto. A 2.5 család xhigh és max beállításai nem tartoznak e kiadás minőségtartományába. A méret négyzetes, fekvő, álló, automatikus vagy érvényes egyéni szélesség és magasság lehet. A gyártó példái között 1024 × 1024, 1536 × 1024, 1024 × 1536, 2048 × 2048, 2048 × 1152, 3840 × 2160 és 2160 × 3840 képpont szerepel. A tájolást és a részletszintet a tényleges elrendezéshez válassza meg, ne kezelje a minőséget és a méreteket ugyanazon vezérlőként.
Az egyéni méreteknek tizenhat képpont többszöröseinek kell lenniük, legfeljebb 3840 képpontos éllel, a hosszabb és rövidebb oldal legfeljebb 3:1 arányával és 655 360 és 8 294 400 képpont közötti területtel. Ezek a feltételek egyszerre érvényesek. A 2560 × 1440 feletti felbontások kísérletiként vannak megjelölve. Az egyik szabálynak megfelelő képméret egy másiknak még nem feltétlenül felel meg, ezért támogatott méretpárt válasszon, és a vágásra érzékeny elemeket írja le a leírásban.
A kimenet alapértelmezésben PNG, de JPEG és WebP is elérhető. JPEG-hez és WebP-hez 0 és 100 közötti tömörítés támogatott. A háttér nem átlátszó vagy automatikus lehet; a pontos jelenlegi referencia a GPT Image 2 átlátszóságát előzetes funkcióként írja le. Átlátszóság kérésekor használjon PNG-t vagy WebP-t, hogy az alfacsatorna megőrizhető legyen. A dokumentált streamelési munkafolyamat a kész kép előtt legfeljebb három részleges képet enged; a végső anyagot mentse el, ne a haladást jelző előnézetet. A gyártó felülete kötegelt feldolgozást is támogat.
A tényleges eredményen értékelje a szöveg olvashatóságát, a tárgyak helyzetét és a forrásrészletek megőrzését. A GPT Image számára nehézséget jelenthet a pontos feliratozás, az elrendezésérzékeny kompozíció és az ismétlődő vizuális azonosság külön generálások között. Szerkesztéssorozatnál a kiválasztott eredményt használja következő forrásként, és látható problémához kötött konkrét módosítást adjon meg. A GPT Image 2 használható kimenete egyértelmű generálási vagy szerkesztési leíráshoz kapcsolt kép, az adott feladathoz megválasztott nagy forráshűségű bemenetekkel, méretekkel és minőséggel.
Ailoot · Képek POST /v1/images/generations gpt-image-2
gpt-image-2Kezdő lépések
A GPT Image 2 szövegből és vizuális referenciákból generál és szerkeszt képeket. Rugalmas képméreteket támogat, és a képbemeneteket automatikusan nagy forráshűséggel dolgozza fel, a kész anyaghoz külön minőség-, formátum- és háttérvezérlőkkel.
- Elfogadott bemenetek
- Szöveg
- Eredmények
- Képek
Elérhető az Ailootban · bemenetek és metódusok
Ailoot · Képek POST /v1/images/generations
- Bemenet
text- Kimenet
image- Kimeneti formátum
- Képfájl
| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
|---|---|---|---|---|
Mezőmodel | Típusstring | KövetelményKötelező | Értékek és korlátok gpt-image-2 | Alapértelmezett— |
Mezőprompt | Típusstring | KövetelményKötelező | Értékek és korlátok Minimális hossz: 1 | Alapértelmezett— |
Mezőn | Típusinteger | KövetelményOpcionális | Értékek és korlátok Minimum: 1 | Alapértelmezett1 |
Mezőresponse_format | Típusstring | KövetelményOpcionális | Értékek és korlátok url, b64_json | Alapértelmezett— |
Mezőstream | Típusboolean | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
Mezősize | Típusstring | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Mezőquality | Típusstring | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Mezőbackground | Típusstring | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Mezőoutput_format | Típusstring | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Mezőoutput_compression | Típusinteger | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Mezőmoderation | Típusstring | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Mezőinput_fidelity | Típusstring | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Mezőstyle | Típusstring | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Mezőpartial_images | Típusinteger | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
Bemeneti anyagok kombinációi
Szövegből kép · Kötelező: prompt
Metódus paraméterei és életciklusa
| Paraméter | Szerződés |
|---|---|
Paramétermaterial_types | Szerződéstext |
Paraméterrequired | Szerződésmodel, prompt |
Paraméteroptional_controls | Szerződésnull |
Paramétercontent_type | Szerződésapplication/json |
Életciklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · A ténylegesen visszaadott task_id vagy a médiatár bejegyzése
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.
Díjcsomagok
Ailoot-metódusok díjai
POST /v1/images/generations- Szövegbemenet
- 0,0025 USD / 1K
- Bemenet, kép
- 0,004 USD / 1K tokens
- Kimenet, kép
- 0,015 USD / 1K tokens
Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. A foglalás és az elszámolás működése →
Példakérések
Ailoot · Képek
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");
Eredmények fogadása és mentése
Ailoot · Képek
Töltsön le minden visszaadott képet, vagy mentse a Base64-tartalmat
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Őrizzen meg minden elkészült eredményt
Mentsen minden elkészült képet; töltse le az összes visszaadott URL tartalmát, vagy dekódolja a Base64-tartalmat.
Mentsen minden adatelemet. Dekódoljon minden b64_json értéket, vagy töltse le minden visszaadott, aláírt URL tartalmát. A fájlnév kiterjesztését a tényleges MIME-típus/bájtok alapján válassza ki.
Ha az eredeti választ ellenőrizni kell
Ha egy képgenerálási vagy képszerkesztési eredmény ellenőrzést igényel, őrizze meg az eredeti operation_id/X-Client-Request-ID értéket és a visszaadott eredményadatokat. A saját, már meglévő eredményeket a médiatárból állítsa helyre a tényleges task_id vagy asset_id értékekkel. Ne küldje be újra a generálási/szerkesztési kérést, és ne állítson össze állapotlekérdezési URL-t az operation_id értékéből.
Válaszmezők
| Mező | Típus |
|---|---|
Mezőcreated | Típusinteger |
Meződata[].url | Típusstring |
Meződata[].b64_json | Típusbase64 string |
Mezőusage | Típusobject |
Hibák és következő lépések
| Válasz | Feltétel | Következő lépés |
|---|---|---|
Válasz400 · invalid_request_error | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |
Válaszserver_error | FeltételA visszaadott válasz szerint a művelet vagy az eredmény ellenőrzést igényel | Következő lépésŐrizze meg az eredetileg visszaadott művelet- vagy feladatazonosítót, a kérés fejléceit és a választ; folytassa az eredeti művelet támogatott lekérdezéseit. Ne küldje be újra a létrehozási kérést. |
Álnevek
Modell álnevei
Ailoot gpt-image-2
Ailoot Ultra gpt-image-2, openai/gpt-image-2
Metódusútvonalak álnevei
/v1/images
Kapcsolódó modellazonosítók
Ailoot Ultra · Képek POST /v1/images/generations gpt-image-2
gpt-image-2gpt-image-2openai/gpt-image-2
Kezdő lépések
A GPT Image 2 szövegből és vizuális referenciákból generál és szerkeszt képeket. Rugalmas képméreteket támogat, és a képbemeneteket automatikusan nagy forráshűséggel dolgozza fel, a kész anyaghoz külön minőség-, formátum- és háttérvezérlőkkel.
- Elfogadott bemenetek
- Szöveg
- Eredmények
- Képek
Elérhető az Ailootban · bemenetek és metódusok
Ailoot Ultra · Képek POST /v1/images/generations
- Bemenet
text- Kimenet
image
| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
|---|---|---|---|---|
Mezőmodel | Típusstring | KövetelményKötelező | Értékek és korlátok gpt-image-2 | Alapértelmezett— |
Mezőprompt | Típusstring | KövetelményKötelező | Értékek és korlátok Maximális hossz: 32 000 | Alapértelmezett— |
Mezősize | Típusstring | KövetelményOpcionális | Értékek és korlátok Feltételek: Használjon auto vagy WIDTHxHEIGHT értéket úgy, hogy mindkét méret osztható legyen 16-tal. A hosszabb oldal legfeljebb 3,840 pixel, a teljes képméret legfeljebb 8,300,000 pixel lehet. | Alapértelmezettauto |
Mezőbackground | Típusstring | KövetelményOpcionális | Értékek és korlátok transparent, opaque, auto | Alapértelmezettauto |
Mezőmoderation | Típusstring | KövetelményOpcionális | Értékek és korlátok low, auto Feltételek: A szokásos tartalommoderáláshoz használja az auto értéket. | Alapértelmezett— |
Mezőn | Típusinteger | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Maximum: 10 | Alapértelmezett1 |
Mezőquality | Típusstring | KövetelményOpcionális | Értékek és korlátok auto, high, medium, low | Alapértelmezettauto |
Mezőoutput_compression | Típusinteger | KövetelményOpcionális | Értékek és korlátok Minimum: 0 Maximum: 100 Feltételek: JPEG- és WebP-kimenetre vonatkozik; a dokumentált egész értéket küldje el. | Alapértelmezett100 |
Mezőoutput_format | Típusstring | KövetelményOpcionális | Értékek és korlátok webp, png, jpeg | Alapértelmezettpng |
Mezőstream | Típusboolean | KövetelményOpcionális | Értékek és korlátok false Feltételek: Ez az útvonal egyetlen befejezett JSON-választ ad vissza. | Alapértelmezettfalse |
Metódus paraméterei és életciklusa
| Paraméter | Szerződés |
|---|---|
Paramétercontent_type | Szerződésapplication/json |
Paraméterrequired | Szerződésprompt, model |
Paramétermaterial_types | Szerződéstext |
Paraméteroptional | Szerződéssize, background, moderation, n, quality, output_compression, output_format, stream |
Paraméterconditions | SzerződésAz átlátszó háttérhez PNG vagy WebP szükséges., A kimeneti tömörítés JPEG vagy WebP esetén érvényes., A kiválasztott metódus szövegből generál. A gyártónál leírt szerkesztési és adatfolyam-vezérlők külön képességek. |
Életciklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · A ténylegesen visszaadott task_id vagy a médiatár bejegyzése
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Díjcsomagok
A végső díj számítása
A megjelenített díjtételek a generálás előtti költségbecsléshez szolgálnak. A végleges díj az eredeti generáláshoz rögzített költségből számítódik. A kimenet mért időtartama és az előre jelzett mennyiségek nem azonosak a véglegesen elszámolandó mennyiséggel.
A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.
- Gyors mód
- Nincs megadva Ha a gyors mód van kiválasztva
- Flex mód
- Nincs megadva Ha a flex mód van kiválasztva
- Maximális gondolkodási ráfordítás
- Nincs megadva Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik
Becsült díjak összehasonlításhoz
Árak beállításonként
Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.
| Beállítás | Díjtáblázat | Előre jelzett mennyiség | Díj |
|---|---|---|---|
| BeállításTokenek alapdíjai | DíjtáblázatAlapdíj | Előre jelzett mennyiség— | Díj Bemenet · Bemeneti tokenek · Becslés, csak összehasonlításra — / 1K token Kimenet · Kimeneti tokenek · Becslés, csak összehasonlításra — / 1K token Bemenet · Gyorsítótár olvasása · Becslés, csak összehasonlításra — / 1K token Bemenet · Írás a gyorsítótárba · Becslés, csak összehasonlításra — / 1K token Bemenet · Írás a gyorsítótárba, 1 óra · Becslés, csak összehasonlításra — / 1K token |
| BeállításA generálás becsült költsége | Díjtáblázat— | Előre jelzett mennyiségbecslés egy generálásra | Díj Kimenet · Becsült generálási költség · Becslés, csak összehasonlításra $0.24576 becslés a generálás előtt Ez a becslés nem jelent további díjat, és nem rögzített díjszabás az elkészült generálásra. |
Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. A foglalás és az elszámolás működése →
Példakérések
Ailoot Ultra · Képek
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
Eredmények fogadása és mentése
Ailoot Ultra · Képek
Töltsön le minden visszaadott képet, vagy mentse a Base64-tartalmat
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
További tartalomlekérések
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.
Őrizzen meg minden elkészült eredményt
Mentsen minden elkészült képet; töltse le az összes visszaadott URL tartalmát, vagy dekódolja a Base64-tartalmat.
Őrizze meg a teljes választ és a fejléceket, minden tényleges kimenetet, az eredetileg visszaadott azonosítókat és az összes használati adatmezőt. Az eredeti műveletet állítsa helyre, a létrehozási kérés újbóli beküldése nélkül.
Ha az eredeti választ ellenőrizni kell
Őrizze meg a visszaadott X-Client-Request-ID értéket az egyeztetéshez. Csak a ténylegesen visszaadott task_id/asset_id értékekkel kérdezzen le, vagy használja a saját médiatárat; soha ne állítson össze feladat-URL-t a műveletazonosítóból, és soha ne küldje be újra a létrehozási kérést.
Válaszmezők
| Mező | Típus |
|---|---|
Mezőcreated | Típus |
Meződata[].url | Típus |
Meződata[].b64_json | Típus |
Mezőusage | Típus |
Álnevek
Modell álnevei
Ailoot gpt-image-2
Ailoot Ultra gpt-image-2, openai/gpt-image-2
Metódusútvonalak álnevei
/v1/images
Kapcsolódó modellazonosítók
Ailoot Ultra · Képek POST /v1/images/generations openai/gpt-image-2
openai/gpt-image-2gpt-image-2openai/gpt-image-2
Kezdő lépések
A GPT Image 2 szövegből és vizuális referenciákból generál és szerkeszt képeket. Rugalmas képméreteket támogat, és a képbemeneteket automatikusan nagy forráshűséggel dolgozza fel, a kész anyaghoz külön minőség-, formátum- és háttérvezérlőkkel.
- Elfogadott bemenetek
- Szöveg · Képek
- Eredmények
- Képek
Elérhető az Ailootban · bemenetek és metódusok
Ailoot Ultra · Képek POST /v1/images/generations
- Bemenet
text,image- Kimenet
image
| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
|---|---|---|---|---|
Mezőmodel | Típusstring | KövetelményKötelező | Értékek és korlátok openai/gpt-image-2 | Alapértelmezett— |
Mezőprompt | Típusstring | KövetelményKötelező | Értékek és korlátok Minimális hossz: 1 | Alapértelmezett— |
Mezőaspect_ratio | Típusstring | KövetelményOpcionális | Értékek és korlátok 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto | Alapértelmezett— |
Mezőquality | Típusstring | KövetelményOpcionális | Értékek és korlátok auto, low, medium, high | Alapértelmezett— |
Mezőbackground | Típusstring | KövetelményOpcionális | Értékek és korlátok auto, opaque | Alapértelmezett— |
Mezőn | Típusinteger | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Maximum: 10 | Alapértelmezett— |
Mezőinput_references | Típusarray | KövetelményOpcionális | Értékek és korlátok Minimális elemszám: 0 Maximális elemszám: 16 | Alapértelmezett— |
Mezőoutput_compression | Típusinteger | KövetelményOpcionális | Értékek és korlátok Minimum: 0 Maximum: 100 | Alapértelmezett— |
Mezőprovider | Típusobject | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
Metódus paraméterei és életciklusa
| Paraméter | Szerződés |
|---|---|
Paramétercontent_type | Szerződésapplication/json |
Paraméterrequired | Szerződésmodel, prompt |
Paramétermaterial_types | Szerződéstext, image |
Életciklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · A ténylegesen visszaadott task_id vagy a médiatár bejegyzése
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Díjcsomagok
A végső díj számítása
A megjelenített díjtételek a generálás előtti költségbecsléshez szolgálnak. A végleges díj az eredeti generáláshoz rögzített költségből számítódik. A kimenet mért időtartama és az előre jelzett mennyiségek nem azonosak a véglegesen elszámolandó mennyiséggel.
A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.
- Gyors mód
- Nincs megadva Ha a gyors mód van kiválasztva
- Flex mód
- Nincs megadva Ha a flex mód van kiválasztva
- Maximális gondolkodási ráfordítás
- Nincs megadva Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik
Becsült díjak összehasonlításhoz
Árak beállításonként
Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.
| Beállítás | Díjtáblázat | Előre jelzett mennyiség | Díj |
|---|---|---|---|
| BeállításTokenek alapdíjai | DíjtáblázatAlapdíj | Előre jelzett mennyiség— | Díj Bemenet · Bemeneti tokenek · Becslés, csak összehasonlításra — / 1K token Kimenet · Kimeneti tokenek · Becslés, csak összehasonlításra — / 1K token Bemenet · Gyorsítótár olvasása · Becslés, csak összehasonlításra — / 1K token Bemenet · Írás a gyorsítótárba · Becslés, csak összehasonlításra — / 1K token Bemenet · Írás a gyorsítótárba, 1 óra · Becslés, csak összehasonlításra — / 1K token |
| BeállításA generálás becsült költsége | Díjtáblázat— | Előre jelzett mennyiségbecslés egy generálásra | Díj Kimenet · Becsült generálási költség · Becslés, csak összehasonlításra $0.24576 becslés a generálás előtt Ez a becslés nem jelent további díjat, és nem rögzített díjszabás az elkészült generálásra. |
Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. A foglalás és az elszámolás működése →
Példakérések
Ailoot Ultra · Képek
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
Eredmények fogadása és mentése
Ailoot Ultra · Képek
Töltsön le minden visszaadott képet, vagy mentse a Base64-tartalmat
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
További tartalomlekérések
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.
Őrizzen meg minden elkészült eredményt
Mentsen minden elkészült képet; töltse le az összes visszaadott URL tartalmát, vagy dekódolja a Base64-tartalmat.
Őrizze meg a teljes választ és a fejléceket, minden tényleges kimenetet, az eredetileg visszaadott azonosítókat és az összes használati adatmezőt. Az eredeti műveletet állítsa helyre, a létrehozási kérés újbóli beküldése nélkül.
Ha az eredeti választ ellenőrizni kell
Őrizze meg a visszaadott X-Client-Request-ID értéket az egyeztetéshez. Csak a ténylegesen visszaadott task_id/asset_id értékekkel kérdezzen le, vagy használja a saját médiatárat; soha ne állítson össze feladat-URL-t a műveletazonosítóból, és soha ne küldje be újra a létrehozási kérést.
Válaszmezők
| Mező | Típus |
|---|---|
Mezőcreated | Típus |
Meződata[].url | Típus |
Meződata[].b64_json | Típus |
Mezőusage | Típus |
Álnevek
Modell álnevei
Ailoot gpt-image-2
Ailoot Ultra gpt-image-2, openai/gpt-image-2
Metódusútvonalak álnevei
/v1/images
Kapcsolódó modellazonosítók
FAQ · OpenAI: GPT Image 2
- Milyen bemenetek és eredmények érhetők el?
POST /v1/images/generations·gpt-image-2:text→imagePOST /v1/images/generations·gpt-image-2:text→imagePOST /v1/images/generations·openai/gpt-image-2:text,image→image- Mely mezőket használja a kérés?
POST /v1/images/generations·gpt-image-2:model,prompt,n,response_format,streamPOST /v1/images/generations·gpt-image-2:model,prompt,size,background,moderation,n,quality,output_compression,output_format,streamPOST /v1/images/generations·openai/gpt-image-2:model,prompt,aspect_ratio,quality,background,n,input_references,output_compression,provider- Milyen korlátok érvényesek?
POST /v1/images/generations·gpt-image-2:n.minimum:1POST /v1/images/generations·gpt-image-2: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:n.minimum:1;n.maximum:10;output_compression.minimum:0;output_compression.maximum:100