GPT Image 1.5
GPT Image 1.5 luo kuvia tekstitehtävän perusteella painottaen yksityiskohtaisten ohjeiden noudattamista. Tarjolla on kolme kuvamuotoa sekä useita laatutasoja ja tulosformaatteja.
- Ailoot · Kuvat
POST /v1/images/generationsgpt-image-1.5 - Ailoot Ultra · Kuvat
POST /v1/images/generationsgpt-image-1.5
Tietoa mallista
Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.
Kuva yksityiskohtaisen tehtävänannon perusteella
GPT Image 1.5 on OpenAI:n malli kuvien luomiseen tekstikuvauksen perusteella. Valmistaja painottaa ohjeiden noudattamista ja yksityiskohtaisen tehtävän käsittelyä: siinä voidaan määrittää näkymän sisältö, sommittelu, kohteiden ulkonäkö ja haluttu tyyli. Kuvamenetelmän tulos on valmis kuva.
Ailootissa tämä kortti koskee generointia tekstisyötteestä. OpenAI kuvaa myös mallin lähtökuvien käsittelyn, muokkauksen ja yksittäisten alueiden muuttamisen. Nämä kyvyt vaativat erillisen kuvasyötteen tuen eivätkä kuulu tässä nimettyyn tekstipohjaiseen generointitapaan.
OpenAI:n erikseen tarjoamassa muokkaustoiminnossa maski toimii ohjenuorana: tuloksen tarkkaa vastaavuutta sen ääriviivoihin ei taata. Toiminto tarvitsee lähtökuvan lähettämisen tuen; nykyinen Ailoot-kortti koskee edelleen generointia tekstisyötteestä.
Kolme kuvamuotoa ja laadun säätö
Tarjolla ovat neliökoko 1024x1024, vaakakoko 1536x1024 ja pystykoko 1024x1536 sekä automaattinen valinta. Muiden mallien vapaasti valittavia kokoja ei tule siirtää tähän versioon.
Laatutasot ovat low, medium, high ja auto. Laatuvalinta vaikuttaa käsittelyn määrään ja tuloksen yksityiskohtaisuuteen. Laatu ja koko ovat eri asetuksia: kuvan suunta määrittää sommittelutilan ja laatutaso sen muodostamistavan. Tasoja xhigh ja max ei ilmoiteta GPT Image 1.5:lle.
Tiedostomuoto ja tausta
Tulos luodaan oletuksena PNG-muodossa; myös JPEG ja WebP ovat tarjolla. JPEG- ja WebP-muodoissa voidaan määrittää pakkausaste. Tämä on tulostiedoston asetus, joka eroaa generoinnin laadusta.
Valmistaja mahdollistaa läpinäkyvän ja peittävän taustan sekä automaattisen valinnan. Läpinäkyvyys vaatii PNG- tai WebP-muodon: JPEG ei säilytä alfakanavaa. Läpinäkyvä tausta on hyödyllinen, kun kuvaa käytetään erillisenä kohteena myöhemmässä sommitelmassa. Yksittäisten parametrien tuki on suhteutettava valittuun menetelmään.
Teksti ja sommittelu vaativat tarkistusta
Malli voi sisällyttää kuvaan tekstejä ja koota näkymän useista elementeistä, mutta tekstin ja kohteiden tarkkaa sijoittelua ei taata. Myös hahmon ulkonäön tai visuaalisen toteutuksen toistettavuutta erillisten generointien välillä on valvottava.
Vaativan kuvan muodostaminen voi kestää yksinkertaista pidempään; OpenAI:n mukaan yksittäiset vaativat tehtävät voivat kestää enintään kaksi minuuttia. Tulokseen vaikuttavat lähtökuvauksen täydellisyys ja valmiin kuvan tarkistus: tekstien luettavuus, yksityiskohtien sijainti ja vastaavuus annettuun näkymään arvioidaan itse tiedostosta.
Ailoot · Kuvat POST /v1/images/generations gpt-image-1.5
gpt-image-1.5Aloitus
GPT Image 1.5 luo kuvia tekstitehtävän perusteella painottaen yksityiskohtaisten ohjeiden noudattamista. Tarjolla on kolme kuvamuotoa sekä useita laatutasoja ja tulosformaatteja.
- Hyväksytyt syötteet
- Teksti
- Tulokset
- Kuvat
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot · Kuvat POST /v1/images/generations
- Syötetyypit
text- Tulostyypit
image- Tulosteen muoto
- Kuvatiedosto
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat gpt-image-1.5 | Oletus— |
Kenttäprompt | Tyyppistring | VaatimusPakollinen | Arvot & rajat Vähimmäispituus: 1 | Oletus— |
Kenttän | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 1 | Oletus1 |
Kenttäresponse_format | Tyyppistring | VaatimusValinnainen | Arvot & rajat url, b64_json | Oletus— |
Kenttästream | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat | Oletusfalse |
Kenttäsize | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäquality | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäbackground | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäoutput_format | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäoutput_compression | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttämoderation | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäinput_fidelity | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttästyle | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäpartial_images | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Syöteaineistojen yhdistelmät
Tekstistä kuvaksi · Pakollinen: prompt
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametrimaterial_types | Sopimustext |
Parametrirequired | Sopimusmodel, prompt |
Parametrioptional_controls | Sopimusnull |
Parametricontent_type | Sopimusapplication/json |
Elinkaari: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · todellisuudessa palautettu task_id tai mediakirjaston tietue
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.
Hinnoittelu
Ailoot-menetelmien hinnat
POST /v1/images/generations- Tekstisyöte
- 0,005 $ / 1K
- Tekstituloste
- 0,01 $ / 1K
- Syöte, kuva
- 0,008 $ / 1K tokens
- Tuloste, kuva
- 0,032 $ / 1K tokens
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot · Kuvat
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-1.5", "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-1.5', '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-1.5", "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");
Vastaanota ja tallenna tulokset
Ailoot · Kuvat
Lataa jokainen palautettu kuva tai tallenna sen Base64-sisältö
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Säilytä kaikki valmistuneet tulokset
Tallenna jokainen valmistunut kuva; nouda jokainen palautettu URL tai pura sen Base64-sisältö.
Tallenna jokainen data-alkio. Pura jokainen b64_json-arvo tai lataa jokaisen palautetun allekirjoitetun URL-osoitteen sisältö. Valitse tiedostopääte todellisen MIME-tyypin tai tavusisällön perusteella.
Jos alkuperäinen vastaus on tarkistettava
Jos kuvan generoinnin tai muokkauksen tulos edellyttää tarkistusta, säilytä alkuperäinen operation_id/X-Client-Request-ID ja palautetut tulostiedot. Hae olemassa olevat omistamasi tulokset mediakirjastosta käyttämällä todellisia task_id- tai asset_id-arvoja. Älä lähetä generointi- tai muokkauspyyntöä uudelleen äläkä muodosta tilakyselyn URL-osoitetta operation_id-arvosta.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäcreated | Tyyppiinteger |
Kenttädata[].url | Tyyppistring |
Kenttädata[].b64_json | Tyyppibase64 string |
Kenttäusage | Tyyppiobject |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Vastausserver_error | EhtoPalautettu vastaus ilmoittaa, että operaatio tai tulos edellyttää tarkistusta | Seuraava vaiheSäilytä alkuperäinen palautettu operaation tai tehtävän ID, pyynnön otsakkeet ja vastaus; jatka kyseisen alkuperäisen operaation tuettuja lukutoimintoja. Älä lähetä luontipyyntöä uudelleen. |
Aliakset
Mallin aliakset
Ailoot gpt-image-1.5
Ailoot Ultra gpt-image-1.5
Menetelmäpolkujen aliakset
Käytä yllä näytettyjä menetelmäpolkuja.
Liittyvät kutsujan ID:t
Ailoot Ultra · Kuvat POST /v1/images/generations gpt-image-1.5
gpt-image-1.5Aloitus
GPT Image 1.5 luo kuvia tekstitehtävän perusteella painottaen yksityiskohtaisten ohjeiden noudattamista. Tarjolla on kolme kuvamuotoa sekä useita laatutasoja ja tulosformaatteja.
- Hyväksytyt syötteet
- Teksti
- Tulokset
- Kuvat
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot Ultra · Kuvat POST /v1/images/generations
- Syötetyypit
text- Tulostyypit
image
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat gpt-image-1.5 | Oletus— |
Kenttäprompt | Tyyppistring | VaatimusPakollinen | Arvot & rajat Enimmäispituus: 32 000 | Oletus— |
Kenttäsize | Tyyppistring | VaatimusValinnainen | Arvot & rajat 1024x1024, 1536x1024, 1024x1536, auto | Oletusauto |
Kenttäbackground | Tyyppistring | VaatimusValinnainen | Arvot & rajat transparent, opaque, auto | Oletusauto |
Kenttämoderation | Tyyppistring | VaatimusValinnainen | Arvot & rajat low, auto Ehdot: Käytä auto-arvoa tavalliseen sisällön moderointiin. | Oletus— |
Kenttän | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 1 Enimmäismäärä: 10 | Oletus1 |
Kenttäquality | Tyyppistring | VaatimusValinnainen | Arvot & rajat auto, high, medium, low | Oletusauto |
Kenttäoutput_compression | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 0 Enimmäismäärä: 100 Ehdot: Koskee JPEG- ja WebP-tuloksia; lähetä dokumentoitu kokonaislukuarvo. | Oletus100 |
Kenttäoutput_format | Tyyppistring | VaatimusValinnainen | Arvot & rajat webp, png, jpeg | Oletuspng |
Kenttästream | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat false Ehdot: Tämä reitti palauttaa yhden valmiin JSON-vastauksen. | Oletusfalse |
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametricontent_type | Sopimusapplication/json |
Parametrirequired | Sopimusprompt, model |
Parametrimaterial_types | Sopimustext |
Parametrioptional | Sopimussize, background, moderation, n, quality, output_compression, output_format, stream |
Parametriconditions | SopimusLäpinäkyvä tausta edellyttää PNG- tai WebP-muotoa., Tuloksen pakkaus koskee JPEG- tai WebP-muotoa., Valittu menetelmä luo tuloksen tekstistä. Valmistajan kuvaamat muokkaus- ja suoratoistoasetukset ovat erillisiä ominaisuuksia. |
Elinkaari: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · todellisuudessa palautettu task_id tai mediakirjaston tietue
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Hinnoittelu
Lopullisen veloituksen laskenta
Näytettyjen hintojen avulla arvioidaan kustannukset ennen generointia. Lopullinen veloitus lasketaan alkuperäiselle generoinnille kirjatun kustannuksen perusteella. Lopullisena laskutettavana määränä ei käytetä tulosteen mitattua kestoa eikä ennustettuja määriä.
Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.
- Nopea tila
- Ei määritetty Kun nopea tila on valittu
- Flex-tila
- Ei määritetty Kun flex-tila on valittu
- Päättelyn enimmäisteho
- Ei määritetty Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä
Arvioidut vertailuhinnat
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Ennustettu määrä | Veloitus |
|---|---|---|---|
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Ennustettu määrä— | Veloitus Syöte · Syötetokenit · Arvio vain vertailua varten — / 1K tokenia Tuloste · Tulostokenit · Arvio vain vertailua varten — / 1K tokenia Syöte · Välimuistin luku · Arvio vain vertailua varten — / 1K tokenia Syöte · Välimuistiin kirjoitus · Arvio vain vertailua varten — / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti · Arvio vain vertailua varten — / 1K tokenia |
| AsetuksetArvioitu luontikustannus | Hinnasto— | Ennustettu määräyhden generoinnin arvio | Veloitus Tuloste · Arvioidut generointikustannukset · Arvio vain vertailua varten $0.32768 arvio ennen generointia Tämä arvio ei ole lisämaksu eikä valmistuneen generoinnin kiinteä hinta. |
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot Ultra · Kuvat
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-1.5', '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
Vastaanota ja tallenna tulokset
Ailoot Ultra · Kuvat
Lataa jokainen palautettu kuva tai tallenna sen Base64-sisältö
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Muut sisällön lukukerrat
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.
Säilytä kaikki valmistuneet tulokset
Tallenna jokainen valmistunut kuva; nouda jokainen palautettu URL tai pura sen Base64-sisältö.
Säilytä koko vastaus ja otsakkeet, jokainen todellinen tuloste, alkuperäiset palautetut tunnisteet ja kaikki käyttötietokentät. Selvitä alkuperäisen operaation tila lähettämättä luontipyyntöä uudelleen.
Jos alkuperäinen vastaus on tarkistettava
Säilytä palautettu X-Client-Request-ID täsmäytystä varten. Tee lukukyselyt vain todellisuudessa palautetuilla task_id/asset_id-arvoilla tai käytä omistamaasi mediakirjastoa; älä koskaan rakenna tehtävän URL-osoitetta operaation ID:n perusteella äläkä lähetä luontipyyntöä uudelleen.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäcreated | Tyyppi |
Kenttädata[].url | Tyyppi |
Kenttädata[].b64_json | Tyyppi |
Kenttäusage | Tyyppi |
Aliakset
Mallin aliakset
Ailoot gpt-image-1.5
Ailoot Ultra gpt-image-1.5
Menetelmäpolkujen aliakset
Käytä yllä näytettyjä menetelmäpolkuja.
Liittyvät kutsujan ID:t
FAQ · GPT Image 1.5
- Mitä syötteitä ja tuloksia on saatavilla?
POST /v1/images/generations·gpt-image-1.5:text→imagePOST /v1/images/generations·gpt-image-1.5:text→image- Mitä kenttiä pyyntö käyttää?
POST /v1/images/generations·gpt-image-1.5:model,prompt,n,response_format,streamPOST /v1/images/generations·gpt-image-1.5:model,prompt,size,background,moderation,n,quality,output_compression,output_format,stream- Mitä rajoja sovelletaan?
POST /v1/images/generations·gpt-image-1.5:n.minimum:1POST /v1/images/generations·gpt-image-1.5:prompt.maximum_length:32000;n.minimum:1;n.maximum:10;output_compression.minimum:0;output_compression.maximum:100