model

OpenAI: GPT-5.4 Image 2

Markdown · JSON

OpenAI: GPT-5.4 Image 2

Aliran kerja yang menggandingkan penaakulan teks GPT-5.4 dengan penjanaan dan penyuntingan imej GPT Image 2. Gunakan taklimat bertulis dan rujukan visual untuk membangunkan ilustrasi atau suntingan sambil mengekalkan peranan komponen teks dan imej yang berbeza.

Tentang model

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

GPT-5.4 Image 2 menerangkan aliran kerja yang menggabungkan model teks GPT-5.4 daripada OpenAI dengan GPT Image 2 untuk penjanaan dan penyuntingan imej. Komponen mempunyai peranan berbeza: GPT-5.4 boleh mentafsir taklimat dan membangunkan arahan bertulis, manakala GPT Image 2 mencipta atau mengubah imej. GPT-5.4 menerima teks dan imej serta menghasilkan teks; GPT Image 2 menerima input teks dan imej serta menghasilkan imej.

Untuk visual baharu, terangkan tujuan, subjek, komposisi, gaya dan butiran yang penting bagi hasil. Contoh tugas ialah menyediakan ilustrasi artikel: tentukan idea yang perlu disampaikan oleh imej, pemotongan yang dimaksudkan dan ruang yang diperlukan untuk teks halaman yang mengiringinya. Peringkat bertulis boleh menyusun keperluan ini menjadi taklimat yang jelas. Peringkat imej menggunakan prompt dan sebarang rujukan untuk mencipta hasil visual.

Untuk suntingan, bekalkan imej sumber dan bezakan perubahan yang diminta daripada unsur yang perlu dikekalkan. GPT Image 2 memproses input imej secara automatik dengan ketepatan perincian tinggi, menyokong penyuntingan yang peka terhadap butiran dan aliran kerja rujukan. Pengeluar mendokumenkan pengisian kawasan imej dan kerja imej berasaskan rujukan. Topeng boleh memandu kawasan yang hendak disunting, tetapi penggunaan topeng pada GPT Image berasaskan prompt dan mungkin tidak mengikut bentuk topeng dengan tepat. Aliran topeng yang didokumenkan memerlukan imej sasaran dan topeng sepadan dari segi format serta dimensi, topeng mempunyai saluran alfa dan fail berukuran di bawah 50 MB.

GPT Image 2 menyokong pilihan kualiti low, medium, high dan automatik. Saiz tersuainya memerlukan kedua-dua sisi menjadi gandaan 16 piksel, tiada sisi melebihi 3840 piksel, nisbah bidang tidak lebih ekstrem daripada 3:1 dan saiz keseluruhan antara 655360 dengan 8294400 piksel. Contoh yang didokumenkan merangkumi 1024 × 1024, 1536 × 1024, 2048 × 2048 dan 3840 × 2160. Pilih dimensi mengikut destinasi penggunaan dan bukannya menganggap setiap visual perlu berbentuk segi empat sama. Dalam profil output Image API yang didokumenkan pengeluar, PNG ialah format lalai, dengan JPEG dan WebP turut tersedia. JPEG dan WebP menyokong tetapan pemampatan dari 0 hingga 100.

Komponen teks mempunyai spesifikasinya sendiri. Tetingkap konteks GPT-5.4 yang diterbitkan ialah 1050000 token, output maksimumnya 128000 token dan tarikh akhir pengetahuannya ialah 31 Ogos 2025. Pilihan usaha penaakulannya ialah none, low, medium, high dan xhigh, dengan none sebagai lalai. Pengeluar menyenaraikan penjanaan imej antara alat GPT-5.4, manakala Image API turut menyediakan operasi penjanaan dan penyuntingan yang berasingan. Peranan komponen yang didokumenkan ini tidak menjadikan nama gabungan itu model kendiri baharu dengan satu had yang dikongsi oleh teks dan imej.

Panduan imej menerangkan batasan penempatan teks yang tepat, konsistensi visual yang berulang dan komposisi yang tepat. Sediakan teks pendek dengan spesifikasi yang jelas apabila tulisan penting, bekalkan rujukan berkaitan untuk subjek berulang dan kenal pasti kekangan susun atur secara eksplisit. Semak imej yang dijana atau disunting terhadap keperluan itu. Hasil yang berguna boleh merangkumi taklimat bertulis, imej dan senarai perubahan tertumpu untuk suntingan seterusnya, yang mengaitkan visual dengan tujuan editorial atau produk asal.

