modellar

Google: Nano Banana (Gemini 2.5 Flash Image)

Markdown · JSON

Google: Nano Banana (Gemini 2.5 Flash Image)

Nano Banana (Gemini 2.5 Flash Image) matn va tasvirlardan rasmlar yaratadi hamda tahrirlaydi. Qaysi tafsilotlar saqlanishi kerakligini aytgan holda sahna tuzish, tanlangan elementni o‘zgartirish, vizual namunalarni birlashtirish yoki mahsulot tasvirini takomillashtirish uchun uning suhbatga asoslangan ish jarayonidan foydalaning.

Model haqida

Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.

Gemini 2.5 Flash Image, shuningdek Nano Banana nomi bilan tanilgan model — Google’ning vizual yaratish va suhbat davomida tasvir tahrirlash uchun matn va tasvir modeli. U ixtiyoriy tasvir namunalari bilan birga ko‘rsatmani qabul qiladi va hamroh matn bilan tasvirlar qaytarishi mumkin. Aynan shu 2.5 Flash Image nashri Nano Banana 2, Nano Banana Pro va keyingi Lite tasvir modellaridan farq qiladi. Uning foydali natijasi umumiy Gemini 2.5 matn modelining javobi emas, yaratilgan yoki tahrirlangan vizual materialdir.

Aynan shu model kartasida 65,536 kirish tokeni va 32,768 chiqish tokeni ko‘rsatilgan. Tasvirlar va ko‘rsatmalar kirishning, qaytgan tasvir yoki matn esa natijaning bir qismidir. Qo‘llanmaning aniqlik jadvalida qo‘llab-quvvatlanadigan tomonlar nisbatlari orasida 1:1 chiqish uchun 1024×1024, 3:4 uchun 864×1184 va 16:9 uchun 1344×768 keltirilgan. Sahnani loyihalashdan oldin mo‘ljallangan ko‘rsatish shaklini tanlang. Keyingi Gemini tasvir nashrining yuqori aniqlik variantlarini aynan shu model uchun hujjatlashtirilgan boshqaruvlar deb hisoblash kerak emas.

Matndan tasvir yaratish uchun asosiy obyekt, harakat, muhit, uslub, yoritish va ko‘rish nuqtasini ko‘rsating. Mahsulot illyustratsiyasi taqdim etilgan vizual uslubdan foydalanib, mos muhitda yaqqol ko‘rinadigan material tafsilotini so‘rashi mumkin. Model asosiy obyekt va har qanday matn uchun joy ajrata olishi uchun rasmning maqsadini tushuntiring. Yaqin ko‘rinish, yuqoridan kompozitsiya yoki past rakurs kabi fotografik tavsiflar bir-biriga aloqasiz uslub so‘zlari ro‘yxatidan ko‘ra kadrni aniqroq belgilashga yordam beradi.

Tahrir uchun asl tasvirni bering va o‘zgartiriladigan qismni belgilang. Yaratuvchi qo‘llanmasida elementlarni qo‘shish yoki olib tashlash, semantik niqoblash, uslubni ko‘chirish va namunalar yordamida kompozitsiya tuzish tasvirlangan. Foydali so‘rov tahrirni ham, saqlanadigan shartlarni ham aytadi — masalan, mahsulot shakli, sirti va yorlig‘ini saqlab, fonni o‘zgartirish. Namunalarni birlashtirganda har bir kirishning vazifasini, masalan, obyekt tashqi ko‘rinishi, muhit yoki uslubni belgilang. Qo‘llanma bu nashr uchtagacha kiruvchi tasvir bilan eng yaxshi ishlashini aytadi; bu amaliy tavsiya bo‘lib, bir-biriga zid namunalarning cheksiz to‘plamini birlashtirish uchun asos emas.

