GPT Image 2.5 Sunburst 2026-09-08
GPT Image 2.5 Sunburst menghasilkan imej berdasarkan arahan teks. Ia menyokong saiz tersuai, tahap kualiti yang lebih luas dan latar belakang telus; pengeluar turut menekankan ketepatan penyuntingan.
Tentang model
Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.
Penjanaan dan pengendalian imej
GPT Image 2.5 Sunburst ialah model OpenAI untuk menghasilkan imej. Pengeluar memberi perhatian khusus kepada ketepatan penyuntingan bahan asal. Model menyokong arahan teks dan, dalam operasi yang disediakan untuk tujuan tersebut, bahan visual asal.
Kad Ailoot semasa menyediakan mod penghasilan imej daripada teks. Anda boleh menetapkan adegan, komposisi, gaya dan butiran hasil yang dikehendaki. Kaedah penggunaan rujukan, penyuntingan dan perubahan kawasan melalui mask yang diterangkan oleh OpenAI memerlukan sokongan input imej secara berasingan; adanya penjanaan teks tidak mengesahkan sokongan tersebut.
Kualiti dan bentuk bingkai
Pilihan low, medium, high, xhigh, max dan auto tersedia. Pemilihan kualiti mengawal mod pembentukan imej. Ia berbeza daripada saiz komposisi dan tahap pemampatan fail yang dihasilkan.
Saiz boleh berbentuk segi empat sama, mendatar, menegak, dipilih secara automatik atau ditetapkan secara manual. Untuk saiz tersuai, setiap sisi mestilah gandaan 16 piksel dan tidak melebihi 3840 piksel. Luas mestilah antara 655 360 hingga 8 294 400 piksel, manakala nisbah sisi panjang kepada sisi pendek tidak boleh melebihi 3:1. Semua syarat terpakai serentak.
Pengeluar menandai resolusi melebihi 2560x1440 sebagai eksperimen. Bingkai besar membolehkan ruang komposisi yang sesuai dipilih, tetapi tulisan dan kedudukan objek tetap perlu diperiksa.
Format hasil dan latar belakang
PNG digunakan secara lalai; JPEG dan WebP turut disediakan. Pemampatan boleh dilaraskan dalam JPEG dan WebP. Latar belakang telus memerlukan PNG atau WebP kerana JPEG tidak mengekalkan saluran alfa. Selain ketelusan, latar belakang legap dan pemilihan automatik turut disediakan.
Saiz, kualiti, format dan latar belakang mengawal aspek hasil yang berbeza. Gaya imej ditetapkan melalui penerangan teks bersama kandungan adegan. Sokongan tetapan tertentu perlu dipertimbangkan secara berasingan daripada keupayaan umum pengeluar.
Ketepatan suntingan dan pemeriksaan imej
Menurut OpenAI, pemprosesan arahan yang rumit boleh mengambil masa sehingga dua minit. Ini menerangkan penjanaan di pihak pengeluar, bukan jaminan jumlah masa untuk menerima hasil dalam aplikasi tertentu.
Dalam operasi penyuntingan yang disokong secara berasingan, mask memandu perubahan pada kawasan yang dipilih. Ia tidak menjamin hasil yang sepadan tepat dengan sempadan, maka janji suntingan setempat yang tepat adalah terlalu kuat. Mod tersebut memerlukan cara yang sesuai untuk menghantar bahan asal.
Semasa penjanaan, model juga boleh tersilap meletakkan teks dan butiran atau mengubah rupa watak antara imej berasingan. Tulisan, komposisi dan kebolehulangan perlu diperiksa pada fail yang siap. Arahan yang terperinci sekalipun tidak menjamin sifat tersebut.
Ailoot · Imej POST /v1/images/generations gpt-image-2.5-sunburst-2026-09-08
gpt-image-2.5-sunburst-2026-09-08
gpt-image-2.5-sunburst-2026-09-08Pengenalan
GPT Image 2.5 Sunburst menghasilkan imej berdasarkan arahan teks. Ia menyokong saiz tersuai, tahap kualiti yang lebih luas dan latar belakang telus; pengeluar turut menekankan ketepatan penyuntingan.
- 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 |
|---|---|---|---|---|
Medanmodel | Jenisstring | KeperluanDiperlukan | Nilai & had gpt-image-2.5-sunburst-2026-09-08 | Lalai— |
Medanprompt | Jenisstring | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 | Lalai— |
Medann | Jenisinteger | KeperluanPilihan | Nilai & had Minimum: 1 | Lalai1 |
Medanresponse_format | Jenisstring | KeperluanPilihan | Nilai & had url, b64_json | Lalai— |
Medanstream | Jenisboolean | KeperluanPilihan | Nilai & had | Lalaifalse |
Medansize | Jenisstring | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Medanquality | Jenisstring | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Medanbackground | Jenisstring | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Medanoutput_format | Jenisstring | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Medanoutput_compression | Jenisinteger | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Medanmoderation | Jenisstring | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Medaninput_fidelity | Jenisstring | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Medanstyle | Jenisstring | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Medanpartial_images | Jenisinteger | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
Gabungan bahan input
Teks kepada imej · Diperlukan: prompt
Parameter kaedah dan kitar hayat
| Parameter | Kontrak |
|---|---|
Parametermaterial_types | Kontraktext |
Parameterrequired | Kontrakmodel, prompt |
Parameteroptional_controls | Kontraknull |
Parametercontent_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
POST /v1/images/generations- Input teks
- USD 0.005 / 1K
- Input, imej
- USD 0.008 / 1K tokens
- Output, imej
- USD 0.03 / 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 →
Contoh permintaan
Ailoot · Imej
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-sunburst-2026-09-08", "prompt": ""}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin
def save_images(items):
if not items: raise SystemExit("No completed images; retain the full response")
for index, item in enumerate(items):
encoded=item.get("b64_json")
uri=item.get("url", "")
if not encoded and uri.startswith("data:image/"):
header, separator, encoded=uri.partition(",")
if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
if encoded:
raw=base64.b64decode(encoded,validate=True)
elif uri:
uri=urljoin("https://api.ailoot.ai",uri)
parsed=urlsplit(uri)
if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
raise SystemExit("Invalid returned image URL")
owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
args=["curl","--fail-with-body","--silent","--show-error",uri]
if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
temporary=Path(f"image-{index}.bin")
subprocess.run(args+["-o",str(temporary)],check=True)
raw=temporary.read_bytes()
temporary.unlink()
else: raise SystemExit("Image has neither bytes nor URL")
if not raw: raise SystemExit("Empty image result")
ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
Path(f"image-{index}.{ext}").write_bytes(raw)
print("Every returned image saved; complete response metadata retained")
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Set your actual UTF-8 image brief file")
request={'model': 'gpt-image-2.5-sunburst-2026-09-08', 'prompt': ''}
request["prompt"]=f.read_text(encoding="utf-8")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "gpt-image-2.5-sunburst-2026-09-08", "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}/contentGET /v1/media/assetsGET /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 |
|---|---|
Medancreated | Jenisinteger |
Medandata[].url | Jenisstring |
Medandata[].b64_json | Jenisbase64 string |
Medanusage | 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. |
Responsserver_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
Ailoot gpt-image-2.5-sunburst-2026-09-08
Alias laluan kaedah
Gunakan laluan kaedah yang dipaparkan di atas.
ID pemanggil berkaitan
FAQ · GPT Image 2.5 Sunburst 2026-09-08
- Apakah input dan hasil yang tersedia?
POST /v1/images/generations·gpt-image-2.5-sunburst-2026-09-08:text→image- Apakah medan yang digunakan oleh permintaan?
POST /v1/images/generations·gpt-image-2.5-sunburst-2026-09-08:model,prompt,n,response_format,stream- Apakah had yang terpakai?
POST /v1/images/generations·gpt-image-2.5-sunburst-2026-09-08:n.minimum:1