Source: https://ailoot.ai/models/id/gpt-image-2-5-flare/
Canonical: https://ailoot.ai/models/id/gpt-image-2-5-flare/
Language: id

# OpenAI: GPT Image 2.5 Flare

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

## [OpenAI: GPT Image 2.5 Flare](https://ailoot.ai/models/id/gpt-image-2-5-flare/)

GPT Image 2.5 Flare membuat dan mengedit gambar dari teks dan referensi, dengan fokus pada pembuatan visual sehari-hari yang cepat. Model ini mendukung ukuran khusus, latar transparan, mask dan tingkat kualitas hingga max untuk draf, ilustrasi dan aset kampanye.

- [**Ailoot · Gambar** `POST /v1/images/generations` `gpt-image-2.5-flare`](https://ailoot.ai/models/id/gpt-image-2-5-flare/#method-0)
- [**Ailoot Ultra · Gambar** `POST /v1/images/generations` `gpt-image-2.5-flare`](https://ailoot.ai/models/id/gpt-image-2-5-flare/#method-1)
- [**Ailoot Ultra · Gambar** `POST /v1/images/generations` `openai/gpt-image-2.5-flare`](https://ailoot.ai/models/id/gpt-image-2-5-flare/#method-2)

Tentang model

Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.

GPT Image 2.5 Flare adalah edisi pembuatan dan pengeditan gambar OpenAI yang diposisikan untuk pekerjaan sehari-hari yang cepat dan berkualitas tinggi. Model ini menerima teks dan gambar serta mengembalikan hasil gambar. Gunakan untuk draf visual, ilustrasi, konsep produk dan tugas kreatif berulang ketika brief perlu segera menjadi gambar yang dapat digunakan. Flare terpisah dari Sunburst, yang penempatannya menekankan ketepatan pengeditan. Pilih Flare untuk pembuatan gambar rutin dan Sunburst ketika pengeditan presisi menjadi prioritas.

Mulailah dengan subjek utama, aksi, lingkungan, komposisi dan perlakuan visual. Untuk ilustrasi kampanye, minta pesepeda melintasi jembatan kecil dalam cahaya senja hangat, dengan siluet tegas dan langit terbuka untuk teks yang ditambahkan nanti. Brief eksplorasi ringkas dapat membiarkan keputusan estetis terbuka; brief produksi perlu menyebutkan detail dan penempatan yang penting. Alur kerja pembuatan dan pengeditan langsung mengizinkan prompt hingga 32.000 karakter dan satu hingga sepuluh hasil, sehingga berguna untuk membandingkan beberapa variasi terhadap tujuan yang sama.

Pengeditan dapat menyertakan hingga enam belas gambar referensi. Tetapkan peran jelas untuk setiap referensi, alih-alih mengharapkan model memutuskan apakah gambar mewakili identitas subjek, pemandangan atau gaya. Mask dapat memandu perubahan pada suatu wilayah; dengan beberapa gambar, mask berlaku pada yang pertama. Gambar dan mask memerlukan format serta dimensi yang cocok, dan mask harus mengandung kanal alfa. Panduan mewajibkan sumber dan mask berukuran di bawah 50 MB. Mask merupakan panduan, bukan janji pelestarian batas secara tepat, sehingga nyatakan perubahan yang diinginkan maupun hal yang harus tetap dikenali.

Flare mendukung kualitas low, medium, high, xhigh, max dan otomatis, dengan auto sebagai pengaturan bawaan. Kualitas lebih rendah dapat melayani draf visual cepat; pengaturan lebih tinggi dapat dibandingkan untuk detail aset akhir. Kualitas terpisah dari ukuran dan kompresi keluaran. Ukuran standar meliputi 1024 × 1024, 1536 × 1024 dan 1024 × 1536, dengan dimensi otomatis atau khusus juga tersedia. Pilih orientasi berdasarkan penempatan akhir dan ruang adegan yang berguna.

Lebar dan tinggi khusus harus merupakan kelipatan enam belas, tanpa sisi di atas 3840 piksel. Rasio yang diizinkan berkisar dari 1:3 hingga 3:1, dan luas total minimal 655.360 serta maksimal 8.294.400 piksel. Keempat syarat berlaku bersama. Panduan mengidentifikasi resolusi di atas 2560 × 1440 sebagai eksperimental. Gunakan bingkai valid yang sesuai dengan komposisi, dan sertakan detail yang peka terhadap pemotongan dalam brief, alih-alih menganggap resolusi lebih besar otomatis memperbaiki tata letak.

Format hasil secara bawaan adalah PNG, dengan alternatif JPEG dan WebP. JPEG dan WebP mengizinkan kompresi dari 0 hingga 100. Untuk latar transparan, pilih PNG atau WebP; latar opak dan otomatis juga didukung. Aset transparan dapat ditempatkan dalam tata letak berikutnya, sedangkan gambar opak menyertakan latarnya sendiri. Pilih format, latar dan kompresi sesuai kebutuhan penyerahan sebenarnya, dan simpan berkas yang selesai bersama brief serta pengaturan pilihan.

Pembuatnya mendokumentasikan pembuatan dan pengeditan gambar langsung, serta alat gambar percakapan yang dapat mempertahankan hasil pilihan untuk perubahan lanjutan. Dalam alur kerja tersebut, tindakan dapat berupa otomatis, pembuatan paksa atau pengeditan paksa ketika gambar berada dalam konteks. Streaming dapat menampilkan hingga tiga gambar parsial sebelum hasil akhir. Pratinjau tersebut menunjukkan kemajuan, bukan hasil jadi tambahan. Untuk pekerjaan berulang, lanjutkan dari gambar pilihan dan jelaskan perubahan yang terlihat, seperti memindahkan satu objek atau menyesuaikan perlakuan warna. Antarmuka pembuatnya juga mendukung pemrosesan batch.

Periksa tulisan, penempatan objek, detail subjek dan komposisi gambar pada ukuran yang dimaksud. GPT Image masih dapat kesulitan dengan penempatan teks yang tepat, tata letak terstruktur dan identitas visual yang berulang antarpembuatan. Pertahankan variasi yang diterima sebagai referensi berikutnya dan persempit pengeditan selanjutnya pada masalah yang penting. Peran Flare dalam pembuatan sehari-hari berguna untuk urutan yang jelas berupa brief, alternatif visual, pemilihan dan penyempurnaan, dengan aset akhir dinilai terhadap tujuan kreatif sebenarnya.

**Ailoot · Gambar** `POST /v1/images/generations` `gpt-image-2.5-flare`

[`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images)

OpenAI /`gpt-image-2.5-flare`

### Mulai

GPT Image 2.5 Flare membuat dan mengedit gambar dari teks dan referensi, dengan fokus pada pembuatan visual sehari-hari yang cepat. Model ini mendukung ukuran khusus, latar transparan, mask dan tingkat kualitas hingga max untuk draf, ilustrasi dan aset kampanye.

Masukan yang diterima

Teks

Hasil

Gambar

### Tersedia di Ailoot · masukan & metode

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

Masukan

`text`

Keluaran

`image`

Format keluaran

Berkas gambar

| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
| --- | --- | --- | --- | --- |
| Kolom`model` | Jenis`string` | PersyaratanWajib | Nilai & batasan gpt-image-2.5-flare | Bawaan— |
| Kolom`prompt` | Jenis`string` | PersyaratanWajib | Nilai & batasan Panjang minimum: 1 | Bawaan— |
| Kolom`n` | Jenis`integer` | PersyaratanOpsional | Nilai & batasan Minimum: 1 | Bawaan1 |
| Kolom`response_format` | Jenis`string` | PersyaratanOpsional | Nilai & batasan url, b64\_json | Bawaan— |
| Kolom`stream` | Jenis`boolean` | PersyaratanOpsional | Nilai & batasan | Bawaanfalse |
| Kolom`size` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |
| Kolom`quality` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |
| Kolom`background` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |
| Kolom`output_format` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |
| Kolom`output_compression` | Jenis`integer` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |
| Kolom`moderation` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |
| Kolom`input_fidelity` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |
| Kolom`style` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |
| Kolom`partial_images` | Jenis`integer` | PersyaratanOpsional | Nilai & batasan Bergantung pada model | Bawaan— |

Kombinasi bahan masukan

**Teks ke gambar** · Wajib: prompt

Parameter metode dan siklus hidup

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

Siklus hidup: `synchronous_result_then_owned_library`

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

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

`GET /v1/media/assets`

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

Struktur metode dan ID bersifat eksak; kemampuan pemasok terpisah dari penerimaan permintaan.

### Paket

#### Tarif metode Ailoot

Masukan teks

US$0,005 */ 1K*

Masukan, gambar

US$0,008 */ 1K tokens*

Keluaran, gambar

US$0,03 */ 1K tokens*

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. [Cara kerja cadangan dan penyelesaian tagihan →](https://ailoot.ai/docs/id/billing/reserve/)

### Contoh permintaan

#### Ailoot · Gambar

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-2.5-flare", "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-2.5-flare', '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-2.5-flare", "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 · Gambar

Unduh setiap gambar yang dikembalikan atau simpan konten 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 gambar yang selesai; ambil setiap URL yang dikembalikan atau dekode konten Base64-nya.

Simpan setiap item data. Dekodekan setiap b64\_json atau ambil data dari setiap URL bertanda tangan yang dikembalikan. Pilih ekstensi nama file berdasarkan MIME/bytes aktual.

##### Jika respons asli perlu diperiksa

Jika hasil pembuatan atau penyuntingan gambar perlu diperiksa, simpan operation\_id/X-Client-Request-ID asli dan informasi hasil yang dikembalikan. Pulihkan hasil milik Anda yang sudah ada melalui pustaka media menggunakan nilai task\_id atau asset\_id aktual. Jangan mengirim ulang permintaan pembuatan/penyuntingan atau membuat URL polling dari operation\_id.

Kolom respons

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

Kesalahan dan langkah berikutnya

| Respons | Kondisi | Langkah berikutnya |
| --- | --- | --- |
| Respons400 · `invalid_request_error` | KondisiBidang wajib, representasi materi, atau nilai parameter tidak valid | Langkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru. |
| Respons`server_error` | KondisiRespons yang dikembalikan menyatakan bahwa operasi atau hasil perlu diperiksa | Langkah berikutnyaSimpan ID operasi/tugas asli yang dikembalikan, header permintaan, dan respons; lanjutkan pembacaan yang didukung untuk operasi asli tersebut. Jangan kirim ulang permintaan pembuatan. |

### Alias

#### Alias model

<strong>Ailoot</strong> [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images)
**Ailoot Ultra** [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images), [`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images)

#### Alias jalur metode

`/v1/images`

#### ID pemanggil terkait

[`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images)

**Ailoot Ultra · Gambar** `POST /v1/images/generations` `gpt-image-2.5-flare`

[`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images)

OpenAI /`gpt-image-2.5-flare`

ID model

- `gpt-image-2.5-flare`
- `openai/gpt-image-2.5-flare`

### Mulai

GPT Image 2.5 Flare membuat dan mengedit gambar dari teks dan referensi, dengan fokus pada pembuatan visual sehari-hari yang cepat. Model ini mendukung ukuran khusus, latar transparan, mask dan tingkat kualitas hingga max untuk draf, ilustrasi dan aset kampanye.

Masukan yang diterima

Teks

Hasil

Gambar

### Tersedia di Ailoot · masukan & metode

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

Masukan

`text`

Keluaran

`image`

| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
| --- | --- | --- | --- | --- |
| Kolom`model` | Jenis`string` | PersyaratanWajib | Nilai & batasan gpt-image-2.5-flare | Bawaan— |
| Kolom`prompt` | Jenis`string` | PersyaratanWajib | Nilai & batasan Panjang maksimum: 32.000 | Bawaan— |
| Kolom`size` | Jenis`string` | PersyaratanOpsional | Nilai & batasan Kondisi: Gunakan auto atau WIDTHxHEIGHT dengan kedua dimensi habis dibagi 16. Sisi terpanjang paling banyak 3,840 piksel dan ukuran total paling banyak 8,300,000 piksel. | Bawaanauto |
| Kolom`background` | Jenis`string` | PersyaratanOpsional | Nilai & batasan transparent, opaque, auto | Bawaanauto |
| Kolom`moderation` | Jenis`string` | PersyaratanOpsional | Nilai & batasan low, auto Kondisi: Gunakan auto untuk moderasi konten standar. | Bawaan— |
| Kolom`n` | Jenis`integer` | PersyaratanOpsional | Nilai & batasan Minimum: 1 Maksimum: 10 | Bawaan1 |
| Kolom`quality` | Jenis`string` | PersyaratanOpsional | Nilai & batasan auto, high, medium, low | Bawaanauto |
| Kolom`output_compression` | Jenis`integer` | PersyaratanOpsional | Nilai & batasan Minimum: 0 Maksimum: 100 Kondisi: Berlaku untuk keluaran JPEG dan WebP; kirim nilai bilangan bulat yang didokumentasikan. | Bawaan100 |
| Kolom`output_format` | Jenis`string` | PersyaratanOpsional | Nilai & batasan webp, png, jpeg | Bawaanpng |
| Kolom`stream` | Jenis`boolean` | PersyaratanOpsional | Nilai & batasan false Kondisi: Rute ini mengembalikan satu respons JSON yang lengkap. | Bawaanfalse |

Parameter metode dan siklus hidup

| 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 transparan memerlukan PNG atau WebP., Kompresi keluaran berlaku untuk JPEG atau WebP., Metode yang dipilih membuat keluaran dari teks. Kontrol penyuntingan dan streaming yang dijelaskan untuk pembuat model merupakan kemampuan terpisah. |

Siklus hidup: `synchronous_result_then_owned_library`

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

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

`GET /v1/media/assets`

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

### Paket

##### Cara menghitung biaya akhir

Tarif yang ditampilkan memperkirakan biaya sebelum pembuatan. Biaya akhir dihitung dari biaya yang tercatat untuk proses pembuatan awal. Durasi keluaran yang terukur dan kuantitas perkiraan bukanlah kuantitas akhir yang ditagihkan.

Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.

Mode Fast

Tidak ditentukan Saat mode fast dipilih

Mode Flex

Tidak ditentukan Saat mode flex dipilih

Upaya penalaran maksimum

Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default

#### Perkiraan tarif untuk perbandingan

#### Harga menurut konfigurasi

Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.

| Konfigurasi | Jadwal tarif | Jumlah perkiraan | Biaya |
| --- | --- | --- | --- |
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Jumlah perkiraan— | Biaya Masukan · Token masukan · Perkiraan hanya untuk perbandingan **—** / 1K token Keluaran · Token keluaran · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Pembacaan cache · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Penulisan cache · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Penulisan cache, 1 jam · Perkiraan hanya untuk perbandingan **—** / 1K token |
| KonfigurasiPerkiraan biaya pembuatan | Jadwal tarif— | Jumlah perkiraanestimasi satu kali pembuatan | Biaya Keluaran · Perkiraan biaya pembuatan · Perkiraan hanya untuk perbandingan **$0.24576** estimasi sebelum pembuatan Perkiraan ini bukan biaya tambahan maupun tarif tetap untuk proses pembuatan yang telah selesai. |

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. [Cara kerja cadangan dan penyelesaian tagihan →](https://ailoot.ai/docs/id/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · Gambar

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-2.5-flare', '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 · Gambar

Unduh setiap gambar yang dikembalikan atau simpan konten 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 konten lain

Baca aset yang sudah ada dan 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 gambar yang selesai; ambil setiap URL yang dikembalikan atau dekode konten Base64-nya.

Simpan respons dan header secara lengkap, setiap keluaran aktual, identifikator asli yang dikembalikan, dan semua kolom usage. Pulihkan operasi asli tanpa mengirim ulang permintaan pembuatan.

##### Jika respons asli perlu diperiksa

Simpan X-Client-Request-ID yang dikembalikan untuk rekonsiliasi. Baca hanya nilai task\_id/asset\_id yang benar-benar dikembalikan atau pustaka media milik Anda; jangan pernah membuat URL tugas dari ID operasi dan jangan pernah mengirim ulang permintaan pembuatan.

Kolom respons

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

### Alias

#### Alias model

<strong>Ailoot</strong> [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images)
**Ailoot Ultra** [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images), [`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images)

#### Alias jalur metode

`/v1/images`

#### ID pemanggil terkait

[`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images)

**Ailoot Ultra · Gambar** `POST /v1/images/generations` `openai/gpt-image-2.5-flare`

[`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images)

OpenAI /`openai/gpt-image-2.5-flare`

ID model

- `gpt-image-2.5-flare`
- `openai/gpt-image-2.5-flare`

### Mulai

GPT Image 2.5 Flare membuat dan mengedit gambar dari teks dan referensi, dengan fokus pada pembuatan visual sehari-hari yang cepat. Model ini mendukung ukuran khusus, latar transparan, mask dan tingkat kualitas hingga max untuk draf, ilustrasi dan aset kampanye.

Masukan yang diterima

Teks · Gambar

Hasil

Gambar

### Tersedia di Ailoot · masukan & metode

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

Masukan

`text`, `image`

Keluaran

`image`

| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
| --- | --- | --- | --- | --- |
| Kolom`model` | Jenis`string` | PersyaratanWajib | Nilai & batasan openai/gpt-image-2.5-flare | Bawaan— |
| Kolom`prompt` | Jenis`string` | PersyaratanWajib | Nilai & batasan Panjang minimum: 1 | Bawaan— |
| Kolom`aspect_ratio` | Jenis`string` | PersyaratanOpsional | Nilai & batasan 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto | Bawaan— |
| Kolom`quality` | Jenis`string` | PersyaratanOpsional | Nilai & batasan auto, low, medium, high, xhigh, max | Bawaan— |
| Kolom`background` | Jenis`string` | PersyaratanOpsional | Nilai & batasan auto, transparent, opaque | Bawaan— |
| Kolom`n` | Jenis`integer` | PersyaratanOpsional | Nilai & batasan Minimum: 1 Maksimum: 10 | Bawaan— |
| Kolom`input_references` | Jenis`array` | PersyaratanOpsional | Nilai & batasan Item minimum: 0 Item maksimum: 16 | Bawaan— |
| Kolom`output_compression` | Jenis`integer` | PersyaratanOpsional | Nilai & batasan Minimum: 0 Maksimum: 100 | Bawaan— |
| Kolom`provider` | Jenis`object` | PersyaratanOpsional | Nilai & batasan | Bawaan— |

Parameter metode dan siklus hidup

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

Siklus hidup: `synchronous_result_then_owned_library`

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

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

`GET /v1/media/assets`

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

### Paket

##### Cara menghitung biaya akhir

Tarif yang ditampilkan memperkirakan biaya sebelum pembuatan. Biaya akhir dihitung dari biaya yang tercatat untuk proses pembuatan awal. Durasi keluaran yang terukur dan kuantitas perkiraan bukanlah kuantitas akhir yang ditagihkan.

Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.

Mode Fast

Tidak ditentukan Saat mode fast dipilih

Mode Flex

Tidak ditentukan Saat mode flex dipilih

Upaya penalaran maksimum

Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default

#### Perkiraan tarif untuk perbandingan

#### Harga menurut konfigurasi

Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.

| Konfigurasi | Jadwal tarif | Jumlah perkiraan | Biaya |
| --- | --- | --- | --- |
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Jumlah perkiraan— | Biaya Masukan · Token masukan · Perkiraan hanya untuk perbandingan **—** / 1K token Keluaran · Token keluaran · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Pembacaan cache · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Penulisan cache · Perkiraan hanya untuk perbandingan **—** / 1K token Masukan · Penulisan cache, 1 jam · Perkiraan hanya untuk perbandingan **—** / 1K token |
| KonfigurasiPerkiraan biaya pembuatan | Jadwal tarif— | Jumlah perkiraanestimasi satu kali pembuatan | Biaya Keluaran · Perkiraan biaya pembuatan · Perkiraan hanya untuk perbandingan **$0.24576** estimasi sebelum pembuatan Perkiraan ini bukan biaya tambahan maupun tarif tetap untuk proses pembuatan yang telah selesai. |

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. [Cara kerja cadangan dan penyelesaian tagihan →](https://ailoot.ai/docs/id/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · Gambar

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={'model': 'openai/gpt-image-2.5-flare', '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
```

### Terima dan simpan hasil

#### Ailoot Ultra · Gambar

Unduh setiap gambar yang dikembalikan atau simpan konten 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 konten lain

Baca aset yang sudah ada dan 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 gambar yang selesai; ambil setiap URL yang dikembalikan atau dekode konten Base64-nya.

Simpan respons dan header secara lengkap, setiap keluaran aktual, identifikator asli yang dikembalikan, dan semua kolom usage. Pulihkan operasi asli tanpa mengirim ulang permintaan pembuatan.

##### Jika respons asli perlu diperiksa

Simpan X-Client-Request-ID yang dikembalikan untuk rekonsiliasi. Baca hanya nilai task\_id/asset\_id yang benar-benar dikembalikan atau pustaka media milik Anda; jangan pernah membuat URL tugas dari ID operasi dan jangan pernah mengirim ulang permintaan pembuatan.

Kolom respons

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

### Alias

#### Alias model

<strong>Ailoot</strong> [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images)
**Ailoot Ultra** [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images), [`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images)

#### Alias jalur metode

`/v1/images`

#### ID pemanggil terkait

[`openai/gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=openai%2Fgpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Core&caller=gpt-image-2.5-flare&fmt=images), [`gpt-image-2.5-flare`](https://ailoot.ai/models/id/#m=openai%2Fgpt-image-2.5-flare&route=Ultra&caller=gpt-image-2.5-flare&fmt=images)

FAQ · OpenAI: GPT Image 2.5 Flare

Input dan hasil apa yang tersedia?

`POST /v1/images/generations` · `gpt-image-2.5-flare`: `text` → `image` `POST /v1/images/generations` · `gpt-image-2.5-flare`: `text` → `image` `POST /v1/images/generations` · `openai/gpt-image-2.5-flare`: `text`, `image` → `image`

Kolom apa yang digunakan permintaan?

`POST /v1/images/generations` · `gpt-image-2.5-flare`: `model`, `prompt`, `n`, `response_format`, `stream` `POST /v1/images/generations` · `gpt-image-2.5-flare`: `model`, `prompt`, `size`, `background`, `moderation`, `n`, `quality`, `output_compression`, `output_format`, `stream` `POST /v1/images/generations` · `openai/gpt-image-2.5-flare`: `model`, `prompt`, `aspect_ratio`, `quality`, `background`, `n`, `input_references`, `output_compression`, `provider`

Batasan apa yang berlaku?

`POST /v1/images/generations` · `gpt-image-2.5-flare`: `n.minimum`: `1` `POST /v1/images/generations` · `gpt-image-2.5-flare`: `prompt.maximum_length`: `32000`; `n.minimum`: `1`; `n.maximum`: `10`; `output_compression.minimum`: `0`; `output_compression.maximum`: `100` `POST /v1/images/generations` · `openai/gpt-image-2.5-flare`: `n.minimum`: `1`; `n.maximum`: `10`; `output_compression.minimum`: `0`; `output_compression.maximum`: `100`

Hubungkan Ailoot ke Claude Code, OpenCode, Hermes, atau aplikasi Anda.

## Perusahaan dan portofolio proyeknya

Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.

## Beli token dengan diskon.

Diskon langganan untuk pekerjaan rutin. Kode promo — hingga 50% untuk pembelian token.

Langganan

Pilih paket dengan diskon untuk permintaan rutin Anda.

Kode promo hingga 50%

Masukkan kode saat membeli. Harga dihitung ulang sesuai promosi aktif.

Biaya dalam riwayat

Model, token, dan jumlah tagihan disimpan untuk setiap permintaan.

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

## Hubungkan API ke produk yang Anda jual.

SaaS, aplikasi, dan bot — sesuai penawaran dan perjanjian lisensi Ailoot. Untuk penjualan kembali, mintalah lisensi reseller.

Aplikasi komersial

Integrasikan pembuatan teks, gambar, video, dan suara dalam fitur berbayar layanan Anda.

Lisensi reseller

Kirim deskripsi proyek dan skema akses. Mintalah ketentuan penggunaan dan penjualan kembali secara tertulis.

Dokumen di situs

Penawaran, perjanjian lisensi, dan kebijakan pemrosesan data tersedia sebelum koneksi.

[Minta lisensi reseller](mailto:support@ailoot.ai) · [Penawaran dan perjanjian lisensi](https://ailoot.ai/legal/offer?lang=id)

## Ailoot · Perusahaan dan portofolio proyeknya





Ailoot bertumpu pada pengalaman operasional yang teruji, basis pelanggan yang besar, layanan yang stabil, dan pemantauan KPI berkelanjutan.





Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.





Ailoot memanfaatkan pengalaman operasional ini untuk akses API ke fitur AI dalam produk pelanggan, agen, aplikasi, dan otomatisasi.