Suhbat davomida takomillashtirish muayyan vizual qarorni o‘zgartirgan holda bir xil obyektni saqlashi mumkin. Har safar bitta bog‘liq tahrirni so‘rang va shu suhbat navbatida ishlatilgan manba tasviri hamda qabul qilingan natijani saqlang. Nimalar izchil qolishi va nimalar o‘zgarishi mumkinligini tasvirlang. Materiallar turkumi uchun yangi ajratilgan prompt ularni qayta tiklaydi deb taxmin qilish o‘rniga, umumiy obyekt, ranglar va vizual qoidalarni aniq belgilang. Saqlash ko‘rsatmasi muvaffaqiyatli bajarildi deb hisoblashdan oldin tahrirlangan tasvirni namuna bilan solishtiring.

Tasvir ichidagi matn uchun qo‘llanma tavsiya qilganidek, avval aniq matnni yakunlang, keyin shu matnni o‘z ichiga olgan rasmni so‘rang. Yozuvlarning tili, o‘qish tartibi, joylashuvi va nisbiy urg‘usini ko‘rsating. Infografika so‘rovi har bir yozuv qaysi munosabatni tushuntirishini va uni qaysi vizual elementlar asoslashini aniqlashi kerak. Imlo, tinish belgilari va vizual bog‘lanishni haqiqiy ko‘rsatish o‘lchamida tekshiring; o‘qiladigandek ko‘ringan yaratilgan yozuv baribir nom, son yoki ko‘zlangan ma’noni o‘zgartirishi mumkin.

Model kartasida ushbu nashr uchun fikrlash, qidiruv manbalari bilan asoslash, funksiya chaqirish, kod bajarish yoki sxema bilan cheklangan tuzilgan chiqish keltirilmagan. Shuningdek, u audio yaratish yoki Live API’ni e’lon qilmaydi. Uning hujjatlashtirilgan kirishi matn va tasvirlardir, shuning uchun boshqa Gemini modellaridagi audio, video va hujjat qayta ishlash xususiyatlarini ushbu profilga qo‘shish kerak emas. Ilova odatiy nasriy javob ichida tayyor tasvir materiali bor deb taxmin qilish o‘rniga, qaytgan mazmun qismlarini aniq qayta ishlashi lozim.

Qo‘llanma so‘ralgan tasvirlar soniga har doim ham rioya qilinmasligini va yaratilgan tasvirlarda SynthID belgisi borligini qayd etadi. Har bir qaytgan tasvirni kompozitsiya, obyektga moslik, obyektlar soni va aniq matn bo‘yicha tekshiring. Sahna bir nechta tarkibiy qismga ega bo‘lsa, ularning kerakli joylashuvini aniq tartibda tavsiflang va ko‘zlangan ko‘rinishni ijobiy shaklda ifodalang. Natija bilan birga aniq model identifikatori, prompt va namunalarni saqlang. Bu vizual yaratish yoki tahrirlash vazifasini tekshirishga yaroqli qiladi va keyingi tahrir uchun aniq boshlang‘ich nuqta beradi.

Amaliy vazifa

Amaliy vazifa

Ingliz tilidagi texnik misol

Change a product photo background

Using the supplied product photograph, preserve the ceramic mug's shape, handle, glaze and existing logo exactly. Replace only the background with a pale stone tabletop and soft morning side light. Keep the camera angle and mug position. Remove unrelated background clutter and add no new lettering, props or decorative marks.

Kutiladigan natija

An edited image retaining the reference mug while changing its setting and light as requested.

Natijani tekshirish

Compare the result with the reference for mug geometry, logo fidelity, camera angle and removal of clutter.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions google/gemini-2.5-flash-image

google/gemini-2.5-flash-image

Google /google/gemini-2.5-flash-image

Boshlash

Nano Banana (Gemini 2.5 Flash Image) matn va tasvirlardan rasmlar yaratadi hamda tahrirlaydi. Qaysi tafsilotlar saqlanishi kerakligini aytgan holda sahna tuzish, tanlangan elementni o‘zgartirish, vizual namunalarni birlashtirish yoki mahsulot tasvirini takomillashtirish uchun uning suhbatga asoslangan ish jarayonidan foydalaning.