Tugas praktikal

Tugas praktikal

Contoh teknikal dalam bahasa Inggeris

Revise an editorial illustration crop

Edit the supplied article illustration for a landscape header. Preserve the central paper boat's shape, folded edges and blue color. Extend the calm water naturally to the left and leave that side visually quiet for page text added later. Keep the existing light direction and add no words, logos, people or extra boats.

Hasil yang dijangka

An edited landscape image with the original boat preserved and clear composition space on the left.

Semak hasil

Compare boat details and light direction with the source, and inspect the added water for repeated or distorted elements.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions openai/gpt-5.4-image-2

openai/gpt-5.4-image-2

OpenAI /openai/gpt-5.4-image-2

Pengenalan

Aliran kerja yang menggandingkan penaakulan teks GPT-5.4 dengan penjanaan dan penyuntingan imej GPT Image 2. Gunakan taklimat bertulis dan rujukan visual untuk membangunkan ilustrasi atau suntingan sambil mengekalkan peranan komponen teks dan imej yang berbeza.

Input yang diterima
Teks
Hasil
Teks

Tersedia di Ailoot · input & kaedah

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Input
text
Output
text
Format output
json atau SSE
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
openai/gpt-5.4-image-2
Lalai—
MedanmessagesJenismessage[]KeperluanDiperlukanNilai & had
Item minimum: 1
Lalai—
Medanmessages[].roleJenisstringKeperluanDiperlukanNilai & had
Contoh: system, user, assistant, tool, function
Syarat: Peranan ini diwakili secara eksplisit oleh jenis keserasian dalam kod sumber; set peranan model yang tepat kekal khusus untuk setiap model.
Bergantung pada model
Lalai—
Medanmessages[].contentJenisstring|content_part[]|nullKeperluanPilihanNilai & hadLalai—
Medanmessages[].tool_callsJenistool_call[]KeperluanPilihanNilai & hadLalai—
Medanmessages[].tool_call_idJenisstringKeperluanPilihanNilai & had
Terpakai apabila: role=tool; gunakan ID sebenar yang dipulangkan
Lalai—
Medanmessages[].nameJenisstringKeperluanPilihanNilai & hadLalai—
Medanmessages[].reasoning_contentJenisstringKeperluanPilihanNilai & had
Terpakai apabila: Hantar semula penaakulan sebenar yang dipulangkan apabila model ini menggunakannya
Lalai—
Medanmessages[].reasoning_detailsJenisobject|arrayKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanmax_tokensJenisintegerKeperluanPilihanNilai & had
Minimum: 1
Bergantung pada model
Lalai—
Medanmax_completion_tokensJenisintegerKeperluanPilihanNilai & had
Minimum: 1
Bergantung pada model
Lalai—
MedanstreamJenisbooleanKeperluanPilihanNilai & hadLalaifalse
Medanstream_options.include_usageJenisbooleanKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedantemperatureJenisnumberKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medantop_pJenisnumberKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedanstopJenisstring|string[]KeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedantoolsJenisfunction_tool[]KeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medantools[].typeJenisstringKeperluanPilihanNilai & had
function
Bergantung pada model
Lalai—
Medantools[].function.nameJenisstringKeperluanDiperlukanNilai & had
Terpakai apabila: alat fungsi dibekalkan
Lalai—
Medantools[].function.descriptionJenisstringKeperluanPilihanNilai & hadLalai—
Medantools[].function.parametersJenisJSON_schemaKeperluanPilihanNilai & hadLalai—
Medantool_choiceJenisstring|objectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanparallel_tool_callsJenisbooleanKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanresponse_formatJenisobjectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanreasoning_effortJenisstringKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedanreasoningJenisobjectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanservice_tierJenisstringKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedaninstructionsJenisstringKeperluanPilihanNilai & had
Medan keserasian
Lalai—
MedanfunctionsJenisfunction[]KeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanfunction_callJenisstring|objectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanprompt_cache_optionsJenisobjectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedanmodalitiesJenisstring[]KeperluanPilihanNilai & had
text
Lalai—
MedanproviderJenisobjectKeperluanPilihanNilai & had
Syarat: provider.options ditolak pada laluan teks Ultra ini
Lalai—
Medancache_control.ttlJenisstringKeperluanPilihanNilai & had
Syarat: 1h ditolak pada lokasi cache prompt yang digunakan
Lalai—
Gabungan bahan input

