Source: https://ailoot.ai/models/sk/google-gemini-3-1-flash-image-preview/
Canonical: https://ailoot.ai/models/sk/google-gemini-3-1-flash-image-preview/
Language: sk

# Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)

[Markdown](https://ailoot.ai/models/sk/google-gemini-3-1-flash-image-preview/index.md) · [JSON](https://ailoot.ai/models/sk/google-gemini-3-1-flash-image-preview/facts.json)

## [Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)](https://ailoot.ai/models/sk/google-gemini-3-1-flash-image-preview/)

Nano Banana 2 (Gemini 3.1 Flash Image Preview) vytvára a upravuje obrázky z textu a vizuálnych referencií. Medzi jeho dokumentované silné stránky patria konzistentnosť subjektov, text v obrázkoch a lokalizácia, konverzačné zmeny a tvorivé ovládanie kompozície, pomeru strán a rozlíšenia.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/google-gemini-3-1-flash-image-preview/#method-0)
- [**Ailoot Ultra · Obrázky** `POST /v1/images/generations` `google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/google-gemini-3-1-flash-image-preview/#method-1)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/google-gemini-3-1-flash-image-preview/#method-2)

O modeli

Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.

Nano Banana 2 je model Gemini 3.1 Flash Image spoločnosti Google na generovanie obrázkov a konverzačné úpravy. Táto položka zachováva presnú identitu Preview. Písomný opis môže definovať nový vizuál, zatiaľ čo vstupný obrázok môže určiť námet, vzhľad alebo kompozíciu, ktorú treba upraviť. Výsledok môže obsahovať obrázok a sprievodný text. Materiály Google k uvedeniu zdôrazňujú znalosti sveta, vykresľovanie textu a konzistentnosť subjektov spolu so schopnosťou dolaďovať scénu prostredníctvom súvisiacich konverzačných ťahov.

Pri vizuálnej tvorbe ukotvenej v zdrojoch môže dokumentovaný model využívať informácie z webového a obrazového vyhľadávania ako podklad pre generovanie. To podporuje úlohy, ako je ilustrácia inšpirovaná konkrétnym miestom alebo diagram založený na dodaných informáciách. Definujte zdrojové fakty, ktoré majú byť zobrazené, a odlíšte ich od umeleckých rozhodnutí. Generovanie informované vyhľadávaním nerobí z každého detailu konečného obrázka overené tvrdenie. Ak musí byť produkt, pamiatka alebo diagram presný, poskytnite autoritatívnu referenciu a výstup podľa nej skontrolujte.

Materiály k uvedeniu opisujú lepšie vykresľovanie textu v obrázkoch a lokalizáciu. Pri plagáte, infografike alebo marketingovej makete poskytnite presné znenie, jazyk a úlohu každého textového prvku. Najprv dokončite text a až potom žiadajte vizuál, ktorý ho obsahuje, ako odporúča obrazová príručka. Vysvetlite poradie čítania a relatívny dôraz, aby sa nezamieňali nadpis, popis a označenie diagramu. Pred použitím obrázka v publikácii skontrolujte pravopis, interpunkciu a prepojenie medzi označením a zobrazeným prvkom.

Tvorivé ovládanie zahŕňa pomer strán a rozlíšenie. Pri uvedení pribudol výstup s 512 pixelmi popri možnostiach 1K, 2K a 4K a pomery strán 4:1, 1:4, 8:1 a 1:8. Príručka pre vývojárov uvádza minimal ako predvolenú úroveň uvažovania a high ako možnosť pre zložitejšie kompozície. Zamýšľané použitie vyberte ešte pred tvorbou kompozície: vertikálny príbeh, široký banner a kompaktný diagram potrebujú odlišný priestor pre námet a prípadné písmo. Tieto nastavenia opisujú generačný postup výrobcu pre tento rad, nie automatickú zmenu veľkosti už hotového artefaktu.

Pre konzistentnosť subjektov označte úlohu každej referencie: vzhľad produktu, identita postavy, pozadie alebo vizuálny štýl. Uveďte detaily, ktoré treba zachovať, a potom pomenujte prvky, ktoré treba zmeniť. Pôvodná úloha môže umiestniť dodanú produktovú fotografiu do novej scény pri zachovaní tvaru, materiálu a viditeľnej značky. Pri ilustrovanej sekvencii zachovajte rovnaké referencie a definujte, ktoré detaily sa menia podľa scény. Viac referencií nenahrádza jasný pokyn o tom, čím každý obrázok prispieva.

Konverzačné úpravy sú užitočné pri konkrétnej revízii. Požiadajte o úpravu jedného objektu, pozadia alebo osvetlenia pri zachovaní prijatej kompozície. Príručka výrobcu opisuje sémantické maskovanie, pri ktorom sa upravovaná oblasť identifikuje slovami. Pri viacťahovej práci zachovajte v zvolenom rozhraní konverzáciu a požadované metadáta kontextu uvažovania; príručka Gemini 3 vysvetľuje, že podpisy uvažovania pomáhajú tento kontext prenášať. Opis nezmenenej oblasti je pokynom, ktorý treba overiť podľa originálu, nie zárukou, že každý pixel zostane rovnaký.

Vývojárska tabuľka Gemini 3 výslovne uvádza gemini-3.1-flash-image-preview so vstupným limitom 128K a výstupným limitom 32K. Pri zaznamenávaní generovania zachovajte presný názov modelu Preview. Dostupné nastavenia referencií, výstupu a rozlíšenia uchovajte spolu so zdrojovými obrázkami a požiadavkou, aby sa úprava dala konzistentne zopakovať. Pri revízii zachovajte rovnaké zdrojové referencie a určte presnú vizuálnu zmenu pri zachovaní prijatej úlohy každého vstupu.

Obrazová príručka upozorňuje, že požadovaný počet obrázkov sa nemusí vždy dodržať, a uvádza označovanie generovaných obrázkov pomocou SynthID. Skontrolujte všetky vrátené obrázky a prípadný sprievodný text namiesto predpokladu, že výsledkom je jeden pevne daný obrázok. Pri zamýšľanej zobrazovacej veľkosti kontrolujte identitu subjektu, počet objektov, znenie textu v obrázku, kompozíciu a vernosť referenciám. Pri zložitej scéne určte súčasti v logickom poradí a požadovaný vzhľad opisujte pozitívne. Užitočným výsledkom je skontrolovaný vizuálny artefakt so zachovanými zdrojovými referenciami a presnou identitou modelu pre ďalšiu úpravu.

Praktická úloha

### Praktická úloha

Technický príklad v angličtine

```
Create a four-stage growing guide

Create a friendly flat illustration for a gardening guide showing four tomato-growing stages from left to right: seed in soil, small seedling, leafy plant, mature plant with red tomatoes. Use a warm cream background, consistent pots and simple green shapes. Keep each stage clearly separated. Include no text, numbers, labels or decorative extra plants.
```

#### Očakávaný výsledok

```
An image with four distinct growing stages in the specified order and a consistent illustration style.
```

#### Overenie výsledku

```
Inspect the actual image for exactly four stages, the left-to-right progression and absence of text or extra plants.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `google/gemini-3.1-flash-image-preview`

[`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=chat)

Google /`google/gemini-3.1-flash-image-preview`

### Úvod

Nano Banana 2 (Gemini 3.1 Flash Image Preview) vytvára a upravuje obrázky z textu a vizuálnych referencií. Medzi jeho dokumentované silné stránky patria konzistentnosť subjektov, text v obrázkoch a lokalizácia, konverzačné zmeny a tvorivé ovládanie kompozície, pomeru strán a rozlíšenia.

Povolené vstupy

Text

Výsledky

Text

### Dostupné v Ailoot · vstupy a metódy

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Vstup

`text`

Výstup

`text`

Výstupný formát

json alebo SSE

| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | PožiadavkaPovinné | Hodnoty a limity google/gemini-3.1-flash-image-preview | Predvolené— |
| Pole`messages` | Typ`message[]` | PožiadavkaPovinné | Hodnoty a limity Minimálny počet položiek: 1 | Predvolené— |
| Pole`messages[].role` | Typ`string` | PožiadavkaPovinné | Hodnoty a limity Príklady: system, user, assistant, tool, function Podmienky: Tieto roly sú výslovne zastúpené typmi kompatibility v zdrojovom kóde; presný súbor rolí zostáva závislý od modelu. Závisí od modelu | Predvolené— |
| Pole`messages[].content` | Typ`string\|content_part[]\|null` | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
| Pole`messages[].tool_calls` | Typ`tool_call[]` | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
| Pole`messages[].tool_call_id` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity Platí, keď: role=tool; použite skutočne vrátené ID | Predvolené— |
| Pole`messages[].name` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
| Pole`messages[].reasoning_content` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity Platí, keď: Posielajte späť skutočne vrátené uvažovanie, ak ho tento model používa | Predvolené— |
| Pole`messages[].reasoning_details` | Typ`object\|array` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`max_tokens` | Typ`integer` | PožiadavkaVoliteľné | Hodnoty a limity Minimum: 1 Závisí od modelu | Predvolené— |
| Pole`max_completion_tokens` | Typ`integer` | PožiadavkaVoliteľné | Hodnoty a limity Minimum: 1 Závisí od modelu | Predvolené— |
| Pole`stream` | Typ`boolean` | PožiadavkaVoliteľné | Hodnoty a limity | Predvolenéfalse |
| Pole`stream_options.include_usage` | Typ`boolean` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`temperature` | Typ`number` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`top_p` | Typ`number` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`stop` | Typ`string\|string[]` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`tools` | Typ`function_tool[]` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`tools[].type` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity function Závisí od modelu | Predvolené— |
| Pole`tools[].function.name` | Typ`string` | PožiadavkaPovinné | Hodnoty a limity Platí, keď: poskytnutý nástroj typu funkcia | Predvolené— |
| Pole`tools[].function.description` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
| Pole`tools[].function.parameters` | Typ`JSON_schema` | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
| Pole`tool_choice` | Typ`string\|object` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`parallel_tool_calls` | Typ`boolean` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`response_format` | Typ`object` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`reasoning_effort` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`reasoning` | Typ`object` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`service_tier` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`instructions` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity Pole kompatibility | Predvolené— |
| Pole`functions` | Typ`function[]` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`function_call` | Typ`string\|object` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`prompt_cache_options` | Typ`object` | PožiadavkaVoliteľné | Hodnoty a limity Závisí od modelu | Predvolené— |
| Pole`modalities` | Typ`string[]` | PožiadavkaVoliteľné | Hodnoty a limity text | Predvolené— |
| Pole`provider` | Typ`object` | PožiadavkaVoliteľné | Hodnoty a limity Podmienky: provider.options sa na tejto textovej trase Ultra odmieta | Predvolené— |
| Pole`cache_control.ttl` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity Podmienky: Hodnota 1h sa v skutočne používaných poliach cache promptov odmieta | Predvolené— |

Kombinácie vstupných podkladov

**Text** · Text UTF8

`messages[].content`

Parametre a životný cyklus metódy

| Parameter | Špecifikácia |
| --- | --- |
| Parameter`content_type` | Špecifikáciaapplication/json |
| Parameter`required` | Špecifikáciamodel, messages |
| Parameter`material_types` | Špecifikáciatext |
| Parameter`messages` | Špecifikáciapole správ so štruktúrou role/content |
| Parameter`file_material` | Špecifikáciaskutočný dokument UTF-8 vložený ako doslovný text; ID súboru sa neodvodzuje |
| Parameter`optional_controls` | Špecifikáciastream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parameter`control_scope` | Špecifikáciazávisí od modelu; používateľské nástroje typu funkcia sa líšia od nástrojov prevádzkovaných službou |
| Parameter`output_modalities` | Špecifikáciatext |
| Parameter`hosted_operations` | Špecifikáciafalse |
| Parameter`multimodal_input_binding` | Špecifikácianull |

Životný cyklus: `synchronous_or_streamed`

Pošlite presné ID modelu spolu s messages.

Dĺžka kontextu nie je horná hranica výstupu.

Textový súbor môže poskytnúť doslovný text; obrazové a zvukové vstupy a vstupy so súborovými objektmi potrebujú presné naviazanie.

### Cenník

Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.

Rýchly režim

Štandardná sadzba Keď je zvolený rýchly režim

Režim Flex

Štandardná sadzba Keď je zvolený režim flex

Maximálna úroveň uvažovania

Štandardná sadzba Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)

Úroveň uvažovania · vysoká

Štandardná sadzba Keď je úroveň uvažovania vysoká

Úroveň uvažovania · minimálna

Štandardná sadzba Keď je úroveň uvažovania minimálna

Ceny explicitnej cache

Nie je zapnuté Keď sa požaduje explicitná cache

#### Sadzby Ailoot

#### Ceny podľa konfigurácie

Každý poplatok priraďte k zobrazeným podmienkam. Pre každú skupinu alternatívnych konfigurácií použite jednu sadzbu.

| Konfigurácia | Sadzobník | Počet tokenov kontextu väčší než | Tokeny kontextu, najviac (vrátane hranice) | Poplatok |
| --- | --- | --- | --- | --- |
| KonfiguráciaZákladné sadzby za tokeny | SadzobníkZákladná sadzba | Počet tokenov kontextu väčší než— | Tokeny kontextu, najviac (vrátane hranice)Bez hornej hranice | Poplatok Vstup · Vstupné tokeny **$0.001** / 1K tokenov Výstup · Výstupné tokeny **$0.006** / 1K tokenov Vstup · Čítanie cache **—** / 1K tokenov Vstup · Zápis do cache **—** / 1K tokenov Vstup · Zápis do cache, 1 hod **—** / 1K tokenov Výstup · Tokeny výstupného obrázka **$0.12** / 1K obrazových tokenov |
| KonfiguráciaPásmo dĺžky požiadavky 1 | Sadzobník— | Počet tokenov kontextu väčší než0 | Tokeny kontextu, najviac (vrátane hranice)Bez hornej hranice | Poplatok Vstup · Vstupné tokeny **$0.001** / 1K tokenov Výstup · Výstupné tokeny **$0.006** / 1K tokenov Vstup · Čítanie cache **—** / 1K tokenov Vstup · Zápis do cache **—** / 1K tokenov Vstup · Zápis do cache, 1 hod **—** / 1K tokenov |

#### Podrobnosti referenčnej tarify

Referenčné sadzobníky modelu nemenia výber metódy, cenové odhady ani poplatky. Aktívne poplatky používajú sadzby vybranej metódy Ailoot.

google/gemini-3.1-flash-image-preview

#### Ceny podľa konfigurácie

| Konfigurácia | Podmienky účtovania | Poplatok |
| --- | --- | --- |
| Konfiguráciagoogle/gemini-3.1-flash-image-preview · Predvolená konfigurácia | Podmienky účtovaniaPredvolená konfigurácia | Poplatok Vstup · Vstup **0,001 USD** / 1K tokenov Výstup · Výstup **0,12 USD** / 1K tokenov |

google/gemini-3.1-flash-image-preview

#### Ceny podľa konfigurácie

| Konfigurácia | Podmienky účtovania | Poplatok |
| --- | --- | --- |
| Konfiguráciagoogle/gemini-3.1-flash-image-preview · Predvolená konfigurácia | Podmienky účtovaniaPredvolená konfigurácia | Poplatok Vstup · Vstup **0,001 USD** / 1K tokenov Výstup · Výstup **0,12 USD** / 1K tokenov |

google/gemini-3.1-flash-image-preview

#### Ceny podľa konfigurácie

| Konfigurácia | Podmienky účtovania | Poplatok |
| --- | --- | --- |
| Konfiguráciagoogle/gemini-3.1-flash-image-preview · Predvolená konfigurácia | Podmienky účtovaniaPredvolená konfigurácia | Poplatok Vstup · Vstup **0,00 USD** za volanie Výstup · Výstup **0,16 USD** za volanie |

google/gemini-3.1-flash-image-preview

#### Ceny podľa konfigurácie

| Konfigurácia | Podmienky účtovania | Poplatok |
| --- | --- | --- |
| Konfiguráciagoogle/gemini-3.1-flash-image-preview · Predvolená konfigurácia | Podmienky účtovaniaPredvolená konfigurácia | Poplatok Vstup · Vstup **0,00 USD** za volanie Výstup · Výstup **0,32 USD** za volanie |

google/gemini-3.1-flash-image-preview

#### Ceny podľa konfigurácie

| Konfigurácia | Podmienky účtovania | Poplatok |
| --- | --- | --- |
| Konfiguráciagoogle/gemini-3.1-flash-image-preview · Predvolená konfigurácia | Podmienky účtovaniaPredvolená konfigurácia | Poplatok Vstup · Vstup **0,00 USD** za volanie Výstup · Výstup **0,00 USD** za volanie |

Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)

#### Ceny podľa konfigurácie

| Konfigurácia | Podmienky účtovania | Poplatok |
| --- | --- | --- |
| KonfiguráciaGoogle: Nano Banana 2 (Gemini 3.1 Flash Image Preview) · Predvolená konfigurácia | Podmienky účtovaniaPredvolená konfigurácia | Poplatok Vstup · Vstupné tokeny **0,001 USD** / 1K tokenov Výstup · Výstupné tokeny **0,006 USD** / 1K tokenov Výstup · Výstupný obrázok **0,12 USD** / 1K tokenov Výstup · Vyhľadávanie na webe **0,028 USD** za vyhľadávanie |

Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. [Ako funguje rezervácia a vyúčtovanie →](https://ailoot.ai/docs/sk/billing/reserve/)

### Príklady požiadaviek

#### Ailoot Ultra · OpenAI Chat

curlPython SDKStreamovanie v jazyku Python

```bash
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-3.1-flash-image-preview", "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
```

```python
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-3.1-flash-image-preview',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"))
```

```python
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-3.1-flash-image-preview',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")
```

### Prijať a uložiť výsledky

#### Ailoot Ultra · OpenAI Chat

json alebo SSE

##### Uchovať všetky dokončené výsledky

Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.

Zachovajte každý variant odpovede a jeho obsah, volania nástrojov a uvažovanie. V SSE zostavujte čiastkové zmeny podľa indexu variantu/nástroja a zachovajte konečný dôvod ukončenia aj údaje o spotrebe.

##### Ak treba overiť pôvodnú odpoveď

Zachovajte ID požiadaviek/odpovedí aj hlavičky. Všeobecná URL na načítanie textovej úlohy nie je poskytnutá.

Polia odpovede

| Pole | Typ |
| --- | --- |
| Pole`choices[].index` | Typinteger |
| Pole`choices[].message.content` | Typstring\|null |
| Pole`choices[].message.tool_calls` | Typtool\_call\[\] |
| Pole`choices[].message.reasoning_content` | Typstring |
| Pole`choices[].message.reasoning_details` | Typobject\|array |
| Pole`choices[].finish_reason` | Typstring\|null |
| Pole`usage` | Typobject |

Chyby a ďalšie kroky

| Odpoveď | Podmienka | Ďalší krok |
| --- | --- | --- |
| Odpoveď400 · `invalid_request_error` | PodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametra | Ďalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia. |

### Aliasy

#### Aliasy modelov

**Ailoot Ultra** [`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=chat)

#### Aliasy ciest metód

`/v1/images`

#### Súvisiace ID na volanie

[`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=chat)

**Ailoot Ultra · Obrázky** `POST /v1/images/generations` `google/gemini-3.1-flash-image-preview`

[`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=images)

Google /`google/gemini-3.1-flash-image-preview`

### Úvod

Nano Banana 2 (Gemini 3.1 Flash Image Preview) vytvára a upravuje obrázky z textu a vizuálnych referencií. Medzi jeho dokumentované silné stránky patria konzistentnosť subjektov, text v obrázkoch a lokalizácia, konverzačné zmeny a tvorivé ovládanie kompozície, pomeru strán a rozlíšenia.

Povolené vstupy

Text · Obrázky

Výsledky

Obrázky

### Dostupné v Ailoot · vstupy a metódy

**Ailoot Ultra · Obrázky** `POST /v1/images/generations`

Vstup

`text`, `image`

Výstup

`image`

| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | PožiadavkaPovinné | Hodnoty a limity google/gemini-3.1-flash-image-preview | Predvolené— |
| Pole`prompt` | Typ`string` | PožiadavkaPovinné | Hodnoty a limity Minimálna dĺžka: 1 | Predvolené— |
| Pole`resolution` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity 512, 1K, 2K, 4K | Predvolené— |
| Pole`aspect_ratio` | Typ`string` | PožiadavkaVoliteľné | Hodnoty a limity 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 | Predvolené— |
| Pole`n` | Typ`integer` | PožiadavkaVoliteľné | Hodnoty a limity Minimum: 1 Maximum: 1 | Predvolené— |
| Pole`input_references` | Typ`array` | PožiadavkaVoliteľné | Hodnoty a limity Minimálny počet položiek: 0 Maximálny počet položiek: 14 | Predvolené— |
| Pole`provider` | Typ`object` | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |

Parametre a životný cyklus metódy

| Parameter | Špecifikácia |
| --- | --- |
| Parameter`content_type` | Špecifikáciaapplication/json |
| Parameter`required` | Špecifikáciamodel, prompt |
| Parameter`material_types` | Špecifikáciatext, image |

Životný cyklus: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · skutočne vrátené task\_id alebo záznam v knižnici médií

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

`GET /v1/media/assets`

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

### Cenník

##### Ako sa vypočíta konečný poplatok

Zobrazené sadzby slúžia na odhad nákladov pred generovaním. Konečný poplatok sa vypočíta z nákladov zaznamenaných pri pôvodnom generovaní. Namerané trvanie výstupu a predpokladané množstvá nepredstavujú konečné účtované množstvo.

Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.

Rýchly režim

Neuvedené Keď je zvolený rýchly režim

Režim Flex

Neuvedené Keď je zvolený režim flex

Maximálna úroveň uvažovania

Neuvedené Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)

#### Odhadované sadzby na porovnanie

#### Ceny podľa konfigurácie

Každý poplatok priraďte k zobrazeným podmienkam. Pre každú skupinu alternatívnych konfigurácií použite jednu sadzbu.

| Konfigurácia | Sadzobník | Odhadované množstvo | Poplatok |
| --- | --- | --- | --- |
| KonfiguráciaZákladné sadzby za tokeny | SadzobníkZákladná sadzba | Odhadované množstvo— | Poplatok Vstup · Vstupné tokeny · Odhad iba na porovnanie **—** / 1K tokenov Výstup · Výstupné tokeny · Odhad iba na porovnanie **—** / 1K tokenov Vstup · Čítanie cache · Odhad iba na porovnanie **—** / 1K tokenov Vstup · Zápis do cache · Odhad iba na porovnanie **—** / 1K tokenov Vstup · Zápis do cache, 1 hod · Odhad iba na porovnanie **—** / 1K tokenov |
| KonfiguráciaOdhadované náklady na generovanie | Sadzobník— | Odhadované množstvoodhad pre jedno generovanie | Poplatok Výstup · Odhadované náklady na generovanie · Odhad iba na porovnanie **$0.49152** odhad pred generovaním Tento odhad nepredstavuje dodatočný poplatok ani pevnú sadzbu za dokončené generovanie. |

Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. [Ako funguje rezervácia a vyúčtovanie →](https://ailoot.ai/docs/sk/billing/reserve/)

### Príklady požiadaviek

#### Ailoot Ultra · Obrázky

curl

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'google/gemini-3.1-flash-image-preview', '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
```

### Prijať a uložiť výsledky

#### Ailoot Ultra · Obrázky

Stiahnite každý vrátený obrázok alebo uložte jeho obsah Base64

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

Čítanie ďalšieho obsahu

Čítať existujúce podklady, ktoré vám patria

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
```

##### Uchovať všetky dokončené výsledky

Uložte každý dokončený obrázok; stiahnite obsah z každej vrátenej URL alebo dekódujte jeho obsah Base64.

Uchovajte úplnú odpoveď a hlavičky, všetky skutočné výstupy, pôvodné vrátené identifikátory a všetky polia s údajmi o spotrebe. Obnovte pôvodnú operáciu bez opätovného odoslania požiadavky na vytvorenie.

##### Ak treba overiť pôvodnú odpoveď

Uchovajte vrátené X-Client-Request-ID na zosúladenie záznamov. Čítajte iba skutočne vrátené hodnoty task\_id/asset\_id alebo vlastnú knižnicu médií; nikdy nevytvárajte URL úlohy z ID operácie a nikdy znova neodosielajte požiadavku na vytvorenie.

Polia odpovede

| Pole | Typ |
| --- | --- |
| Pole`created` | Typ |
| Pole`data[].url` | Typ |
| Pole`data[].b64_json` | Typ |
| Pole`usage` | Typ |

### Aliasy

#### Aliasy modelov

**Ailoot Ultra** [`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=images)

#### Aliasy ciest metód

`/v1/images`

#### Súvisiace ID na volanie

[`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=images)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `google/gemini-3.1-flash-image-preview`

[`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=messages)

Google /`google/gemini-3.1-flash-image-preview`

### Úvod

Nano Banana 2 (Gemini 3.1 Flash Image Preview) vytvára a upravuje obrázky z textu a vizuálnych referencií. Medzi jeho dokumentované silné stránky patria konzistentnosť subjektov, text v obrázkoch a lokalizácia, konverzačné zmeny a tvorivé ovládanie kompozície, pomeru strán a rozlíšenia.

Povolené vstupy

Text

Výsledky

json · sse

### Dostupné v Ailoot · vstupy a metódy

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Vstup

`text`

Výstup

`json`, `sse`

Výstupný formát

JSON alebo SSE

| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | PožiadavkaPovinné | Hodnoty a limity google/gemini-3.1-flash-image-preview | Predvolené— |
| Pole`messages` | Typ`message[]` | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
| Pole`messages[].role` | Typ`string` | PožiadavkaPovinné | Hodnoty a limity user, assistant | Predvolené— |
| Pole`messages[].content` | Typ`string` | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
| Pole`max_tokens` | Typ`integer` | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
| Pole`stream` | Typ`boolean` | PožiadavkaVoliteľné | Hodnoty a limity | Predvolenéfalse |

Kombinácie vstupných podkladov

**Text** · Text UTF-8

`reťazec messages[].content`

Parametre a životný cyklus metódy

| Parameter | Špecifikácia |
| --- | --- |
| Parameter`content_type` | Špecifikáciaapplication/json |
| Parameter`required` | Špecifikáciamodel, messages, max\_tokens |
| Parameter`optional_controls` | Špecifikáciastream |
| Parameter`material_types` | Špecifikáciatext |
| Parameter`text_file_material` | ŠpecifikáciaPrečítajte skutočný dokument UTF-8 a vložte jeho text do uvedeného vstupného reťazca alebo reťazca obsahu správy. |

Životný cyklus: `synchronous_or_streamed`

### Cenník

Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.

Rýchly režim

Štandardná sadzba Keď je zvolený rýchly režim

Režim Flex

Štandardná sadzba Keď je zvolený režim flex

Maximálna úroveň uvažovania

Štandardná sadzba Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)

Úroveň uvažovania · vysoká

Štandardná sadzba Keď je úroveň uvažovania vysoká

Úroveň uvažovania · minimálna

Štandardná sadzba Keď je úroveň uvažovania minimálna

Ceny explicitnej cache

Nie je zapnuté Keď sa požaduje explicitná cache

#### Sadzby Ailoot

#### Ceny podľa konfigurácie

Každý poplatok priraďte k zobrazeným podmienkam. Pre každú skupinu alternatívnych konfigurácií použite jednu sadzbu.

| Konfigurácia | Sadzobník | Počet tokenov kontextu väčší než | Tokeny kontextu, najviac (vrátane hranice) | Poplatok |
| --- | --- | --- | --- | --- |
| KonfiguráciaZákladné sadzby za tokeny | SadzobníkZákladná sadzba | Počet tokenov kontextu väčší než— | Tokeny kontextu, najviac (vrátane hranice)Bez hornej hranice | Poplatok Vstup · Vstupné tokeny **$0.001** / 1K tokenov Výstup · Výstupné tokeny **$0.006** / 1K tokenov Vstup · Čítanie cache **—** / 1K tokenov Vstup · Zápis do cache **—** / 1K tokenov Vstup · Zápis do cache, 1 hod **—** / 1K tokenov Výstup · Tokeny výstupného obrázka **$0.12** / 1K obrazových tokenov |
| KonfiguráciaPásmo dĺžky požiadavky 1 | Sadzobník— | Počet tokenov kontextu väčší než0 | Tokeny kontextu, najviac (vrátane hranice)Bez hornej hranice | Poplatok Vstup · Vstupné tokeny **$0.001** / 1K tokenov Výstup · Výstupné tokeny **$0.006** / 1K tokenov Vstup · Čítanie cache **—** / 1K tokenov Vstup · Zápis do cache **—** / 1K tokenov Vstup · Zápis do cache, 1 hod **—** / 1K tokenov |

Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. [Ako funguje rezervácia a vyúčtovanie →](https://ailoot.ai/docs/sk/billing/reserve/)

### Príklady požiadaviek

#### Ailoot Ultra · Anthropic Messages

Úplné minimálne telo požiadavky vo formáte JSONcurl · použite svoj dokument UTF-8Python · uložte úplný výsledok

```json
{
  "model": "google/gemini-3.1-flash-image-preview",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
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-3.1-flash-image-preview', '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
```

```python
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-3.1-flash-image-preview', '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))
```

### Prijať a uložiť výsledky

#### Ailoot Ultra · Anthropic Messages

JSON alebo SSE

##### Uchovať všetky dokončené výsledky

Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.

Zachovajte všetky bloky obsahu, podpisy uvažovania a skutočné ID volaní nástrojov. Zostavte všetky čiastkové zmeny blokov SSE; prvý textový blok nie je celý výstup.

##### Ak treba overiť pôvodnú odpoveď

Zachovajte ID požiadaviek/odpovedí aj hlavičky. Všeobecná URL na načítanie textovej úlohy nie je poskytnutá.

Polia odpovede

| Pole | Typ |
| --- | --- |
| Pole`id` | Typstring |
| Pole`model` | Typstring |
| Pole`content[]` | Typtext\|thinking\|tool\_use\|other content block |
| Pole`stop_reason` | Typstring\|null |
| Pole`usage` | Typobject |

Chyby a ďalšie kroky

| Odpoveď | Podmienka | Ďalší krok |
| --- | --- | --- |
| Odpoveď400 · `invalid_request_error` | PodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametra | Ďalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia. |

### Aliasy

#### Aliasy modelov

**Ailoot Ultra** [`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=messages)

#### Aliasy ciest metód

`/v1/images`

#### Súvisiace ID na volanie

[`google/gemini-3.1-flash-image-preview`](https://ailoot.ai/models/sk/#m=google%2Fgemini-3.1-flash-image-preview&route=Ultra&caller=google%2Fgemini-3.1-flash-image-preview&fmt=messages)

FAQ · Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)

Aké vstupy a výsledky sú dostupné?

`POST /v1/chat/completions` · `google/gemini-3.1-flash-image-preview`: `text` → `text` `POST /v1/images/generations` · `google/gemini-3.1-flash-image-preview`: `text`, `image` → `image` `POST /v1/messages` · `google/gemini-3.1-flash-image-preview`: `text` → `json`, `sse`

Aké polia používa požiadavka?

`POST /v1/chat/completions` · `google/gemini-3.1-flash-image-preview`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/images/generations` · `google/gemini-3.1-flash-image-preview`: `model`, `prompt`, `resolution`, `aspect_ratio`, `n`, `input_references`, `provider` `POST /v1/messages` · `google/gemini-3.1-flash-image-preview`: `model`, `messages`, `max_tokens`, `stream`

Aké limity platia?

`POST /v1/chat/completions` · `google/gemini-3.1-flash-image-preview`: `messages.min_items`: `1` `POST /v1/images/generations` · `google/gemini-3.1-flash-image-preview`: `n.minimum`: `1`; `n.maximum`: `1`

Pripojte Ailoot k Claude Code, OpenCode, Hermes alebo vlastnej aplikácii.

## Spoločnosť a jej portfólio projektov

Spoločnosť a jej portfólio projektov: milióny zákazníkov; mesačné tržby v miliardách.

## Nakupujte tokeny so zľavou.

Zľava predplatného na pravidelnú prácu. Promo kódy až 50% na nákup tokenov.

Predplatné

Na pravidelné požiadavky vyberte tarifu so zľavou.

Promo kód až 50%

Pri nákupe zadajte kód. Cena sa prepočíta podľa prebiehajúcej akcie.

Výdavky v histórii

Pri každej požiadavke sa uloží model, tokeny a suma.

[Vybrať predplatné](https://ailoot.ai/docs/sk/billing/subscriptions/) · [Zobraziť ceny modelov](https://ailoot.ai/models/sk/)

## Pripojte API k produktu, ktorý predávate.

SaaS, aplikácie a boti podľa ponuky a licenčnej zmluvy Ailoot. Na ďalší predaj požiadajte o licenciu predajcu.

Komerčná aplikácia

Začleňte generovanie textu, obrázkov, videa a zvuku do platených funkcií svojej služby.

Licencia pre predajcu

Pošlite popis projektu a spôsob poskytovania prístupu. Vyžiadajte písomné podmienky použitia a ďalšieho predaja.

Dokumenty na webe

Ponuka, licenčná zmluva a zásady spracovania dát sú dostupné pred pripojením.

[Požiadať o licenciu predajcu](mailto:support@ailoot.ai) · [Ponuka a licenčná zmluva](https://ailoot.ai/legal/offer?lang=sk)

## Ailoot · Spoločnosť a jej portfólio projektov





Ailoot stavia na dlhodobých prevádzkových skúsenostiach, širokej klientskej základni, stabilných službách a priebežnom sledovaní KPI.





Spoločnosť a jej portfólio projektov: milióny zákazníkov; mesačné tržby v miliardách.





Ailoot využíva tieto prevádzkové skúsenosti na poskytovanie prístupu cez API k funkciám AI v produktoch zákazníkov, agentoch, aplikáciách a automatizáciách.
