models

Google: Nano Banana 2.1

Markdown · JSON

Google: Nano Banana 2.1

A Gemini Nano Banana 2.1 beszélgetésben generál és szerkeszt képeket szövegből és vizuális anyagból. Javítja a szövegmegjelenítést, az infografikák elrendezését és a többfordulós következetességet, 1K–4K kimenettel és legfeljebb 14 referenciaképpel egy meghatározott vizuális feladatleíráshoz.

A modellről

Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.

A Gemini Nano Banana 2.1 a Google képgeneráló és beszélgetéses képszerkesztő modellje. A Nano Banana 2 frissítése, a vizuális élethűség, az utasításkövetés, a szövegmegjelenítés és az egymást követő szerkesztések közötti karakterállandóság javításával. Bemeneti táblázatában szöveg, kép, videó és PDF szerepel, kimenete pedig kép és szöveg. Ez termékjelenethez, infografikához vagy több konkrét módosítással fejlődő vizuális sorozathoz teszi hasznossá.

A modell 1K, 2K és 4K kimenetet kínál, 1K alapértelmezéssel. Nem örökli a Nano Banana 2 0.5K lehetőségét. A dokumentált képarányok között 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 és 21:9 szerepel, valamint az álló vagy panoráma 1:4, 4:1, 1:8 és 8:1 formátumok. A Google az utóbbi széles és magas formátumoknál, 2K és 4K méretben javított mozaikos képhibákat említ. A felbontási címkék méretkategóriák, nem egyetlen rögzített téglalap: egy négyzetes 4K kép 4096 × 4096 méretű, a dokumentált 16:9 arányú 4K kimenet pedig 5504 × 3072.

A szöveg a vizuális munkafolyamat jelentős része. A modellt olvasható, stilizált feliratok megjelenítésére és az infografikai elemek pontosabb elrendezésére tervezték. Készítse elő a pontos címsort, címkéket és olvasási sorrendet, majd ezzel a jóváhagyott szöveggel kérje a képet. Étlapnál, diagramnál vagy útmutató ábránál nevezze meg a felirat és a vizuális elem kapcsolatát. A Google a szöveg előzetes megírását, majd a kép kérését javasolja, hogy a vizuális kompozíció véglegesített szöveges feladatleírásból induljon.

A referenciaképek egyesítése legfeljebb 14 képet támogat. A dokumentált profil legfeljebb négy karakter állandóságára és legfeljebb tíz tárgy hű megőrzésére terjed ki. Rendeljen minden referenciához szerepet: felismerhetően megőrzendő termék, karaktermegjelenés, kívánt háttér vagy vizuális stílus. Szemléltető termékfeladat: „Az A képet használja a palack alakjához és címkéjéhez. A B képet használja a felülethez és a világításhoz. Hagyja változatlanul a terméket, helyezze egy összehajtott törölköző mellé, és fölötte hagyjon üres helyet a megadott címsornak.”

A Google Web Search és Image Search alapú forráshoz kötés aktuális információt és vizuális kontextust biztosíthat a generáláshoz. Az Image Search lekért webes képeket ad referenciaként; a szokásos webes forráshoz kötés a témával kapcsolatos információt adja. Ez tényalapú grafikához vagy olyan jelenethez hasznos, amelynek megjelenése egy valós tárgytól függ. A képkeresési munkafolyamat erre a célra nem támogatja valós embereket ábrázoló képek lekérését. A Google dokumentált munkafolyamatában a forráshoz kötött válaszok forrás- és attribúciós metaadatokat tartalmaznak, ezért az alkalmazásnak ezeket meg kell őriznie a generált eredménnyel együtt.

A gondolkodás minimal, medium és high szinten állítható, ennél a konkrét modellnél medium alapértelmezéssel. Segít a modellnek a kompozíció és az összetettebb utasítások átgondolásában a végső kimenet előtt. A képi útmutató a folyamatban köztes kompozíciós képeket is leír; ezek különböznek a kívánt végső eredménytől. Kifejezetten válassza ki a szükséges végső elrendezést, képarányt és felbontást, ne várja a prompt leírásától önmagában minden kimeneti beállítás rögzítését.