Teks · Teks UTF8

messages[].content

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages
Parametermaterial_typesKontraktext
ParametermessagesKontraktatasusunan mesej dengan struktur role/content
Parameterfile_materialKontrakdokumen UTF-8 sebenar dimasukkan sebagai teks literal; ID fail tidak diandaikan
Parameteroptional_controlsKontrakstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeKontrakkhusus model; alat fungsi pengguna berbeza daripada alat yang dihoskan
Parameteroutput_modalitiesKontraktext
Parameterhosted_operationsKontrakfalse
Parametermultimodal_input_bindingKontraknull

Kitar hayat: synchronous_or_streamed

Hantar ID model yang tepat bersama messages.

Panjang konteks bukan had output.

Fail teks boleh membekalkan teks literal; input imej/audio/objek fail memerlukan pengikatan tepat.

Pelan harga

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

Mod pantas
Kadar standard Apabila mod pantas dipilih
Mod flex
Kadar standard Apabila mod flex dipilih
Usaha penaakulan maksimum
Kadar standard Apabila usaha penaakulan maksimum menggunakan pelarasan default
Usaha penaakulan · high
Kadar standard Apabila usaha penaakulan ditetapkan kepada high
Usaha penaakulan · low
Kadar standard Apabila usaha penaakulan ditetapkan kepada low
Usaha penaakulan · medium
Kadar standard Apabila usaha penaakulan ditetapkan kepada medium
Usaha penaakulan · none
Kadar standard Apabila usaha penaakulan ditetapkan kepada none
Usaha penaakulan · xhigh
Kadar standard Apabila usaha penaakulan ditetapkan kepada xhigh

Kadar Ailoot

Harga mengikut konfigurasi

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

KonfigurasiJadual kadarToken konteks, melebihiToken konteks, sehingga dan termasukCaj
KonfigurasiKadar asas tokenJadual kadarKadar asasToken konteks, melebihi—Token konteks, sehingga dan termasukTiada had atasCaj
Input · Token input $0.016 / 1K token
Output · Token output $0.03 / 1K token
Input · Bacaan cache $0.004 / 1K token
Input · Penulisan cache — / 1K token
Input · Penulisan cache, 1 jam — / 1K token
Output · Token keluaran imej $0.06 / 1K token imej
KonfigurasiTahap panjang permintaan 1Jadual kadar—Token konteks, melebihi0Token konteks, sehingga dan termasukTiada had atasCaj
Input · Token input $0.016 / 1K token
Output · Token output $0.03 / 1K token
Input · Bacaan cache $0.004 / 1K token
Input · Penulisan cache — / 1K token
Input · Penulisan cache, 1 jam — / 1K token

Butiran tarif rujukan

Jadual rujukan peringkat model tidak mengubah pemilihan kaedah, sebut harga atau caj. Caj aktif menggunakan kadar kaedah Ailoot yang dipilih.

OpenAI: GPT-5.4 Image 2

Harga mengikut konfigurasi

KonfigurasiSyarat pengebilanCaj
KonfigurasiOpenAI: GPT-5.4 Image 2 · Konfigurasi lalaiSyarat pengebilanKonfigurasi lalaiCaj
Input · Token input USD 0.016 / 1K token
Output · Token output USD 0.03 / 1K token
Output · Imej keluaran USD 0.06 / 1K token
Output · Carian web USD 0.02 setiap carian
Input · Bacaan cache USD 0.004 / 1K token

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 Ultra · OpenAI Chat

curlPython SDKPenstriman Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/gpt-5.4-image-2", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

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/chat/completions \
  -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 json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='openai/gpt-5.4-image-2',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='openai/gpt-5.4-image-2',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Terima dan simpan hasil

Ailoot Ultra · OpenAI Chat

json atau SSE

Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan setiap pilihan jawapan bersama kandungan, panggilan alat dan penaakulannya. Dalam SSE, gabungkan delta mengikut indeks pilihan jawapan/alat dan kekalkan sebab penamatan akhir serta data penggunaan.

Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons
MedanJenis
Medanchoices[].indexJenisinteger
Medanchoices[].message.contentJenisstring|null
Medanchoices[].message.tool_callsJenistool_call[]
Medanchoices[].message.reasoning_contentJenisstring
Medanchoices[].message.reasoning_detailsJenisobject|array
Medanchoices[].finish_reasonJenisstring|null
MedanusageJenisobject
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.

