Source: https://ailoot.ai/models/ms/gpt-image-1-5/
Canonical: https://ailoot.ai/models/ms/gpt-image-1-5/
Language: ms

# GPT Image 1.5

[Markdown](https://ailoot.ai/models/ms/gpt-image-1-5/index.md) · [JSON](https://ailoot.ai/models/ms/gpt-image-1-5/facts.json)

## [GPT Image 1.5](https://ailoot.ai/models/ms/gpt-image-1-5/)

GPT Image 1.5 menghasilkan imej daripada arahan teks dengan tumpuan pada pematuhan arahan terperinci. Menyediakan tiga bentuk bingkai, beberapa tahap kualiti dan format hasil.

- [**Ailoot · Imej** `POST /v1/images/generations` `gpt-image-1.5`](https://ailoot.ai/models/ms/gpt-image-1-5/#method-0)
- [**Ailoot Ultra · Imej** `POST /v1/images/generations` `gpt-image-1.5`](https://ailoot.ai/models/ms/gpt-image-1-5/#method-1)

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

#### Imej berdasarkan arahan terperinci

GPT Image 1.5 ialah model OpenAI untuk menghasilkan imej daripada penerangan teks. Pengeluar mengetengahkan pematuhan arahan dan pemprosesan tugasan terperinci: kandungan adegan, komposisi, rupa objek dan gaya yang dikehendaki boleh ditentukan. Hasil kaedah imej ialah imej yang siap.

Dalam Ailoot, kad ini merujuk penjanaan dengan input teks. OpenAI turut menerangkan penggunaan imej sumber, penyuntingan dan pengubahan kawasan tertentu oleh model. Keupayaan ini memerlukan sokongan input visual yang berasingan dan tidak termasuk dalam cara penjanaan teks yang dinyatakan di sini.

Dalam operasi penyuntingan berasingan yang disediakan OpenAI, topeng menjadi panduan: hasil tidak dijamin sepadan tepat dengan bentuknya. Operasi ini memerlukan sokongan penghantaran imej sumber; kad Ailoot semasa masih merujuk penjanaan dengan input teks.

#### Tiga bentuk bingkai dan tetapan kualiti

Saiz yang disediakan ialah segi empat sama `1024x1024`, mendatar `1536x1024` dan menegak `1024x1536`, serta pilihan automatik. Saiz sewenang-wenangnya daripada model lain tidak patut digunakan untuk versi ini.

Tahap kualiti ialah `low`, `medium`, `high` dan `auto`. Pilihan kualiti mempengaruhi jumlah pemprosesan dan perincian hasil. Kualiti dan saiz ialah tetapan yang berbeza: orientasi bingkai menentukan ruang komposisi, manakala tahap kualiti menentukan mod pembentukannya. Tahap `xhigh` dan `max` tidak dinyatakan untuk GPT Image 1.5.

#### Format fail dan latar belakang

Secara lalai, hasil dihasilkan dalam PNG; JPEG dan WebP turut disediakan. Tahap pemampatan boleh ditetapkan untuk JPEG dan WebP. Ini ialah tetapan fail hasil yang berbeza daripada kualiti penjanaan.

Pengeluar menyediakan latar belakang telus dan legap, serta pilihan automatik. Ketelusan memerlukan PNG atau WebP: JPEG tidak menyimpan saluran alfa. Latar belakang telus sesuai apabila imej hendak digunakan sebagai objek berasingan dalam komposisi seterusnya. Sokongan parameter tertentu perlu dipadankan dengan kaedah yang dipilih.

#### Teks dan komposisi memerlukan semakan

Model boleh memasukkan tulisan dalam imej dan membentuk adegan daripada beberapa unsur, tetapi kedudukan teks dan objek yang tepat tidak dijamin. Keseragaman rupa watak atau reka bentuk antara penjanaan berasingan juga perlu dipantau.

Imej yang rumit mungkin mengambil masa lebih lama daripada imej mudah; menurut OpenAI, sesetengah tugasan rumit boleh mengambil masa sehingga dua minit. Hasil bergantung pada kelengkapan penerangan sumber dan semakan imej siap: kebolehbacaan tulisan, kedudukan butiran dan kesesuaian dengan adegan yang diminta dinilai pada fail itu sendiri.

**Ailoot · Imej** `POST /v1/images/generations` `gpt-image-1.5`

[`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Core&caller=gpt-image-1.5&fmt=images)

OpenAI /`gpt-image-1.5`

### Pengenalan

GPT Image 1.5 menghasilkan imej daripada arahan teks dengan tumpuan pada pematuhan arahan terperinci. Menyediakan tiga bentuk bingkai, beberapa tahap kualiti dan format hasil.

Input yang diterima

Teks

Hasil

Imej

### Tersedia di Ailoot · input & kaedah

**Ailoot · Imej** `POST /v1/images/generations`

Input

`text`

Output

`image`

Format output

Fail imej

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had gpt-image-1.5 | Lalai— |
| Medan`prompt` | Jenis`string` | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 | Lalai— |
| Medan`n` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 1 | Lalai1 |
| Medan`response_format` | Jenis`string` | KeperluanPilihan | Nilai & had url, b64\_json | Lalai— |
| Medan`stream` | Jenis`boolean` | KeperluanPilihan | Nilai & had | Lalaifalse |
| Medan`size` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`quality` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`background` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`output_format` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`output_compression` | Jenis`integer` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`moderation` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`input_fidelity` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`style` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`partial_images` | Jenis`integer` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |

Gabungan bahan input

**Teks kepada imej** · Diperlukan: prompt

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`material_types` | Kontraktext |
| Parameter`required` | Kontrakmodel, prompt |
| Parameter`optional_controls` | Kontraknull |
| Parameter`content_type` | Kontrakapplication/json |

Kitar hayat: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · task\_id sebenar yang dikembalikan atau rekod pustaka media

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

`GET /v1/media/assets`

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

Struktur kaedah dan ID adalah tepat; keupayaan pembekal berasingan daripada penerimaan permintaan.

### Pelan harga

#### Kadar kaedah Ailoot

Input teks

USD 0.005 */ 1K*

Output teks

USD 0.01 */ 1K*

Input, imej

USD 0.008 */ 1K tokens*

Output, imej

USD 0.032 */ 1K tokens*

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. [Cara rizab dan penyelesaian caj berfungsi →](https://ailoot.ai/docs/ms/billing/reserve/)

### Contoh permintaan

#### Ailoot · Imej

curlPython SDKNode.js SDK

```bash
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
```

```python
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])
```

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

### Terima dan simpan hasil

#### Ailoot · Imej

Muat turun setiap imej yang dikembalikan atau simpan kandungan Base64-nya

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Simpan semua hasil yang selesai

Simpan setiap imej yang selesai; dapatkan setiap URL yang dikembalikan atau nyahkod kandungan Base64-nya.

Simpan setiap item data. Nyahkod setiap b64\_json atau dapatkan setiap URL bertandatangan yang dikembalikan. Pilih sambungan nama fail berdasarkan MIME/bait sebenar.

##### Jika respons asal perlu disemak

Jika hasil penjanaan atau penyuntingan imej memerlukan semakan, simpan operation\_id/X-Client-Request-ID asal serta maklumat hasil yang dikembalikan. Pulihkan hasil sedia ada milik anda melalui pustaka media menggunakan nilai task\_id atau asset\_id sebenar. Jangan hantar semula permintaan penjanaan/penyuntingan atau bina URL tinjauan status daripada operation\_id.

Medan respons

| Medan | Jenis |
| --- | --- |
| Medan`created` | Jenisinteger |
| Medan`data[].url` | Jenisstring |
| Medan`data[].b64_json` | Jenisbase64 string |
| Medan`usage` | Jenisobject |

Ralat dan langkah seterusnya

| Respons | Syarat | Langkah seterusnya |
| --- | --- | --- |
| Respons400 · `invalid_request_error` | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |
| Respons`server_error` | SyaratRespons yang dikembalikan menyatakan bahawa operasi atau hasil memerlukan semakan | Langkah seterusnyaSimpan ID operasi/tugas asal yang dikembalikan, pengepala permintaan dan respons; teruskan pembacaan yang disokong bagi operasi asal tersebut. Jangan hantar semula permintaan penciptaan. |

### Alias

#### Alias model

<strong>Ailoot</strong> [`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Core&caller=gpt-image-1.5&fmt=images)
**Ailoot Ultra** [`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Ultra&caller=gpt-image-1.5&fmt=images)

#### Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

#### ID pemanggil berkaitan

[`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Core&caller=gpt-image-1.5&fmt=images), [`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Ultra&caller=gpt-image-1.5&fmt=images)

**Ailoot Ultra · Imej** `POST /v1/images/generations` `gpt-image-1.5`

[`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Ultra&caller=gpt-image-1.5&fmt=images)

OpenAI /`gpt-image-1.5`

### Pengenalan

GPT Image 1.5 menghasilkan imej daripada arahan teks dengan tumpuan pada pematuhan arahan terperinci. Menyediakan tiga bentuk bingkai, beberapa tahap kualiti dan format hasil.

Input yang diterima

Teks

Hasil

Imej

### Tersedia di Ailoot · input & kaedah

**Ailoot Ultra · Imej** `POST /v1/images/generations`

Input

`text`

Output

`image`

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had gpt-image-1.5 | Lalai— |
| Medan`prompt` | Jenis`string` | KeperluanDiperlukan | Nilai & had Panjang maksimum: 32,000 | Lalai— |
| Medan`size` | Jenis`string` | KeperluanPilihan | Nilai & had 1024x1024, 1536x1024, 1024x1536, auto | Lalaiauto |
| Medan`background` | Jenis`string` | KeperluanPilihan | Nilai & had transparent, opaque, auto | Lalaiauto |
| Medan`moderation` | Jenis`string` | KeperluanPilihan | Nilai & had low, auto Syarat: Gunakan auto untuk moderasi kandungan standard. | Lalai— |
| Medan`n` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 1 Maksimum: 10 | Lalai1 |
| Medan`quality` | Jenis`string` | KeperluanPilihan | Nilai & had auto, high, medium, low | Lalaiauto |
| Medan`output_compression` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 0 Maksimum: 100 Syarat: Digunakan pada output JPEG dan WebP; hantar nilai integer yang didokumenkan. | Lalai100 |
| Medan`output_format` | Jenis`string` | KeperluanPilihan | Nilai & had webp, png, jpeg | Lalaipng |
| Medan`stream` | Jenis`boolean` | KeperluanPilihan | Nilai & had false Syarat: Laluan ini mengembalikan satu respons JSON yang lengkap. | Lalaifalse |

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakprompt, model |
| Parameter`material_types` | Kontraktext |
| Parameter`optional` | Kontraksize, background, moderation, n, quality, output\_compression, output\_format, stream |
| Parameter`conditions` | KontrakLatar belakang lut sinar memerlukan PNG atau WebP., Pemampatan output digunakan pada JPEG atau WebP., Kaedah yang dipilih menjana daripada teks. Kawalan penyuntingan dan penstriman yang dihuraikan bagi pengeluar merupakan keupayaan berasingan. |

Kitar hayat: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · task\_id sebenar yang dikembalikan atau rekod pustaka media

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

`GET /v1/media/assets`

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

### Pelan harga

##### Cara caj akhir dikira

Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas

Tidak dinyatakan Apabila mod pantas dipilih

Mod flex

Tidak dinyatakan Apabila mod flex dipilih

Usaha penaakulan maksimum

Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default

#### Anggaran kadar untuk perbandingan

#### Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

| Konfigurasi | Jadual kadar | Kuantiti ramalan | Caj |
| --- | --- | --- | --- |
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Kuantiti ramalan— | Caj Input · Token input · Anggaran untuk perbandingan sahaja **—** / 1K token Output · Token output · Anggaran untuk perbandingan sahaja **—** / 1K token Input · Bacaan cache · Anggaran untuk perbandingan sahaja **—** / 1K token Input · Penulisan cache · Anggaran untuk perbandingan sahaja **—** / 1K token Input · Penulisan cache, 1 jam · Anggaran untuk perbandingan sahaja **—** / 1K token |
| KonfigurasiAnggaran kos penjanaan | Jadual kadar— | Kuantiti ramalananggaran untuk satu penjanaan | Caj Output · Anggaran kos penjanaan · Anggaran untuk perbandingan sahaja **$0.32768** anggaran sebelum penjanaan Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai. |

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. [Cara rizab dan penyelesaian caj berfungsi →](https://ailoot.ai/docs/ms/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · Imej

curl

```bash
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
```

### Terima dan simpan hasil

#### Ailoot Ultra · Imej

Muat turun setiap imej yang dikembalikan atau simpan kandungan Base64-nya

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

Pembacaan kandungan lain

Baca aset sedia ada yang menjadi milik anda

```bash
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.
```

##### Simpan semua hasil yang selesai

Simpan setiap imej yang selesai; dapatkan setiap URL yang dikembalikan atau nyahkod kandungan Base64-nya.

Simpan respons dan pengepala yang lengkap, setiap output sebenar, pengecam asal yang dikembalikan serta semua medan penggunaan. Pulihkan operasi asal tanpa menghantar permintaan penciptaan sekali lagi.

##### Jika respons asal perlu disemak

Simpan X-Client-Request-ID yang dikembalikan untuk penyelarasan rekod. Baca hanya nilai task\_id/asset\_id sebenar yang dikembalikan atau pustaka media milik anda; jangan sekali-kali bina URL tugas daripada ID operasi atau hantar semula permintaan penciptaan.

Medan respons

| Medan | Jenis |
| --- | --- |
| Medan`created` | Jenis |
| Medan`data[].url` | Jenis |
| Medan`data[].b64_json` | Jenis |
| Medan`usage` | Jenis |

### Alias

#### Alias model

<strong>Ailoot</strong> [`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Core&caller=gpt-image-1.5&fmt=images)
**Ailoot Ultra** [`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Ultra&caller=gpt-image-1.5&fmt=images)

#### Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

#### ID pemanggil berkaitan

[`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Core&caller=gpt-image-1.5&fmt=images), [`gpt-image-1.5`](https://ailoot.ai/models/ms/#m=gpt-image-1.5&route=Ultra&caller=gpt-image-1.5&fmt=images)

FAQ · GPT Image 1.5

Apakah input dan hasil yang tersedia?

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

Apakah medan yang digunakan oleh permintaan?

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

Apakah had yang terpakai?

`POST /v1/images/generations` · `gpt-image-1.5`: `n.minimum`: `1` `POST /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`

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

## Syarikat dan portfolio projeknya

Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.

## Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan

Pilih pelan berdiskaun untuk permintaan berkala anda.

Kod promosi sehingga 50%

Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.

Perbelanjaan dalam sejarah

Model, token dan jumlah disimpan bagi setiap permintaan.

[Pilih langganan](https://ailoot.ai/docs/ms/billing/subscriptions/) · [Lihat harga model](https://ailoot.ai/models/ms/)

## Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial

Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.

Lesen penjual semula

Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.

Dokumen pada laman

Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

[Mohon lesen penjual semula](mailto:support@ailoot.ai) · [Tawaran dan perjanjian lesen](https://ailoot.ai/legal/offer?lang=ms)

## Ailoot · Syarikat dan portfolio projeknya





Ailoot berteraskan pengalaman operasi yang mantap, pangkalan pelanggan yang besar, perkhidmatan yang stabil dan pemantauan KPI berterusan.





Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.





Ailoot menggunakan pengalaman operasi ini untuk akses API kepada ciri AI dalam produk pelanggan, ejen, aplikasi dan automasi.