A beszélgetéses szerkesztés lehetővé teszi, hogy egy további kérés a meglévő eredmény egy részét módosítsa: megváltoztassa a fényt, elmozdítson egy tárgyat vagy lefordítsa a címkéket a kompozíció többi részének megőrzésével. Vigye tovább a korábbi képet vagy interakciót a következő fordulóba, és nevezze meg a kért módosítást és a megőrzendő jellemzőket is. Karaktersorozatnál használjon következetes megjelenési referenciákat, és adjon pózreferenciát, ha új nézőpont vagy összetett póz számít. Gyakorlati módosítási feladat lehet: „Őrizze meg a terméket, a címkéket és az elrendezést; csak a háttér legyen melegebb szürke.”

A modelltáblázat 131 072 tokenes bemeneti és 32 768 tokenes kimeneti korlátot ad meg. A képgenerálás és a keresésalapú forráshoz kötés támogatott, míg a hanggenerálás, a kódvégrehajtás, a függvényhívás, a strukturált kimenetek, a gyorsítótárazás, a fájlkeresés, az URL-kontextus és a Live API ennél a kiadásnál nem szerepel támogatottként. A videó információt adhat egy generált állóképhez; ettől a modell nem válik videógenerátorrá. A Google azt is megjegyzi, hogy a pontos képszámot kérő utasítás nem feltétlenül eredményezi az adott darabszámot. Minden generált kép SynthID-vízjelet tartalmaz.

Hasznos első feladatleíráshoz adja meg a kép célját, témáját, kompozícióját, világítását, kameranézetét, kötelező szövegét és kimeneti formáját. Kérjen például álló infografikát három feliratozott lépéssel, olvasható címmel és meghatározott színhierarchiával, majd a következő szerkesztés előtt ellenőrizze a szöveget és az elemek egymáshoz viszonyított elhelyezését. Az eredmény termékillusztrációvá, szerkesztőségi grafikává vagy designreferenciává válhat, a kiválasztott kép és magyarázó szövegének együttes megőrzésével.

Gyakorlati feladat

Gyakorlati feladat

Technikai példa angolul

Refine an approved poster background

Edit the supplied event poster. Preserve every word, the headline hierarchy, illustration placement and portrait composition. Change only the background from cool white to warm ivory, keeping dark text readable and retaining the original accent color. Do not add shapes, badges, textures or extra captions. Return the revised poster image.

Várt eredmény

One edited poster with the original wording and layout preserved over a warm ivory background.

Az eredmény ellenőrzése

Compare every word and element position against the supplied poster, then inspect text contrast.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions google/gemini-nano-banana-2.1

google/gemini-nano-banana-2.1

Google /google/gemini-nano-banana-2.1

Kezdő lépések

A Gemini Nano Banana 2.1 beszélgetésben generál és szerkeszt képeket szövegből és vizuális anyagból. Javítja a szövegmegjelenítést, az infografikák elrendezését és a többfordulós következetességet, 1K–4K kimenettel és legfeljebb 14 referenciaképpel egy meghatározott vizuális feladatleíráshoz.

Elfogadott bemenetek
Szöveg
Eredmények
Szöveg