Alias

Alias model

Ailoot Ultra openai/gpt-5.4-image-2

Alias laluan kaedah

/v1/images

ID pemanggil berkaitan

openai/gpt-5.4-image-2

Ailoot Ultra · Imej POST /v1/images/generations openai/gpt-5.4-image-2

openai/gpt-5.4-image-2

OpenAI /openai/gpt-5.4-image-2

Pengenalan

Aliran kerja yang menggandingkan penaakulan teks GPT-5.4 dengan penjanaan dan penyuntingan imej GPT Image 2. Gunakan taklimat bertulis dan rujukan visual untuk membangunkan ilustrasi atau suntingan sambil mengekalkan peranan komponen teks dan imej yang berbeza.

Input yang diterima
Teks · Imej
Hasil
Imej

Tersedia di Ailoot · input & kaedah

Ailoot Ultra · Imej POST /v1/images/generations
Input
text, image
Output
image
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
openai/gpt-5.4-image-2
Lalai—
MedanpromptJenisstringKeperluanDiperlukanNilai & had
Panjang minimum: 1
Lalai—
Medanaspect_ratioJenisstringKeperluanPilihanNilai & had
1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9, auto
Lalai—
MedanqualityJenisstringKeperluanPilihanNilai & had
auto, low, medium, high
Lalai—
MedanbackgroundJenisstringKeperluanPilihanNilai & had
auto, opaque
Lalai—
MedannJenisintegerKeperluanPilihanNilai & had
Minimum: 1
Maksimum: 10
Lalai—
Medaninput_referencesJenisarrayKeperluanPilihanNilai & had
Item minimum: 0
Item maksimum: 16
Lalai—
Medanoutput_compressionJenisintegerKeperluanPilihanNilai & had
Minimum: 0
Maksimum: 100
Lalai—
MedanproviderJenisobjectKeperluanPilihanNilai & hadLalai—
Parameter kaedah dan kitar hayat
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, prompt
Parametermaterial_typesKontraktext, image

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.

KonfigurasiJadual kadarKuantiti ramalanCaj
KonfigurasiKadar asas tokenJadual kadarKadar asasKuantiti 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 penjanaanJadual kadar—Kuantiti ramalananggaran untuk satu penjanaanCaj
Output · Anggaran kos penjanaan · Anggaran untuk perbandingan sahaja $0.24576 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 →

Contoh permintaan

Ailoot Ultra · Imej

curl
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-5.4-image-2', '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 · 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
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
MedanJenis
MedancreatedJenis
Medandata[].urlJenis
Medandata[].b64_jsonJenis
MedanusageJenis

Alias

Alias model

Ailoot Ultra openai/gpt-5.4-image-2

Alias laluan kaedah

/v1/images

ID pemanggil berkaitan

openai/gpt-5.4-image-2

Ailoot Ultra · Anthropic Messages POST /v1/messages openai/gpt-5.4-image-2

openai/gpt-5.4-image-2

OpenAI /openai/gpt-5.4-image-2

Pengenalan

Aliran kerja yang menggandingkan penaakulan teks GPT-5.4 dengan penjanaan dan penyuntingan imej GPT Image 2. Gunakan taklimat bertulis dan rujukan visual untuk membangunkan ilustrasi atau suntingan sambil mengekalkan peranan komponen teks dan imej yang berbeza.

Input yang diterima
Teks
Hasil
json · sse

Tersedia di Ailoot · input & kaedah

Ailoot Ultra · Anthropic Messages POST /v1/messages
Input
text
Output
json, sse
Format output
JSON atau SSE
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
openai/gpt-5.4-image-2
Lalai—
MedanmessagesJenismessage[]KeperluanDiperlukanNilai & hadLalai—
Medanmessages[].roleJenisstringKeperluanDiperlukanNilai & had
user, assistant
Lalai—
Medanmessages[].contentJenisstringKeperluanDiperlukanNilai & hadLalai—
Medanmax_tokensJenisintegerKeperluanDiperlukanNilai & hadLalai—
MedanstreamJenisbooleanKeperluanPilihanNilai & hadLalaifalse
Gabungan bahan input

