GPT Image 1.5
GPT Image 1.5 batafsil ko‘rsatmalarga amal qilishga urg‘u berib, matnli topshiriq asosida tasvirlar yaratadi. Uchta kadr shakli, bir nechta sifat darajasi va natija formati ko‘zda tutilgan.
- Ailoot · Rasmlar
POST /v1/images/generationsgpt-image-1.5 - Ailoot Ultra · Rasmlar
POST /v1/images/generationsgpt-image-1.5
Model haqida
Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.
Batafsil topshiriq asosidagi tasvir
GPT Image 1.5 — matnli tavsif asosida tasvirlar yaratish uchun OpenAI modeli. Ishlab chiqaruvchi ko‘rsatmalarga amal qilish va batafsil topshiriqni qayta ishlashni ta’kidlaydi: unda sahna mazmuni, kompozitsiya, obyektlar ko‘rinishi va kerakli uslubni belgilash mumkin. Tasvirlar metodining natijasi — tayyor rasm.
Ailoot’da bu karta matnli kirish bilan yaratishga tegishli. OpenAI boshlang‘ich tasvirlar bilan ishlash, tahrirlash va alohida hududlarni o‘zgartirishni ham tavsiflaydi. Bu imkoniyatlar vizual kirishni alohida qo‘llab-quvvatlashni talab qiladi va bu yerda belgilangan matnli yaratish usuliga kirmaydi.
OpenAI alohida ko‘zda tutgan tuzatish amalida niqob mo‘ljal bo‘lib xizmat qiladi: natijaning uning konturlariga aniq mosligi kafolatlanmaydi. Bunday amal uchun boshlang‘ich tasvirni yuborish qo‘llab-quvvatlanishi kerak; joriy Ailoot kartasi hanuz matnli kirish bilan yaratishga tegishli.
Uchta kadr shakli va sifatni sozlash
Kvadrat 1024x1024, gorizontal 1536x1024 va vertikal 1024x1536 o‘lchamlar, shuningdek, avtomatik tanlov ko‘zda tutilgan. Boshqa modellarning ixtiyoriy o‘lchamlarini bu versiyaga tatbiq etmaslik kerak.
Sifat darajalari — low, medium, high va auto. Sifat tanlovi qayta ishlash hajmi va natija tafsilotlariga ta’sir qiladi. Sifat va o‘lcham turli sozlamalardir: kadr yo‘nalishi kompozitsiya maydonini, sifat darajasi esa uni shakllantirish rejimini belgilaydi. GPT Image 1.5 uchun xhigh va max darajalari e’lon qilinmagan.
Fayl formati va fon
Standart holatda natija PNG’da yaratiladi; JPEG va WebP ham ko‘zda tutilgan. JPEG va WebP uchun siqish darajasini belgilash mumkin. Bu yaratish sifatidan farq qiladigan natija fayli sozlamasidir.
Ishlab chiqaruvchida shaffof va shaffof bo‘lmagan fon, shuningdek, avtomatik tanlov ko‘zda tutilgan. Shaffoflik uchun PNG yoki WebP kerak: JPEG alfa-kanalni saqlamaydi. Tasvir keyingi kompozitsiyada alohida obyekt sifatida ishlatilishi kerak bo‘lganda shaffof fon qulay. Aniq parametrlarni qo‘llab-quvvatlashni tanlangan metod bilan moslashtirish lozim.
Matn va kompozitsiya tekshiruv talab qiladi
Model rasmga yozuvlar kiritishi va bir nechta elementdan sahna yig‘ishi mumkin, lekin matn va obyektlarning aniq joylashuvi kafolatlanmaydi. Alohida yaratishlar orasida bitta personaj ko‘rinishi yoki bezakning takrorlanishi ham nazorat talab qiladi.
Murakkab tasvir oddiy tasvirdan uzoqroq shakllanishi mumkin; OpenAI ma’lumotiga ko‘ra, ayrim murakkab topshiriqlar ikki daqiqagacha vaqt olishi mumkin. Natija uchun boshlang‘ich tavsif to‘liqligi ham, tayyor tasvir tekshiruvi ham muhim: yozuvlar o‘qilishi, tafsilotlar holati va belgilangan sahnaga moslik faylning o‘zidan baholanadi.
Ailoot · Rasmlar POST /v1/images/generations gpt-image-1.5
gpt-image-1.5Boshlash
GPT Image 1.5 batafsil ko‘rsatmalarga amal qilishga urg‘u berib, matnli topshiriq asosida tasvirlar yaratadi. Uchta kadr shakli, bir nechta sifat darajasi va natija formati ko‘zda tutilgan.
- Qabul qilinadigan kirish ma’lumotlari
- Matn
- Natijalar
- Rasmlar
Ailoot da mavjud · kirish ma’lumotlari va usullar
Ailoot · Rasmlar POST /v1/images/generations
- Kirish
text- Chiqish
image- Chiqish formati
- Rasm fayli
| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
|---|---|---|---|---|
Maydonmodel | Turstring | TalabMajburiy | Qiymatlar va cheklovlar gpt-image-1.5 | Standart— |
Maydonprompt | Turstring | TalabMajburiy | Qiymatlar va cheklovlar Eng kam uzunlik: 1 | Standart— |
Maydonn | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 | Standart1 |
Maydonresponse_format | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar url, b64_json | Standart— |
Maydonstream | Turboolean | TalabIxtiyoriy | Qiymatlar va cheklovlar | Standartfalse |
Maydonsize | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Maydonquality | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Maydonbackground | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Maydonoutput_format | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Maydonoutput_compression | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Maydonmoderation | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Maydoninput_fidelity | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Maydonstyle | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Maydonpartial_images | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Modelga bogʻliq | Standart— |
Kirish materiallari birikmalari
Matndan rasm · Majburiy: prompt
Usul parametrlari va hayot sikli
| Parametr | Parametr talablari |
|---|---|
Parametrmaterial_types | Parametr talablaritext |
Parametrrequired | Parametr talablarimodel, prompt |
Parametroptional_controls | Parametr talablarinull |
Parametrcontent_type | Parametr talablariapplication/json |
Hayot sikli: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.
Tariflar
Ailoot usullari tariflari
POST /v1/images/generations- Matnli kirish
- 0,005 US$ / 1K
- Matnli chiqish
- 0,01 US$ / 1K
- Kirish, rasm
- 0,008 US$ / 1K tokens
- Chiqish, rasm
- 0,032 US$ / 1K tokens
Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →
So‘rov namunalari
Ailoot · Rasmlar
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");
Natijalarni olish va saqlash
Ailoot · Rasmlar
Har bir qaytarilgan rasmni yuklab oling yoki uning Base64 kontentini saqlang
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Barcha tayyor natijalarni saqlash
Har bir tayyor rasmni saqlang; har bir qaytarilgan URL dan kontentni oling yoki uning Base64 kontentini dekodlang.
Har bir ma’lumot elementini saqlang. Har bir b64_json ni dekodlang yoki qaytarilgan har bir imzolangan URL dan faylni yuklab oling. Fayl nomi kengaytmasini haqiqiy MIME turi/baytlar asosida tanlang.
Asl javobni tekshirish kerak bo‘lsa
Rasm yaratish yoki tahrirlash natijasini tekshirish kerak bo‘lsa, dastlabki operation_id/X-Client-Request-ID va qaytarilgan natija haqidagi ma’lumotlarni saqlang. Amalda qaytarilgan task_id yoki asset_id qiymatlari yordamida media kutubxonasidan o‘zingizga tegishli mavjud natijalarni tiklang. Rasm yaratish/tahrirlash so‘rovini qayta yubormang va operation_id dan holatni davriy tekshirish uchun URL tuzmang.
Javob maydonlari
| Maydon | Tur |
|---|---|
Maydoncreated | Turinteger |
Maydondata[].url | Turstring |
Maydondata[].b64_json | Turbase64 string |
Maydonusage | Turobject |
Xatolar va keyingi qadamlar
| Javob | Shart | Keyingi qadam |
|---|---|---|
Javob400 · invalid_request_error | ShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri | Keyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating. |
Javobserver_error | ShartQaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi | Keyingi qadamDastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang. |
Taxalluslar
Model taxalluslari
Ailoot gpt-image-1.5
Ailoot Ultra gpt-image-1.5
Usul yo‘llari taxalluslari
Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.
Chaqirish uchun tegishli ID lar
Ailoot Ultra · Rasmlar POST /v1/images/generations gpt-image-1.5
gpt-image-1.5Boshlash
GPT Image 1.5 batafsil ko‘rsatmalarga amal qilishga urg‘u berib, matnli topshiriq asosida tasvirlar yaratadi. Uchta kadr shakli, bir nechta sifat darajasi va natija formati ko‘zda tutilgan.
- Qabul qilinadigan kirish ma’lumotlari
- Matn
- Natijalar
- Rasmlar
Ailoot da mavjud · kirish ma’lumotlari va usullar
Ailoot Ultra · Rasmlar POST /v1/images/generations
- Kirish
text- Chiqish
image
| Maydon | Tur | Talab | Qiymatlar va cheklovlar | Standart |
|---|---|---|---|---|
Maydonmodel | Turstring | TalabMajburiy | Qiymatlar va cheklovlar gpt-image-1.5 | Standart— |
Maydonprompt | Turstring | TalabMajburiy | Qiymatlar va cheklovlar Eng ko‘p uzunlik: 32 000 | Standart— |
Maydonsize | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar 1024x1024, 1536x1024, 1024x1536, auto | Standartauto |
Maydonbackground | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar transparent, opaque, auto | Standartauto |
Maydonmoderation | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar low, auto Shartlar: Standart mazmun moderatsiyasi uchun auto dan foydalaning. | Standart— |
Maydonn | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 1 Eng ko‘p: 10 | Standart1 |
Maydonquality | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar auto, high, medium, low | Standartauto |
Maydonoutput_compression | Turinteger | TalabIxtiyoriy | Qiymatlar va cheklovlar Eng kam: 0 Eng ko‘p: 100 Shartlar: JPEG va WebP chiqishiga qo‘llanadi; hujjatdagi butun son qiymatini yuboring. | Standart100 |
Maydonoutput_format | Turstring | TalabIxtiyoriy | Qiymatlar va cheklovlar webp, png, jpeg | Standartpng |
Maydonstream | Turboolean | TalabIxtiyoriy | Qiymatlar va cheklovlar false Shartlar: Bu yo‘nalish bitta yakunlangan JSON javobini qaytaradi. | Standartfalse |
Usul parametrlari va hayot sikli
| Parametr | Parametr talablari |
|---|---|
Parametrcontent_type | Parametr talablariapplication/json |
Parametrrequired | Parametr talablariprompt, model |
Parametrmaterial_types | Parametr talablaritext |
Parametroptional | Parametr talablarisize, background, moderation, n, quality, output_compression, output_format, stream |
Parametrconditions | Parametr talablariShaffof fon uchun PNG yoki WebP kerak., Chiqishni siqish JPEG yoki WebP ga qo‘llanadi., Tanlangan usul matndan yaratadi. Ishlab chiqaruvchi uchun tavsiflangan tahrirlash va oqim boshqaruvlari alohida imkoniyatlardir. |
Hayot sikli: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Tariflar
Yakuniy to‘lov qanday hisoblanadi
Ko‘rsatilgan tariflar xarajatni generatsiyadan oldin taxminiy hisoblash uchun xizmat qiladi. Yakuniy to‘lov dastlabki generatsiya uchun qayd etilgan xarajat asosida hisoblanadi. Natijaning o‘lchangan davomiyligi va oldindan taxmin qilingan miqdorlar haq undiriladigan yakuniy miqdor hisoblanmaydi.
Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.
- Tezkor rejim
- Ko‘rsatilmagan Tezkor rejim tanlanganda
- Flex rejimi
- Ko‘rsatilmagan flex rejimi tanlanganda
- Maksimal fikrlash darajasi
- Ko‘rsatilmagan Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda
Taqqoslash uchun taxminiy tariflar
Sozlamalar bo‘yicha narxlar
Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.
| Sozlama | Tariflar jadvali | Prognoz miqdori | To‘lov |
|---|---|---|---|
| SozlamaTokenlar uchun bazaviy tariflar | Tariflar jadvaliAsosiy tarif | Prognoz miqdori— | To‘lov Kirish · Kirish tokenlari · Faqat taqqoslash uchun taxmin — / 1K token Chiqish · Chiqish tokenlari · Faqat taqqoslash uchun taxmin — / 1K token Kirish · Keshdan o‘qish · Faqat taqqoslash uchun taxmin — / 1K token Kirish · Keshga yozish · Faqat taqqoslash uchun taxmin — / 1K token Kirish · Keshga yozish, 1 soat · Faqat taqqoslash uchun taxmin — / 1K token |
| SozlamaYaratishning taxminiy qiymati | Tariflar jadvali— | Prognoz miqdoribir generatsiya uchun taxmin | To‘lov Chiqish · Yaratishning taxminiy narxi · Faqat taqqoslash uchun taxmin $0.32768 yaratishdan oldingi taxmin Bu taxmin qo‘shimcha to‘lov ham, tugallangan generatsiya uchun qat’iy tarif ham emas. |
Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →
So‘rov namunalari
Ailoot Ultra · Rasmlar
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
Natijalarni olish va saqlash
Ailoot Ultra · Rasmlar
Har bir qaytarilgan rasmni yuklab oling yoki uning Base64 kontentini saqlang
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Boshqa kontentni o‘qish
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.
Barcha tayyor natijalarni saqlash
Har bir tayyor rasmni saqlang; har bir qaytarilgan URL dan kontentni oling yoki uning Base64 kontentini dekodlang.
To‘liq javob va sarlavhalarni, amalda qaytarilgan barcha natijalarni, dastlab qaytarilgan identifikatorlarni hamda barcha usage maydonlarini saqlang. Yaratish so‘rovini qayta yubormasdan dastlabki operatsiyani tiklang.
Asl javobni tekshirish kerak bo‘lsa
Qaytarilgan X-Client-Request-ID ni ma’lumotlarni solishtirib tekshirish uchun saqlang. Faqat amalda qaytarilgan task_id/asset_id qiymatlari bo‘yicha yoki o‘zingizga tegishli media kutubxonasidan ma’lumot o‘qing; operatsiya ID sidan vazifa URL manzilini hech qachon tuzmang va yaratish so‘rovini qayta yubormang.
Javob maydonlari
| Maydon | Tur |
|---|---|
Maydoncreated | Tur |
Maydondata[].url | Tur |
Maydondata[].b64_json | Tur |
Maydonusage | Tur |
Taxalluslar
Model taxalluslari
Ailoot gpt-image-1.5
Ailoot Ultra gpt-image-1.5
Usul yo‘llari taxalluslari
Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.
Chaqirish uchun tegishli ID lar
FAQ · GPT Image 1.5
- Qanday kirish ma’lumotlari va natijalar mavjud?
POST /v1/images/generations·gpt-image-1.5:text→imagePOST /v1/images/generations·gpt-image-1.5:text→image- So‘rov qaysi maydonlardan foydalanadi?
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- Qanday cheklovlar amal qiladi?
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