Elérhető az Ailootban · bemenetek és metódusok

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Bemenet
text
Kimenet
text
Kimeneti formátum
json vagy SSE
MezőTípusKövetelményÉrtékek és korlátokAlapértelmezett
MezőmodelTípusstringKövetelményKötelezőÉrtékek és korlátok
google/gemini-nano-banana-2.1
Alapértelmezett—
MezőmessagesTípusmessage[]KövetelményKötelezőÉrtékek és korlátok
Minimális elemszám: 1
Alapértelmezett—
Mezőmessages[].roleTípusstringKövetelményKötelezőÉrtékek és korlátok
Példák: system, user, assistant, tool, function
Feltételek: Ezeket a szerepeket a forráskód kompatibilitási típusai kifejezetten reprezentálják; a pontos szerepkészlet továbbra is modellspecifikus.
Modelltől függ
Alapértelmezett—
Mezőmessages[].contentTípusstring|content_part[]|nullKövetelményOpcionálisÉrtékek és korlátokAlapértelmezett—
Mezőmessages[].tool_callsTípustool_call[]KövetelményOpcionálisÉrtékek és korlátokAlapértelmezett—
Mezőmessages[].tool_call_idTípusstringKövetelményOpcionálisÉrtékek és korlátok
Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t
Alapértelmezett—
Mezőmessages[].nameTípusstringKövetelményOpcionálisÉrtékek és korlátokAlapértelmezett—
Mezőmessages[].reasoning_contentTípusstringKövetelményOpcionálisÉrtékek és korlátok
Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja
Alapértelmezett—
Mezőmessages[].reasoning_detailsTípusobject|arrayKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőmax_tokensTípusintegerKövetelményOpcionálisÉrtékek és korlátok
Minimum: 1
Modelltől függ
Alapértelmezett—
Mezőmax_completion_tokensTípusintegerKövetelményOpcionálisÉrtékek és korlátok
Minimum: 1
Modelltől függ
Alapértelmezett—
MezőstreamTípusbooleanKövetelményOpcionálisÉrtékek és korlátokAlapértelmezettfalse
Mezőstream_options.include_usageTípusbooleanKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
MezőtemperatureTípusnumberKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőtop_pTípusnumberKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
MezőstopTípusstring|string[]KövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
MezőtoolsTípusfunction_tool[]KövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőtools[].typeTípusstringKövetelményOpcionálisÉrtékek és korlátok
function
Modelltől függ
Alapértelmezett—
Mezőtools[].function.nameTípusstringKövetelményKötelezőÉrtékek és korlátok
Akkor alkalmazandó, ha: Függvényeszköz megadva
Alapértelmezett—
Mezőtools[].function.descriptionTípusstringKövetelményOpcionálisÉrtékek és korlátokAlapértelmezett—
Mezőtools[].function.parametersTípusJSON_schemaKövetelményOpcionálisÉrtékek és korlátokAlapértelmezett—
Mezőtool_choiceTípusstring|objectKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőparallel_tool_callsTípusbooleanKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőresponse_formatTípusobjectKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőreasoning_effortTípusstringKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
MezőreasoningTípusobjectKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőservice_tierTípusstringKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
MezőinstructionsTípusstringKövetelményOpcionálisÉrtékek és korlátok
Kompatibilitási mező
Alapértelmezett—
MezőfunctionsTípusfunction[]KövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőfunction_callTípusstring|objectKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
Mezőprompt_cache_optionsTípusobjectKövetelményOpcionálisÉrtékek és korlátok
Modelltől függ
Alapértelmezett—
MezőmodalitiesTípusstring[]KövetelményOpcionálisÉrtékek és korlátok
text
Alapértelmezett—
MezőproviderTípusobjectKövetelményOpcionálisÉrtékek és korlátok
Feltételek: A provider.options elutasításra kerül ezen az Ultra szöveges útvonalon
Alapértelmezett—
Mezőcache_control.ttlTípusstringKövetelményOpcionálisÉrtékek és korlátok
Feltételek: Az 1h elutasításra kerül a tényleges prompt-gyorsítótárazási helyeken
Alapértelmezett—
Bemeneti anyagok kombinációi

Szöveg · UTF8 szöveg

messages[].content

Metódus paraméterei és életciklusa
ParaméterSzerződés
Paramétercontent_typeSzerződésapplication/json
ParaméterrequiredSzerződésmodel, messages
Paramétermaterial_typesSzerződéstext
ParamétermessagesSzerződésüzenettömb role/content szerkezettel
Paraméterfile_materialSzerződésa tényleges UTF-8 dokumentum szó szerinti szövegként beillesztve; nincs kikövetkeztetett fájlazonosító
Paraméteroptional_controlsSzerződésstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Paramétercontrol_scopeSzerződésmodellspecifikus; a felhasználói függvényeszközök eltérnek a hosztolt eszközöktől
Paraméteroutput_modalitiesSzerződéstext
Paraméterhosted_operationsSzerződésfalse
Paramétermultimodal_input_bindingSzerződésnull

Életciklus: synchronous_or_streamed

Küldje el a pontos modellazonosítót a messages mellett.

A kontextushossz nem kimeneti felső korlát.

Egy szövegfájl szó szerinti szöveget adhat meg; a kép-/hang-/fájlobjektum-bemenetek pontos hozzárendelést igényelnek.

Díjcsomagok

A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.

