Google: Nano Banana Pro (Gemini 3 Pro Image Preview)
Nano Banana Pro er Googles Gemini 3 Pro Image Preview-modell for bildegenerering og redigering. Den dokumenterte profilen støtter komposisjon med flere bilder, tekst i bildet, lokale kreative endringer, søkeforankring og utdata på 2K eller 4K.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsgoogle/gemini-3-pro-image-preview - Ailoot Ultra · Bilder
POST /v1/images/generationsgoogle/gemini-3-pro-image-preview - Ailoot Ultra · Anthropic Messages
POST /v1/messagesgoogle/gemini-3-pro-image-preview
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
Nano Banana Pro er Googles modell for bildegenerering og redigering bygget på Gemini 3 Pro. Den tar imot tekst og bilder og returnerer bilder eller tekst. Den publiserte profilen dekker infografikk, diagrammer, produktvisualiseringer, storyboards og komposisjoner som kombinerer flere elementer eller referanser.
Komponer bildet og det synlige innholdet
Angi formålet, hovedmotivet og forholdet mellom elementene. For en infografikk oppgir du de faktiske tallene og nøyaktige etiketter og beskriver deretter hierarkiet. For en produktscene identifiserer du objektet, synsvinkelen, omgivelsene og detaljene som må forbli gjenkjennelige. Modellens dokumenterte rolle i tekstgjengivelse omfatter lengre ordlyd og flerspråklige oppsett; kontroller de returnerte bokstavene, tallene og justeringen i bildet.
Søkeforankring er dokumentert for innarbeiding av aktuell informasjon i en visuell oppgave. Der grensesnittet tilbyr dette, beholder du kildefaktaene sammen med instruksen og undersøker hvordan de vises i den endelige grafikken. Et visuelt overbevisende diagram bør fortsatt sammenlignes med dataene og etikettene det skulle representere.
Referanser og kreative endringer
Den publiserte driftsprofilen godtar opptil fjorten referansebilder. Gi hvert bilde en rolle, som motiv, omgivelser eller visuell stil, fremfor å la forholdet mellom dem være uforklart. Modellbeskrivelsen vektlegger bevaring av identitet for opptil fem motiver; sammenlign de faktiske motivene og viktige detaljer gjennom hele den returnerte komposisjonen.
Ved en endring navngir du området eller objektet som skal endres, og elementene som skal beholdes. Dokumenterte kreative kontroller omfatter lokale endringer, justering av lys og fokus, kameratransformasjoner og fleksible sideforhold. Hold kildebildet tilgjengelig når både den forespurte endringen og detaljene som skal forbli gjenkjennelige, kontrolleres.
Oppløsning og en brukbar leveranse
Profilen dokumenterer utdata på 2K og 4K. Velg visuell proporsjon og utdataskala for tiltenkt plassering, og undersøk deretter de faktisk returnerte dimensjonene og filegenskapene. Et designkonsept og et eksportkrav bør forbli knyttet sammen når bildet inngår i et større oppsett.
Behold det valgte bildet sammen med instruksen, referanserollene og endringshistorikken. Kontroller nøyaktig ordlyd, motivkontinuitet og informasjonshierarki i den størrelsen ressursen skal brukes i. Den nyttige leveransen er den undersøkte visualiseringen eller tilhørende tekst fra denne modellprofilen, klar for videre design- eller produksjonsarbeid.
Praktisk oppgave
Praktisk oppgave
Teknisk eksempel på engelsk
Create a stock comparison infographic
Create a clean landscape infographic for a warehouse noticeboard. Title: "Weekly stock". Show exactly three labelled bars: "Boxes 24", "Bags 12", "Tubes 6". Use a white background, dark text and one blue accent. Keep labels large, align the bars to a common baseline and add no extra numbers or logos.Forventet resultat
One infographic image with the exact title and three proportional, labelled bars on a common baseline.Kontroller resultatet
Inspect all lettering and confirm the bar values and relative lengths match 24, 12 and 6.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions google/gemini-3-pro-image-preview
google/gemini-3-pro-image-preview
google/gemini-3-pro-image-previewStart
Nano Banana Pro er Googles Gemini 3 Pro Image Preview-modell for bildegenerering og redigering. Den dokumenterte profilen støtter komposisjon med flere bilder, tekst i bildet, lokale kreative endringer, søkeforankring og utdata på 2K eller 4K.
- Godkjente inndata
- Tekst
- Resultater
- Tekst
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Inndatatyper
text- Utdatatyper
text- Utdataformat
- json eller SSE
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser google/gemini-3-pro-image-preview | Standard— |
Feltmessages | Typemessage[] | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
Feltmessages[].role | Typestring | KravPåkrevd | Verdier & grenser Eksempler: system, user, assistant, tool, function Vilkår: Disse rollene representeres eksplisitt av kompatibilitetstyper i kildekoden; det eksakte rollesettet for modellen er fortsatt modellspesifikt. Avhenger av modellen | Standard— |
Feltmessages[].content | Typestring|content_part[]|null | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].tool_calls | Typetool_call[] | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].tool_call_id | Typestring | KravValgfritt | Verdier & grenser Gjelder når: role=tool; bruk faktisk returnert ID | Standard— |
Feltmessages[].name | Typestring | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].reasoning_content | Typestring | KravValgfritt | Verdier & grenser Gjelder når: Send den faktisk returnerte resonneringen tilbake der denne modellen bruker den | Standard— |
Feltmessages[].reasoning_details | Typeobject|array | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltmax_tokens | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
Feltmax_completion_tokens | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser | Standardfalse |
Feltstream_options.include_usage | Typeboolean | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttemperature | Typenumber | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttop_p | Typenumber | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltstop | Typestring|string[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttools | Typefunction_tool[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttools[].type | Typestring | KravValgfritt | Verdier & grenser function Avhenger av modellen | Standard— |
Felttools[].function.name | Typestring | KravPåkrevd | Verdier & grenser Gjelder når: funksjonsverktøy oppgitt | Standard— |
Felttools[].function.description | Typestring | KravValgfritt | Verdier & grenser | Standard— |
Felttools[].function.parameters | TypeJSON_schema | KravValgfritt | Verdier & grenser | Standard— |
Felttool_choice | Typestring|object | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltparallel_tool_calls | Typeboolean | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltresponse_format | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltreasoning_effort | Typestring | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltreasoning | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltservice_tier | Typestring | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltinstructions | Typestring | KravValgfritt | Verdier & grenser Kompatibilitetsfelt | Standard— |
Feltfunctions | Typefunction[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltfunction_call | Typestring|object | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltprompt_cache_options | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltmodalities | Typestring[] | KravValgfritt | Verdier & grenser text | Standard— |
Feltprovider | Typeobject | KravValgfritt | Verdier & grenser Vilkår: provider.options avvises på denne Ultra-tekstruten | Standard— |
Feltcache_control.ttl | Typestring | KravValgfritt | Verdier & grenser Vilkår: 1h avvises på faktiske steder for mellomlagring av ledetekster | Standard— |
Kombinasjoner av inngående materialer
Tekst · UTF8-tekst
messages[].content
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, messages |
Parametermaterial_types | Avtaletext |
Parametermessages | Avtalemeldingstabell med role/content-struktur |
Parameterfile_material | Avtalefaktisk UTF-8-dokument satt inn som bokstavelig tekst; ingen fil-ID utledes |
Parameteroptional_controls | Avtalestream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametercontrol_scope | Avtalemodellspesifikt; brukerens funksjonsverktøy skiller seg fra driftede verktøy |
Parameteroutput_modalities | Avtaletext |
Parameterhosted_operations | Avtalefalse |
Parametermultimodal_input_binding | Avtalenull |
Livssyklus: synchronous_or_streamed
Send eksakt modell-ID sammen med messages.
Kontekstlengde er ikke en outputgrense.
En tekstfil kan levere bokstavelig tekst; bilde-, lyd- og filobjektinput trenger eksakt binding.
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Standardpris Når hurtigmodus er valgt
- Flex-modus
- Standardpris Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Standardpris Når justeringen «default» brukes for maksimal resonneringsinnsats
- Priser for eksplisitt mellomlagring
- Ikke aktivert Når eksplisitt mellomlagring forespørres
Ailoot-satser
Priser etter konfigurasjon
Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.
| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
|---|---|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.004 / 1K tokener Utdata · Utgående tokener $0.024 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0004 / 1K tokener Inndata · Skriving til hurtigbuffer $0.00075 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener Utdata · Utdatatokener for bilder $0.24 / 1K bildetokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.004 / 1K tokener Utdata · Utgående tokener $0.024 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0004 / 1K tokener Inndata · Skriving til hurtigbuffer $0.00075 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Detaljer om referansetariffen
Referanseprisplaner på modellnivå endrer ikke metodevalg, prisoverslag eller kostnader. Aktive kostnader bruker satsene til den valgte Ailoot-metoden.
google/gemini-3-pro-image-preview
Priser etter konfigurasjon
| Konfigurasjon | Faktureringsvilkår | Kostnad |
|---|---|---|
| Konfigurasjongoogle/gemini-3-pro-image-preview · Standardkonfigurasjon | FaktureringsvilkårStandardkonfigurasjon | Kostnad Inndata · Inndata 0,004 USD / 1K tokener Utdata · Utdata 0,24 USD / 1K tokener |
Google: Nano Banana Pro (Gemini 3 Pro Image Preview)
Priser etter konfigurasjon
| Konfigurasjon | Faktureringsvilkår | Kostnad |
|---|---|---|
| KonfigurasjonGoogle: Nano Banana Pro (Gemini 3 Pro Image Preview) · Standardkonfigurasjon | FaktureringsvilkårStandardkonfigurasjon | Kostnad Inndata · Inngående tokener 0,004 USD / 1K tokener Utdata · Utgående tokener 0,024 USD / 1K tokener Inndata · Inndatabilde 0,004 USD / 1K tokener Utdata · Utdatabilde 0,24 USD / 1K tokener Inndata · Lydinndata 0,004 USD / 1K tokener Inndata · Lesing fra lydhurtigbuffer 0,0004 USD / 1K tokener Utdata · Nettsøk 0,028 USD per søk Utdata · Resonneringstokener 0,024 USD / 1K tokener Inndata · Lesing fra hurtigbuffer 0,0004 USD / 1K tokener Inndata · Skriving til hurtigbuffer · 5 minutter 0,00075 USD / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot Ultra · OpenAI Chat
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-pro-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
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-pro-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"))
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-pro-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")
Motta og lagre resultater
Ailoot Ultra · OpenAI Chat
json eller SSE
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Behold hvert svaralternativ med innhold, verktøykall og resonnering. Sett sammen endringer i SSE etter svaralternativets/verktøyets indeks, og behold endelig avslutningsgrunn og bruksdata.
Hvis det opprinnelige svaret må kontrolleres
Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.
Svarfelter
| Felt | Type |
|---|---|
Feltchoices[].index | Typeinteger |
Feltchoices[].message.content | Typestring|null |
Feltchoices[].message.tool_calls | Typetool_call[] |
Feltchoices[].message.reasoning_content | Typestring |
Feltchoices[].message.reasoning_details | Typeobject|array |
Feltchoices[].finish_reason | Typestring|null |
Feltusage | Typeobject |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
Aliaser
Modellaliaser
Ailoot Ultra google/gemini-3-pro-image-preview
Aliaser for metodestier
/v1/images
Tilknyttede anroper-ID-er
Ailoot Ultra · Bilder POST /v1/images/generations google/gemini-3-pro-image-preview
google/gemini-3-pro-image-preview
google/gemini-3-pro-image-previewStart
Nano Banana Pro er Googles Gemini 3 Pro Image Preview-modell for bildegenerering og redigering. Den dokumenterte profilen støtter komposisjon med flere bilder, tekst i bildet, lokale kreative endringer, søkeforankring og utdata på 2K eller 4K.
- Godkjente inndata
- Tekst · Bilder
- Resultater
- Bilder
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · Bilder POST /v1/images/generations
- Inndatatyper
text,image- Utdatatyper
image
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser google/gemini-3-pro-image-preview | Standard— |
Feltprompt | Typestring | KravPåkrevd | Verdier & grenser Minste lengde: 1 | Standard— |
Feltresolution | Typestring | KravValgfritt | Verdier & grenser 1K, 2K, 4K | Standard— |
Feltaspect_ratio | Typestring | KravValgfritt | Verdier & grenser 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 | Standard— |
Feltn | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 1 Maksimum: 1 | Standard— |
Feltinput_references | Typearray | KravValgfritt | Verdier & grenser Minste antall elementer: 0 Maksimalt antall elementer: 14 | Standard— |
Feltprovider | Typeobject | KravValgfritt | Verdier & grenser | Standard— |
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, prompt |
Parametermaterial_types | Avtaletext, image |
Livssyklus: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · faktisk returnert task_id eller oppføring i mediebiblioteket
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Priser
Slik beregnes det endelige beløpet
De viste satsene anslår kostnaden før generering. Det endelige beløpet beregnes ut fra kostnaden som er registrert for den opprinnelige genereringen. Målt varighet på utdataene og anslåtte mengder er ikke den endelige fakturerbare mengden.
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Ikke angitt Når hurtigmodus er valgt
- Flex-modus
- Ikke angitt Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats
Estimerte satser for sammenligning
Priser etter konfigurasjon
Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.
| Konfigurasjon | Prisplan | Forventet mengde | Kostnad |
|---|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Forventet mengde— | Kostnad Inndata · Inngående tokener · Estimat kun for sammenligning — / 1K tokener Utdata · Utgående tokener · Estimat kun for sammenligning — / 1K tokener Inndata · Lesing fra hurtigbuffer · Estimat kun for sammenligning — / 1K tokener Inndata · Skriving til hurtigbuffer · Estimat kun for sammenligning — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time · Estimat kun for sammenligning — / 1K tokener |
| KonfigurasjonAnslått genereringskostnad | Prisplan— | Forventet mengdeestimat for én generering | Kostnad Utdata · Anslått genereringskostnad · Estimat kun for sammenligning $0.98304 estimat før generering Dette anslaget er verken en tilleggsavgift eller en fast sats for den fullførte genereringen. |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot Ultra · Bilder
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-pro-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
Motta og lagre resultater
Ailoot Ultra · Bilder
Last ned hvert returnerte bilde eller lagre Base64-innholdet
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Andre innholdslesinger
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.
Behold alle ferdige resultater
Lagre hvert ferdige bilde; hent hver returnerte URL eller dekod Base64-innholdet.
Bevar hele svaret og svarhodene, alle faktiske utdata, de opprinnelige returnerte identifikatorene og alle bruksfeltene. Hent den opprinnelige operasjonen igjen uten å sende opprettelsesforespørselen på nytt.
Hvis det opprinnelige svaret må kontrolleres
Bevar returnert X-Client-Request-ID for avstemming. Les bare faktisk returnerte task_id/asset_id-verdier eller egne oppføringer i mediebiblioteket; bygg aldri en oppgave-URL fra operasjons-ID-en, og send aldri opprettelsesforespørselen på nytt.
Svarfelter
| Felt | Type |
|---|---|
Feltcreated | Type |
Feltdata[].url | Type |
Feltdata[].b64_json | Type |
Feltusage | Type |
Aliaser
Modellaliaser
Ailoot Ultra google/gemini-3-pro-image-preview
Aliaser for metodestier
/v1/images
Tilknyttede anroper-ID-er
Ailoot Ultra · Anthropic Messages POST /v1/messages google/gemini-3-pro-image-preview
google/gemini-3-pro-image-preview
google/gemini-3-pro-image-previewStart
Nano Banana Pro er Googles Gemini 3 Pro Image Preview-modell for bildegenerering og redigering. Den dokumenterte profilen støtter komposisjon med flere bilder, tekst i bildet, lokale kreative endringer, søkeforankring og utdata på 2K eller 4K.
- Godkjente inndata
- Tekst
- Resultater
- json · sse
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Inndatatyper
text- Utdatatyper
json,sse- Utdataformat
- JSON eller SSE
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser google/gemini-3-pro-image-preview | Standard— |
Feltmessages | Typemessage[] | KravPåkrevd | Verdier & grenser | Standard— |
Feltmessages[].role | Typestring | KravPåkrevd | Verdier & grenser user, assistant | Standard— |
Feltmessages[].content | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltmax_tokens | Typeinteger | KravPåkrevd | Verdier & grenser | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser | Standardfalse |
Kombinasjoner av inngående materialer
Tekst · UTF-8-tekst
messages[].content-streng
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, messages, max_tokens |
Parameteroptional_controls | Avtalestream |
Parametermaterial_types | Avtaletext |
Parametertext_file_material | AvtaleLes det faktiske UTF-8-dokumentet og legg teksten i den angitte input- eller meldingsinnholdsstrengen. |
Livssyklus: synchronous_or_streamed
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Standardpris Når hurtigmodus er valgt
- Flex-modus
- Standardpris Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Standardpris Når justeringen «default» brukes for maksimal resonneringsinnsats
- Priser for eksplisitt mellomlagring
- Ikke aktivert Når eksplisitt mellomlagring forespørres
Ailoot-satser
Priser etter konfigurasjon
Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.
| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
|---|---|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.004 / 1K tokener Utdata · Utgående tokener $0.024 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0004 / 1K tokener Inndata · Skriving til hurtigbuffer $0.00075 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener Utdata · Utdatatokener for bilder $0.24 / 1K bildetokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.004 / 1K tokener Utdata · Utgående tokener $0.024 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0004 / 1K tokener Inndata · Skriving til hurtigbuffer $0.00075 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot Ultra · Anthropic Messages
{
"model": "google/gemini-3-pro-image-preview",
"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-3-pro-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
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-pro-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))
Motta og lagre resultater
Ailoot Ultra · Anthropic Messages
JSON eller SSE
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Behold alle innholdsblokker, resonneringssignaturer og faktiske ID-er for verktøybruk. Sett sammen alle SSE-blokkendringer; den første tekstblokken er ikke hele resultatet.
Hvis det opprinnelige svaret må kontrolleres
Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltmodel | Typestring |
Feltcontent[] | Typetext|thinking|tool_use|other content block |
Feltstop_reason | Typestring|null |
Feltusage | Typeobject |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
Aliaser
Modellaliaser
Ailoot Ultra google/gemini-3-pro-image-preview
Aliaser for metodestier
/v1/images
Tilknyttede anroper-ID-er
FAQ · Google: Nano Banana Pro (Gemini 3 Pro Image Preview)
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/chat/completions·google/gemini-3-pro-image-preview:text→textPOST /v1/images/generations·google/gemini-3-pro-image-preview:text,image→imagePOST /v1/messages·google/gemini-3-pro-image-preview:text→json,sse- Hvilke felt bruker forespørselen?
POST /v1/chat/completions·google/gemini-3-pro-image-preview:model,messages,stream,modalities,providerPOST /v1/images/generations·google/gemini-3-pro-image-preview:model,prompt,resolution,aspect_ratio,n,input_references,providerPOST /v1/messages·google/gemini-3-pro-image-preview:model,messages,max_tokens,stream- Hvilke grenser gjelder?
POST /v1/chat/completions·google/gemini-3-pro-image-preview:messages.min_items:1POST /v1/images/generations·google/gemini-3-pro-image-preview:n.minimum:1;n.maximum:1