Qabul qilinadigan kirish ma’lumotlari
Matn
Natijalar
Matn

Ailoot da mavjud · kirish ma’lumotlari va usullar

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Kirish
text
Chiqish
text
Chiqish formati
json yoki SSE
MaydonTurTalabQiymatlar va cheklovlarStandart
MaydonmodelTurstringTalabMajburiyQiymatlar va cheklovlar
google/gemini-2.5-flash-image
Standart—
MaydonmessagesTurmessage[]TalabMajburiyQiymatlar va cheklovlar
Elementlarning eng kam soni: 1
Standart—
Maydonmessages[].roleTurstringTalabMajburiyQiymatlar va cheklovlar
Namunalar: system, user, assistant, tool, function
Shartlar: Bu rollar manba kodining moslik turlarida ochiq ifodalangan; aniq rollar to‘plami har bir modelga xos bo‘lib qoladi.
Modelga bogʻliq
Standart—
Maydonmessages[].contentTurstring|content_part[]|nullTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydonmessages[].tool_callsTurtool_call[]TalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydonmessages[].tool_call_idTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: role=tool; haqiqatan qaytarilgan IDdan foydalaning
Standart—
Maydonmessages[].nameTurstringTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydonmessages[].reasoning_contentTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: Ushbu model foydalanganda, haqiqatan qaytarilgan fikrlash ma’lumotlarini keyingi so‘rovda qayta yuboring
Standart—
Maydonmessages[].reasoning_detailsTurobject|arrayTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonmax_tokensTurintegerTalabIxtiyoriyQiymatlar va cheklovlar
Eng kam: 1
Modelga bogʻliq
Standart—
Maydonmax_completion_tokensTurintegerTalabIxtiyoriyQiymatlar va cheklovlar
Eng kam: 1
Modelga bogʻliq
Standart—
MaydonstreamTurbooleanTalabIxtiyoriyQiymatlar va cheklovlarStandartfalse
Maydonstream_options.include_usageTurbooleanTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydontemperatureTurnumberTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontop_pTurnumberTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydonstopTurstring|string[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydontoolsTurfunction_tool[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontools[].typeTurstringTalabIxtiyoriyQiymatlar va cheklovlar
function
Modelga bogʻliq
Standart—
Maydontools[].function.nameTurstringTalabMajburiyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: Funksiya vositasi taqdim etilgan
Standart—
Maydontools[].function.descriptionTurstringTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydontools[].function.parametersTurJSON_schemaTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydontool_choiceTurstring|objectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonparallel_tool_callsTurbooleanTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonresponse_formatTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonreasoning_effortTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydonreasoningTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonservice_tierTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydoninstructionsTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Moslik maydoni
Standart—
MaydonfunctionsTurfunction[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonfunction_callTurstring|objectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonprompt_cache_optionsTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydonmodalitiesTurstring[]TalabIxtiyoriyQiymatlar va cheklovlar
text
Standart—
MaydonproviderTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Shartlar: Ushbu Ultra matn marshrutida provider.options rad etiladi
Standart—
Maydoncache_control.ttlTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Shartlar: Haqiqiy prompt-kesh joylarida 1h rad etiladi
Standart—
Kirish materiallari birikmalari

Matn · UTF8 matni

messages[].content

Usul parametrlari va hayot sikli
ParametrParametr talablari
Parametrcontent_typeParametr talablariapplication/json
ParametrrequiredParametr talablarimodel, messages
Parametrmaterial_typesParametr talablaritext
ParametrmessagesParametr talablarirole/content tuzilishidagi xabarlar massivi
Parametrfile_materialParametr talablariHaqiqiy UTF-8 hujjati aynan matn sifatida kiritiladi; fayl IDsi faraz qilinmaydi
Parametroptional_controlsParametr talablaristream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametrcontrol_scopeParametr talablariModelga xos; foydalanuvchi funksiya vositalari hostingdagi vositalardan farq qiladi
Parametroutput_modalitiesParametr talablaritext
Parametrhosted_operationsParametr talablarifalse
Parametrmultimodal_input_bindingParametr talablarinull

Hayot sikli: synchronous_or_streamed

Aniq model IDsini messages bilan yuboring.

Kontekst uzunligi chiqishning yuqori chegarasi emas.

Matn fayli aynan matnni taqdim etishi mumkin; tasvir, audio va fayl obyekti kirishlari aniq bog‘lashni talab qiladi.

Tariflar

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim
Standart tarif Tezkor rejim tanlanganda
Flex rejimi
Standart tarif flex rejimi tanlanganda
Maksimal fikrlash darajasi
Standart tarif Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda
Ochiq ko‘rsatilgan keshlash narxlari
Yoqilmagan Ochiq ko‘rsatilgan keshlash so‘ralganda

Ailoot tariflari

Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

SozlamaTariflar jadvaliKontekst tokenlari soni bundan ko‘pKontekst tokenlari soni bundan oshmaydi, chegara kiradiTo‘lov
SozlamaTokenlar uchun bazaviy tariflarTariflar jadvaliAsosiy tarifKontekst tokenlari soni bundan ko‘p—Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘qTo‘lov
Kirish · Kirish tokenlari $0.0006 / 1K token
Chiqish · Chiqish tokenlari $0.005 / 1K token
Kirish · Keshdan o‘qish $0.00006 / 1K token
Kirish · Keshga yozish $0.0001666666666666666 / 1K token
Kirish · Keshga yozish, 1 soat — / 1K token
Chiqish · Chiqish rasmi tokenlari $0.06 / 1K rasm tokeni
SozlamaSo‘rov uzunligi bo‘yicha 1-darajaTariflar jadvali—Kontekst tokenlari soni bundan ko‘p0Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘qTo‘lov
Kirish · Kirish tokenlari $0.0006 / 1K token
Chiqish · Chiqish tokenlari $0.005 / 1K token
Kirish · Keshdan o‘qish $0.00006 / 1K token
Kirish · Keshga yozish $0.0001666666666666666 / 1K token
Kirish · Keshga yozish, 1 soat — / 1K token

Ma’lumot uchun tarif tafsilotlari

Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.

google/gemini-2.5-flash-image

Sozlamalar bo‘yicha narxlar

SozlamaTo‘lovni hisoblash shartlariTo‘lov
Sozlamagoogle/gemini-2.5-flash-image · Standart sozlamaTo‘lovni hisoblash shartlariStandart konfiguratsiyaTo‘lov
Kirish · Kirish 0,0006 US$ / 1K token
Chiqish · Chiqish 0,06 US$ / 1K token
Google: Nano Banana (Gemini 2.5 Flash Image)

Sozlamalar bo‘yicha narxlar

SozlamaTo‘lovni hisoblash shartlariTo‘lov
SozlamaGoogle: Nano Banana (Gemini 2.5 Flash Image) · Standart sozlamaTo‘lovni hisoblash shartlariStandart konfiguratsiyaTo‘lov
Kirish · Kirish tokenlari 0,0006 US$ / 1K token
Chiqish · Chiqish tokenlari 0,005 US$ / 1K token
Kirish · Kirish rasmi 0,0006 US$ / 1K token
Chiqish · Chiqish rasmi 0,06 US$ / 1K token
Kirish · Kirish audiosi 0,002 US$ / 1K token
Kirish · Audio keshini o‘qish 0,0002 US$ / 1K token
Chiqish · Veb-qidiruv 0,028 US$ har bir qidiruv uchun
Chiqish · Mantiqiy fikrlash tokenlari 0,005 US$ / 1K token
Kirish · Keshdan o‘qish 0,00006 US$ / 1K token
Kirish · Keshga yozish · 5 daqiqa ≈0,000167 US$ / 1K token

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →

So‘rov namunalari

Ailoot Ultra · OpenAI Chat

curlPython SDKPython oqimi
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/gemini-2.5-flash-image", "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='google/gemini-2.5-flash-image',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='google/gemini-2.5-flash-image',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")

Natijalarni olish va saqlash

Ailoot Ultra · OpenAI Chat

json yoki SSE

Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Har bir javob variantini va uning kontenti, vosita chaqiruvlari hamda fikrlash ma’lumotlarini saqlang. SSEda o‘zgarish qismlarini variant va vosita indeksi bo‘yicha yig‘ing, yakuniy tugash sababi va sarf ma’lumotlarini saqlang.

Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari
MaydonTur
Maydonchoices[].indexTurinteger
Maydonchoices[].message.contentTurstring|null
Maydonchoices[].message.tool_callsTurtool_call[]
Maydonchoices[].message.reasoning_contentTurstring
Maydonchoices[].message.reasoning_detailsTurobject|array
Maydonchoices[].finish_reasonTurstring|null
MaydonusageTurobject
Xatolar va keyingi qadamlar
JavobShartKeyingi qadam
Javob400 · invalid_request_errorShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘riKeyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating.

Taxalluslar

Model taxalluslari

Ailoot Ultra google/gemini-2.5-flash-image

Usul yo‘llari taxalluslari

/v1/images

Chaqirish uchun tegishli ID lar

google/gemini-2.5-flash-image

Ailoot Ultra · Rasmlar POST /v1/images/generations google/gemini-2.5-flash-image

google/gemini-2.5-flash-image

Google /google/gemini-2.5-flash-image

Boshlash

Nano Banana (Gemini 2.5 Flash Image) matn va tasvirlardan rasmlar yaratadi hamda tahrirlaydi. Qaysi tafsilotlar saqlanishi kerakligini aytgan holda sahna tuzish, tanlangan elementni o‘zgartirish, vizual namunalarni birlashtirish yoki mahsulot tasvirini takomillashtirish uchun uning suhbatga asoslangan ish jarayonidan foydalaning.

Qabul qilinadigan kirish ma’lumotlari
Matn · Rasmlar
Natijalar
Rasmlar

Ailoot da mavjud · kirish ma’lumotlari va usullar

Ailoot Ultra · Rasmlar POST /v1/images/generations
Kirish
text, image
Chiqish
image
MaydonTurTalabQiymatlar va cheklovlarStandart
MaydonmodelTurstringTalabMajburiyQiymatlar va cheklovlar
google/gemini-2.5-flash-image
Standart—
MaydonpromptTurstringTalabMajburiyQiymatlar va cheklovlar
Eng kam uzunlik: 1
Standart—
Maydonaspect_ratioTurstringTalabIxtiyoriyQiymatlar va cheklovlar
1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
Standart—
MaydonnTurintegerTalabIxtiyoriyQiymatlar va cheklovlar
Eng kam: 1
Eng ko‘p: 1
Standart—
Maydoninput_referencesTurarrayTalabIxtiyoriyQiymatlar va cheklovlar
Elementlarning eng kam soni: 0
Elementlarning eng ko‘p soni: 3
Standart—
MaydonproviderTurobjectTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Usul parametrlari va hayot sikli
ParametrParametr talablari
Parametrcontent_typeParametr talablariapplication/json
ParametrrequiredParametr talablarimodel, prompt
Parametrmaterial_typesParametr talablaritext, image

Hayot sikli: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Tariflar

Yakuniy to‘lov qanday hisoblanadi

Ko‘rsatilgan tariflar xarajatni generatsiyadan oldin taxminiy hisoblash uchun xizmat qiladi. Yakuniy to‘lov dastlabki generatsiya uchun qayd etilgan xarajat asosida hisoblanadi. Natijaning o‘lchangan davomiyligi va oldindan taxmin qilingan miqdorlar haq undiriladigan yakuniy miqdor hisoblanmaydi.

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim
Ko‘rsatilmagan Tezkor rejim tanlanganda
Flex rejimi
Ko‘rsatilmagan flex rejimi tanlanganda
Maksimal fikrlash darajasi
Ko‘rsatilmagan Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda

Taqqoslash uchun taxminiy tariflar

Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

SozlamaTariflar jadvaliPrognoz miqdoriTo‘lov
SozlamaTokenlar uchun bazaviy tariflarTariflar jadvaliAsosiy tarifPrognoz miqdori—To‘lov
Kirish · Kirish tokenlari · Faqat taqqoslash uchun taxmin — / 1K token
Chiqish · Chiqish tokenlari · Faqat taqqoslash uchun taxmin — / 1K token
Kirish · Keshdan o‘qish · Faqat taqqoslash uchun taxmin — / 1K token
Kirish · Keshga yozish · Faqat taqqoslash uchun taxmin — / 1K token
Kirish · Keshga yozish, 1 soat · Faqat taqqoslash uchun taxmin — / 1K token
SozlamaYaratishning taxminiy qiymatiTariflar jadvali—Prognoz miqdoribir generatsiya uchun taxminTo‘lov
Chiqish · Yaratishning taxminiy narxi · Faqat taqqoslash uchun taxmin $0.24576 yaratishdan oldingi taxmin

Bu taxmin qo‘shimcha to‘lov ham, tugallangan generatsiya uchun qat’iy tarif ham emas.

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →

So‘rov namunalari

Ailoot Ultra · Rasmlar

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': 'google/gemini-2.5-flash-image', '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

Natijalarni olish va saqlash

Ailoot Ultra · Rasmlar

Har bir qaytarilgan rasmni yuklab oling yoki uning Base64 kontentini saqlang

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Boshqa kontentni o‘qish
O‘zingizga tegishli mavjud materiallarni o‘qish
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
Barcha tayyor natijalarni saqlash

Har bir tayyor rasmni saqlang; har bir qaytarilgan URL dan kontentni oling yoki uning Base64 kontentini dekodlang.

To‘liq javob va sarlavhalarni, amalda qaytarilgan barcha natijalarni, dastlab qaytarilgan identifikatorlarni hamda barcha usage maydonlarini saqlang. Yaratish so‘rovini qayta yubormasdan dastlabki operatsiyani tiklang.

Asl javobni tekshirish kerak bo‘lsa

Qaytarilgan X-Client-Request-ID ni ma’lumotlarni solishtirib tekshirish uchun saqlang. Faqat amalda qaytarilgan task_id/asset_id qiymatlari bo‘yicha yoki o‘zingizga tegishli media kutubxonasidan ma’lumot o‘qing; operatsiya ID sidan vazifa URL manzilini hech qachon tuzmang va yaratish so‘rovini qayta yubormang.

Javob maydonlari
MaydonTur
MaydoncreatedTur
Maydondata[].urlTur
Maydondata[].b64_jsonTur
MaydonusageTur

Taxalluslar

Model taxalluslari

Ailoot Ultra google/gemini-2.5-flash-image

Usul yo‘llari taxalluslari

/v1/images

Chaqirish uchun tegishli ID lar

google/gemini-2.5-flash-image

Ailoot Ultra · Anthropic Messages POST /v1/messages google/gemini-2.5-flash-image

google/gemini-2.5-flash-image

Google /google/gemini-2.5-flash-image

Boshlash

Nano Banana (Gemini 2.5 Flash Image) matn va tasvirlardan rasmlar yaratadi hamda tahrirlaydi. Qaysi tafsilotlar saqlanishi kerakligini aytgan holda sahna tuzish, tanlangan elementni o‘zgartirish, vizual namunalarni birlashtirish yoki mahsulot tasvirini takomillashtirish uchun uning suhbatga asoslangan ish jarayonidan foydalaning.

Qabul qilinadigan kirish ma’lumotlari
Matn
Natijalar
json · sse

Ailoot da mavjud · kirish ma’lumotlari va usullar

Ailoot Ultra · Anthropic Messages POST /v1/messages
Kirish
text
Chiqish
json, sse
Chiqish formati
JSON yoki SSE
MaydonTurTalabQiymatlar va cheklovlarStandart
MaydonmodelTurstringTalabMajburiyQiymatlar va cheklovlar
google/gemini-2.5-flash-image
Standart—
MaydonmessagesTurmessage[]TalabMajburiyQiymatlar va cheklovlarStandart—
Maydonmessages[].roleTurstringTalabMajburiyQiymatlar va cheklovlar
user, assistant
Standart—
Maydonmessages[].contentTurstringTalabMajburiyQiymatlar va cheklovlarStandart—
Maydonmax_tokensTurintegerTalabMajburiyQiymatlar va cheklovlarStandart—
MaydonstreamTurbooleanTalabIxtiyoriyQiymatlar va cheklovlarStandartfalse
Kirish materiallari birikmalari

Matn · UTF-8 matni

messages[].content satri

Usul parametrlari va hayot sikli
ParametrParametr talablari
Parametrcontent_typeParametr talablariapplication/json
ParametrrequiredParametr talablarimodel, messages, max_tokens
Parametroptional_controlsParametr talablaristream
Parametrmaterial_typesParametr talablaritext
Parametrtext_file_materialParametr talablariHaqiqiy UTF-8 hujjatini o‘qing va uning matnini ko‘rsatilgan kirish yoki xabar kontenti satriga joylashtiring.

Hayot sikli: synchronous_or_streamed

Tariflar

Tarif ma’lumotlari so‘rov imkoniyatlarini qo‘shmaydi. Qo‘llab-quvvatlanadigan parametrlar tanlangan usulda ko‘rsatilgan.

Tezkor rejim
Standart tarif Tezkor rejim tanlanganda
Flex rejimi
Standart tarif flex rejimi tanlanganda
Maksimal fikrlash darajasi
Standart tarif Maksimal fikrlash darajasi uchun standart (default) tuzatish qo‘llanganda
Ochiq ko‘rsatilgan keshlash narxlari
Yoqilmagan Ochiq ko‘rsatilgan keshlash so‘ralganda

Ailoot tariflari

Sozlamalar bo‘yicha narxlar

Har bir to‘lovni ko‘rsatilgan shartlarga moslang. Har bir muqobil sozlamalar to‘plami uchun bitta tarifdan foydalaning.

SozlamaTariflar jadvaliKontekst tokenlari soni bundan ko‘pKontekst tokenlari soni bundan oshmaydi, chegara kiradiTo‘lov
SozlamaTokenlar uchun bazaviy tariflarTariflar jadvaliAsosiy tarifKontekst tokenlari soni bundan ko‘p—Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘qTo‘lov
Kirish · Kirish tokenlari $0.0006 / 1K token
Chiqish · Chiqish tokenlari $0.005 / 1K token
Kirish · Keshdan o‘qish $0.00006 / 1K token
Kirish · Keshga yozish $0.0001666666666666666 / 1K token
Kirish · Keshga yozish, 1 soat — / 1K token
Chiqish · Chiqish rasmi tokenlari $0.06 / 1K rasm tokeni
SozlamaSo‘rov uzunligi bo‘yicha 1-darajaTariflar jadvali—Kontekst tokenlari soni bundan ko‘p0Kontekst tokenlari soni bundan oshmaydi, chegara kiradiYuqori chegara yo‘qTo‘lov
Kirish · Kirish tokenlari $0.0006 / 1K token
Chiqish · Chiqish tokenlari $0.005 / 1K token
Kirish · Keshdan o‘qish $0.00006 / 1K token
Kirish · Keshga yozish $0.0001666666666666666 / 1K token
Kirish · Keshga yozish, 1 soat — / 1K token

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →

So‘rov namunalari

Ailoot Ultra · Anthropic Messages

To‘liq minimal JSON so‘rov tanasicurl · O‘zingizning UTF-8 hujjatingizdan foydalaningPython · Natijani to‘liq saqlang
{
  "model": "google/gemini-2.5-flash-image",
  "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': 'google/gemini-2.5-flash-image', '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': 'google/gemini-2.5-flash-image', '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))

Natijalarni olish va saqlash

Ailoot Ultra · Anthropic Messages

JSON yoki SSE

Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Barcha kontent bloklari, fikrlash imzolari va haqiqiy vosita ishlatish IDlarini saqlang. SSE bloklarining barcha o‘zgarish qismlarini yig‘ing; birinchi matn bloki to‘liq chiqish emas.

Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari
MaydonTur
MaydonidTurstring
MaydonmodelTurstring
Maydoncontent[]Turtext|thinking|tool_use|other content block
Maydonstop_reasonTurstring|null
MaydonusageTurobject
Xatolar va keyingi qadamlar
JavobShartKeyingi qadam
Javob400 · invalid_request_errorShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘riKeyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating.

Taxalluslar

Model taxalluslari

Ailoot Ultra google/gemini-2.5-flash-image

Usul yo‘llari taxalluslari

/v1/images

Chaqirish uchun tegishli ID lar

google/gemini-2.5-flash-image

FAQ · Google: Nano Banana (Gemini 2.5 Flash Image)
Qanday kirish ma’lumotlari va natijalar mavjud?

POST /v1/chat/completions · google/gemini-2.5-flash-image: text → text

POST /v1/images/generations · google/gemini-2.5-flash-image: text, image → image

POST /v1/messages · google/gemini-2.5-flash-image: text → json, sse

So‘rov qaysi maydonlardan foydalanadi?

POST /v1/chat/completions · google/gemini-2.5-flash-image: model, messages, stream, modalities, provider

POST /v1/images/generations · google/gemini-2.5-flash-image: model, prompt, aspect_ratio, n, input_references, provider

POST /v1/messages · google/gemini-2.5-flash-image: model, messages, max_tokens, stream

Qanday cheklovlar amal qiladi?

POST /v1/chat/completions · google/gemini-2.5-flash-image: messages.min_items: 1

POST /v1/images/generations · google/gemini-2.5-flash-image: n.minimum: 1; n.maximum: 1

Batafsil

Ailoot’ni Claude Code, OpenCode, Hermes yoki ilovangizga ulang.

Kompaniya va uning loyihalar portfeli

Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.

Tokenlarni chegirma bilan xarid qiling.

Muntazam ish uchun obuna chegirmasi. Token xaridiga promokodlar — 50% gacha.

Obuna
Muntazam so‘rovlaringiz uchun chegirmali tarif tanlang.
50% gacha promokod
Xaridda kod kiriting. Narx amaldagi aksiya bilan qayta hisoblanadi.
Tarixdagi xarajatlar
Har so‘rov uchun model, token va summa saqlanadi.

Obuna tanlash · Model narxlarini ko‘rish

API’ni sotadigan mahsulotingizga ulang.

SaaS, ilova va botlar Ailoot ofertasi hamda litsenziya shartnomasiga muvofiq. Qayta sotishga reseller litsenziyasi so‘rang.

Tijorat ilovasi
Xizmatingizning pullik funksiyalariga matn, rasm, video va ovoz yaratishni qo‘shing.
Reseller litsenziyasi
Loyiha tavsifi va kirish sxemasini yuboring. Foydalanish va qayta sotishga yozma shartlarni so‘rang.
Saytdagi hujjatlar
Oferta, litsenziya shartnomasi va ma’lumotlar siyosati ulashdan oldin ochiq.

Reseller litsenziyasini so‘rash · Oferta va litsenziya shartnomasi