Gyors mód
Normál díjszabás Ha a gyors mód van kiválasztva
Flex mód
Normál díjszabás Ha a flex mód van kiválasztva
Maximális gondolkodási ráfordítás
Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik
Gondolkodási ráfordítás · high
Normál díjszabás Ha a gondolkodási ráfordítás értéke high
Gondolkodási ráfordítás · minimal
Normál díjszabás Ha a gondolkodási ráfordítás értéke minimal
Explicit gyorsítótárazás díjai
Nincs engedélyezve Ha explicit gyorsítótárazást kérnek

Ailoot-díjak

Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

BeállításDíjtáblázatKontextustokenek, több mintKontextustokenek, legfeljebbDíj
BeállításTokenenkénti alapárakDíjtáblázatAlapdíjKontextustokenek, több mint—Kontextustokenek, legfeljebbNincs felső korlátDíj
Bemenet · Bemeneti tokenek $0.003 / 1K token
Kimenet · Kimeneti tokenek $0.015 / 1K token
Bemenet · Gyorsítótár olvasása — / 1K token
Bemenet · Írás a gyorsítótárba — / 1K token
Bemenet · Írás a gyorsítótárba, 1 óra — / 1K token
Kimenet · Kimeneti képtokenek $0.06 / 1K képtoken
BeállításA kéréshossz szerinti 1. ársávDíjtáblázat—Kontextustokenek, több mint0Kontextustokenek, legfeljebbNincs felső korlátDíj
Bemenet · Bemeneti tokenek $0.003 / 1K token
Kimenet · Kimeneti tokenek $0.015 / 1K token
Bemenet · Gyorsítótár olvasása — / 1K token
Bemenet · Írás a gyorsítótárba — / 1K token
Bemenet · Írás a gyorsítótárba, 1 óra — / 1K token

A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Google: Nano Banana 2.1

Árak beállításonként

BeállításElszámolási feltételekDíj
BeállításGoogle: Nano Banana 2.1 · Alapértelmezett beállításokElszámolási feltételekAlapértelmezett konfigurációDíj
Bemenet · Bemeneti tokenek 0,003 USD / 1K token
Kimenet · Kimeneti tokenek 0,015 USD / 1K token
Kimenet · Kimeneti kép 0,06 USD / 1K token
Kimenet · Webes keresés 0,028 USD keresésenként

Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. A foglalás és az elszámolás működése →

Példakérések

Ailoot Ultra · OpenAI Chat

curlPython SDKPython-adatfolyam
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-nano-banana-2.1", "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-nano-banana-2.1',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-nano-banana-2.1',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")

Eredmények fogadása és mentése

Ailoot Ultra · OpenAI Chat

json vagy SSE

Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizze meg az összes válaszváltozatot és azok tartalmát/eszközhívásait/gondolkodási tartalmát. SSE esetén válaszváltozat- és eszközindex szerint állítsa össze a részleges frissítéseket, és tartsa meg a végső befejezési okot és a használati adatokat.

Ha az eredeti választ ellenőrizni kell

Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.

Válaszmezők
MezőTípus
Mezőchoices[].indexTípusinteger
Mezőchoices[].message.contentTípusstring|null
Mezőchoices[].message.tool_callsTípustool_call[]
Mezőchoices[].message.reasoning_contentTípusstring
Mezőchoices[].message.reasoning_detailsTípusobject|array
Mezőchoices[].finish_reasonTípusstring|null
MezőusageTípusobject
Hibák és következő lépések
VálaszFeltételKövetkező lépés
Válasz400 · invalid_request_errorFeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterértékKövetkező lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt.

Álnevek

Modell álnevei

Ailoot Ultra google/gemini-nano-banana-2.1

Metódusútvonalak álnevei

/v1/images

Kapcsolódó modellazonosítók

google/gemini-nano-banana-2.1

Ailoot Ultra · Képek POST /v1/images/generations google/gemini-nano-banana-2.1

google/gemini-nano-banana-2.1

Google /google/gemini-nano-banana-2.1

Kezdő lépések

A Gemini Nano Banana 2.1 beszélgetésben generál és szerkeszt képeket szövegből és vizuális anyagból. Javítja a szövegmegjelenítést, az infografikák elrendezését és a többfordulós következetességet, 1K–4K kimenettel és legfeljebb 14 referenciaképpel egy meghatározott vizuális feladatleíráshoz.

Elfogadott bemenetek
Szöveg · Képek
Eredmények
Képek

Elérhető az Ailootban · bemenetek és metódusok