Teks · Teks UTF-8

rentetan messages[].content

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages, max_tokens
Parameteroptional_controlsKontrakstream
Parametermaterial_typesKontraktext
Parametertext_file_materialKontrakBaca dokumen UTF-8 sebenar dan letakkan teksnya dalam rentetan input atau kandungan mesej yang ditunjukkan.

Kitar hayat: synchronous_or_streamed

Pelan harga

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

Mod pantas
Kadar standard Apabila mod pantas dipilih
Mod flex
Kadar standard Apabila mod flex dipilih
Usaha penaakulan maksimum
Kadar standard Apabila usaha penaakulan maksimum menggunakan pelarasan default
Usaha penaakulan · high
Kadar standard Apabila usaha penaakulan ditetapkan kepada high
Usaha penaakulan · low
Kadar standard Apabila usaha penaakulan ditetapkan kepada low
Usaha penaakulan · medium
Kadar standard Apabila usaha penaakulan ditetapkan kepada medium
Usaha penaakulan · none
Kadar standard Apabila usaha penaakulan ditetapkan kepada none
Usaha penaakulan · xhigh
Kadar standard Apabila usaha penaakulan ditetapkan kepada xhigh

Kadar Ailoot

Harga mengikut konfigurasi

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

KonfigurasiJadual kadarToken konteks, melebihiToken konteks, sehingga dan termasukCaj
KonfigurasiKadar asas tokenJadual kadarKadar asasToken konteks, melebihi—Token konteks, sehingga dan termasukTiada had atasCaj
Input · Token input $0.016 / 1K token
Output · Token output $0.03 / 1K token
Input · Bacaan cache $0.004 / 1K token
Input · Penulisan cache — / 1K token
Input · Penulisan cache, 1 jam — / 1K token
Output · Token keluaran imej $0.06 / 1K token imej
KonfigurasiTahap panjang permintaan 1Jadual kadar—Token konteks, melebihi0Token konteks, sehingga dan termasukTiada had atasCaj
Input · Token input $0.016 / 1K token
Output · Token output $0.03 / 1K token
Input · Bacaan cache $0.004 / 1K token
Input · Penulisan cache — / 1K token
Input · Penulisan cache, 1 jam — / 1K token

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 Ultra · Anthropic Messages

Badan JSON minimum yang lengkapcurl · gunakan dokumen UTF-8 andaPython · simpan hasil lengkap
{
  "model": "openai/gpt-5.4-image-2",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-5.4-image-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-5.4-image-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Terima dan simpan hasil

Ailoot Ultra · Anthropic Messages

JSON atau SSE

Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan semua blok kandungan, tandatangan penaakulan dan ID penggunaan alat sebenar. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan output.

Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons
MedanJenis
MedanidJenisstring
MedanmodelJenisstring
Medancontent[]Jenistext|thinking|tool_use|other content block
Medanstop_reasonJenisstring|null
MedanusageJenisobject
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.

Alias

Alias model

Ailoot Ultra openai/gpt-5.4-image-2

Alias laluan kaedah

/v1/images

ID pemanggil berkaitan

openai/gpt-5.4-image-2

FAQ · OpenAI: GPT-5.4 Image 2
Apakah input dan hasil yang tersedia?

POST /v1/chat/completions · openai/gpt-5.4-image-2: text → text

POST /v1/images/generations · openai/gpt-5.4-image-2: text, image → image

POST /v1/messages · openai/gpt-5.4-image-2: text → json, sse

Apakah medan yang digunakan oleh permintaan?

POST /v1/chat/completions · openai/gpt-5.4-image-2: model, messages, stream, modalities, provider

POST /v1/images/generations · openai/gpt-5.4-image-2: model, prompt, aspect_ratio, quality, background, n, input_references, output_compression, provider

POST /v1/messages · openai/gpt-5.4-image-2: model, messages, max_tokens, stream

Apakah had yang terpakai?

POST /v1/chat/completions · openai/gpt-5.4-image-2: messages.min_items: 1

POST /v1/images/generations · openai/gpt-5.4-image-2: n.minimum: 1; n.maximum: 10; output_compression.minimum: 0; output_compression.maximum: 100

Butiran lanjut

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 · Lihat harga model

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 · Tawaran dan perjanjian lesen