Ailoot Ultra · Képek POST /v1/images/generations
Bemenet
text, image
Kimenet
image
MezőTípusKövetelményÉrtékek és korlátokAlapértelmezett
MezőmodelTípusstringKövetelményKötelezőÉrtékek és korlátok
google/gemini-nano-banana-2.1
Alapértelmezett—
MezőpromptTípusstringKövetelményKötelezőÉrtékek és korlátok
Minimális hossz: 1
Alapértelmezett—
MezőresolutionTípusstringKövetelményOpcionálisÉrtékek és korlátok
1K, 2K, 4K
Alapértelmezett—
Mezőaspect_ratioTípusstringKövetelményOpcionálisÉrtékek és korlátok
1:1, 1:4, 1:8, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9
Alapértelmezett—
MezőnTípusintegerKövetelményOpcionálisÉrtékek és korlátok
Minimum: 1
Maximum: 1
Alapértelmezett—
Mezőinput_referencesTípusarrayKövetelményOpcionálisÉrtékek és korlátok
Minimális elemszám: 0
Maximális elemszám: 14
Alapértelmezett—
MezőproviderTípusobjectKövetelményOpcionálisÉrtékek és korlátokAlapértelmezett—
Metódus paraméterei és életciklusa
ParaméterSzerződés
Paramétercontent_typeSzerződésapplication/json
ParaméterrequiredSzerződésmodel, prompt
Paramétermaterial_typesSzerződéstext, image

Életciklus: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · A ténylegesen visszaadott task_id vagy a médiatár bejegyzése

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Díjcsomagok

A végső díj számítása

A megjelenített díjtételek a generálás előtti költségbecsléshez szolgálnak. A végleges díj az eredeti generáláshoz rögzített költségből számítódik. A kimenet mért időtartama és az előre jelzett mennyiségek nem azonosak a véglegesen elszámolandó mennyiséggel.

A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.

Gyors mód
Nincs megadva Ha a gyors mód van kiválasztva
Flex mód
Nincs megadva Ha a flex mód van kiválasztva
Maximális gondolkodási ráfordítás
Nincs megadva Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

Becsült díjak összehasonlításhoz

Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

BeállításDíjtáblázatElőre jelzett mennyiségDíj
BeállításTokenek alapdíjaiDíjtáblázatAlapdíjElőre jelzett mennyiség—Díj
Bemenet · Bemeneti tokenek · Becslés, csak összehasonlításra — / 1K token
Kimenet · Kimeneti tokenek · Becslés, csak összehasonlításra — / 1K token
Bemenet · Gyorsítótár olvasása · Becslés, csak összehasonlításra — / 1K token
Bemenet · Írás a gyorsítótárba · Becslés, csak összehasonlításra — / 1K token
Bemenet · Írás a gyorsítótárba, 1 óra · Becslés, csak összehasonlításra — / 1K token
BeállításA generálás becsült költségeDíjtáblázat—Előre jelzett mennyiségbecslés egy generálásraDíj
Kimenet · Becsült generálási költség · Becslés, csak összehasonlításra $0.24576 becslés a generálás előtt

Ez a becslés nem jelent további díjat, és nem rögzített díjszabás az elkészült generálásra.

Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. A foglalás és az elszámolás működése →

Példakérések

Ailoot Ultra · Képek

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-nano-banana-2.1', '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

Eredmények fogadása és mentése

Ailoot Ultra · Képek

Töltsön le minden visszaadott képet, vagy mentse a Base64-tartalmat

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
További tartalomlekérések
A meglévő, Önhöz tartozó médiafájlok lekérése
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.
Őrizzen meg minden elkészült eredményt

Mentsen minden elkészült képet; töltse le az összes visszaadott URL tartalmát, vagy dekódolja a Base64-tartalmat.

Őrizze meg a teljes választ és a fejléceket, minden tényleges kimenetet, az eredetileg visszaadott azonosítókat és az összes használati adatmezőt. Az eredeti műveletet állítsa helyre, a létrehozási kérés újbóli beküldése nélkül.

Ha az eredeti választ ellenőrizni kell

Őrizze meg a visszaadott X-Client-Request-ID értéket az egyeztetéshez. Csak a ténylegesen visszaadott task_id/asset_id értékekkel kérdezzen le, vagy használja a saját médiatárat; soha ne állítson össze feladat-URL-t a műveletazonosítóból, és soha ne küldje be újra a létrehozási kérést.

Válaszmezők
MezőTípus
MezőcreatedTípus
Meződata[].urlTípus
Meződata[].b64_jsonTípus
MezőusageTípus

Álnevek

Modell álnevei

Ailoot Ultra google/gemini-nano-banana-2.1

Metódusútvonalak álnevei

/v1/images

Kapcsolódó modellazonosítók

google/gemini-nano-banana-2.1

Ailoot Ultra · Anthropic Messages POST /v1/messages google/gemini-nano-banana-2.1

google/gemini-nano-banana-2.1

Google /google/gemini-nano-banana-2.1

Kezdő lépések

A Gemini Nano Banana 2.1 beszélgetésben generál és szerkeszt képeket szövegből és vizuális anyagból. Javítja a szövegmegjelenítést, az infografikák elrendezését és a többfordulós következetességet, 1K–4K kimenettel és legfeljebb 14 referenciaképpel egy meghatározott vizuális feladatleíráshoz.

Elfogadott bemenetek
Szöveg
Eredmények
json · sse

Elérhető az Ailootban · bemenetek és metódusok

Ailoot Ultra · Anthropic Messages POST /v1/messages
Bemenet
text
Kimenet
json, sse
Kimeneti formátum
JSON vagy SSE
MezőTípusKövetelményÉrtékek és korlátokAlapértelmezett
MezőmodelTípusstringKövetelményKötelezőÉrtékek és korlátok
google/gemini-nano-banana-2.1
Alapértelmezett—
MezőmessagesTípusmessage[]KövetelményKötelezőÉrtékek és korlátokAlapértelmezett—
Mezőmessages[].roleTípusstringKövetelményKötelezőÉrtékek és korlátok
user, assistant
Alapértelmezett—
Mezőmessages[].contentTípusstringKövetelményKötelezőÉrtékek és korlátokAlapértelmezett—
Mezőmax_tokensTípusintegerKövetelményKötelezőÉrtékek és korlátokAlapértelmezett—
MezőstreamTípusbooleanKövetelményOpcionálisÉrtékek és korlátokAlapértelmezettfalse
Bemeneti anyagok kombinációi

Szöveg · UTF-8 szöveg

messages[].content karakterlánc

Metódus paraméterei és életciklusa
ParaméterSzerződés
Paramétercontent_typeSzerződésapplication/json
ParaméterrequiredSzerződésmodel, messages, max_tokens
Paraméteroptional_controlsSzerződésstream
Paramétermaterial_typesSzerződéstext
Paramétertext_file_materialSzerződésOlvassa el a tényleges UTF-8 dokumentumot, és tegye a szövegét a jelzett bemeneti karakterláncba vagy az üzenettartalom karakterláncába.

Életciklus: synchronous_or_streamed

Díjcsomagok

A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.

Gyors mód
Normál díjszabás Ha a gyors mód van kiválasztva
Flex mód
Normál díjszabás Ha a flex mód van kiválasztva
Maximális gondolkodási ráfordítás
Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik
Gondolkodási ráfordítás · high
Normál díjszabás Ha a gondolkodási ráfordítás értéke high
Gondolkodási ráfordítás · minimal
Normál díjszabás Ha a gondolkodási ráfordítás értéke minimal
Explicit gyorsítótárazás díjai
Nincs engedélyezve Ha explicit gyorsítótárazást kérnek

Ailoot-díjak

Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

BeállításDíjtáblázatKontextustokenek, több mintKontextustokenek, legfeljebbDíj
BeállításTokenenkénti alapárakDíjtáblázatAlapdíjKontextustokenek, több mint—Kontextustokenek, legfeljebbNincs felső korlátDíj
Bemenet · Bemeneti tokenek $0.003 / 1K token
Kimenet · Kimeneti tokenek $0.015 / 1K token
Bemenet · Gyorsítótár olvasása — / 1K token
Bemenet · Írás a gyorsítótárba — / 1K token
Bemenet · Írás a gyorsítótárba, 1 óra — / 1K token
Kimenet · Kimeneti képtokenek $0.06 / 1K képtoken
BeállításA kéréshossz szerinti 1. ársávDíjtáblázat—Kontextustokenek, több mint0Kontextustokenek, legfeljebbNincs felső korlátDíj
Bemenet · Bemeneti tokenek $0.003 / 1K token
Kimenet · Kimeneti tokenek $0.015 / 1K token
Bemenet · Gyorsítótár olvasása — / 1K token
Bemenet · Írás a gyorsítótárba — / 1K token
Bemenet · Írás a gyorsítótárba, 1 óra — / 1K token

Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. A foglalás és az elszámolás működése →

Példakérések

Ailoot Ultra · Anthropic Messages

Teljes, minimális JSON-törzscurl · használd a saját UTF-8-dokumentumodatPython · mentsd el a teljes eredményt
{
  "model": "google/gemini-nano-banana-2.1",
  "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-nano-banana-2.1', '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-nano-banana-2.1', '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))

Eredmények fogadása és mentése

Ailoot Ultra · Anthropic Messages

JSON vagy SSE

Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizze meg az összes tartalomblokkot, a gondolkodási tartalom aláírásait és a tényleges eszközhasználati ID-kat. Állítsa össze az összes SSE-blokk részleges frissítését; az első szövegblokk nem a teljes kimenet.

Ha az eredeti választ ellenőrizni kell

Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.

Válaszmezők
MezőTípus
MezőidTípusstring
MezőmodelTípusstring
Mezőcontent[]Típustext|thinking|tool_use|other content block
Mezőstop_reasonTípusstring|null
MezőusageTípusobject
Hibák és következő lépések
VálaszFeltételKövetkező lépés
Válasz400 · invalid_request_errorFeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterértékKövetkező lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt.

Álnevek

Modell álnevei

Ailoot Ultra google/gemini-nano-banana-2.1

Metódusútvonalak álnevei

/v1/images

Kapcsolódó modellazonosítók

google/gemini-nano-banana-2.1

FAQ · Google: Nano Banana 2.1
Milyen bemenetek és eredmények érhetők el?

POST /v1/chat/completions · google/gemini-nano-banana-2.1: text → text

POST /v1/images/generations · google/gemini-nano-banana-2.1: text, image → image

POST /v1/messages · google/gemini-nano-banana-2.1: text → json, sse

Mely mezőket használja a kérés?

POST /v1/chat/completions · google/gemini-nano-banana-2.1: model, messages, stream, modalities, provider

POST /v1/images/generations · google/gemini-nano-banana-2.1: model, prompt, resolution, aspect_ratio, n, input_references, provider

POST /v1/messages · google/gemini-nano-banana-2.1: model, messages, max_tokens, stream

Milyen korlátok érvényesek?

POST /v1/chat/completions · google/gemini-nano-banana-2.1: messages.min_items: 1

POST /v1/images/generations · google/gemini-nano-banana-2.1: n.minimum: 1; n.maximum: 1

További részletek

Csatlakoztassa az Ailootot a Claude Code-hoz, OpenCode-hoz, Hermeshez vagy saját alkalmazásához.

A vállalat és projektportfóliója

A vállalat és projektportfóliója: ügyfelek milliói; havi értékesítés milliárdos nagyságrendben.

Vásároljon tokeneket kedvezménnyel.

Előfizetési kedvezmény rendszeres munkához. Promókódok — akár 50% tokenvásárlási kedvezmény.

Előfizetés
Válasszon kedvezményes tarifát a rendszeres kéréseihez.
Promókód akár 50%-ig
Vásárláskor adja meg a kódot. Az ár az érvényes akció szerint újraszámolódik.
Költségek az előzményekben
Minden kéréshez megmarad a modell, a tokenek és az összeg.

Előfizetés kiválasztása · Modellárak megtekintése

Csatlakoztassa az API-t az értékesített termékéhez.

SaaS, alkalmazások és botok — az Ailoot ajánlati feltételei és licencszerződése alapján. Viszonteladáshoz kérjen viszonteladói licencet.

Kereskedelmi alkalmazás
Építsen szöveg-, kép-, videó- és hanggenerálást szolgáltatása fizetős funkcióiba.
Viszonteladói licenc
Küldje el a projekt leírását és a hozzáférés módját. Kérjen írásos használati és viszonteladási feltételeket.
Dokumentumok a weboldalon
Az ajánlati feltételek, licencszerződés és adatkezelési szabályzat már a csatlakoztatás előtt elérhető.

Viszonteladói licenc kérése · Ajánlati feltételek és licencszerződés