מודלים

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

Markdown · JSON

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

Nano Banana 2 (Gemini 3.1 Flash Image Preview) יוצר ועורך תמונות מטקסט ומתמונות ייחוס. החוזקות המתועדות שלו כוללות עקביות של הנושא, טקסט בתוך התמונה והתאמה לשפות, שינויים בשיחה ושליטה יצירתית בקומפוזיציה, ביחס הממדים וברזולוציה.

על המודל

התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.

Nano Banana 2 הוא מודל Gemini 3.1 Flash Image של Google ליצירת תמונות ולעריכה בשיחה. רשומה זו משמרת את זהות Preview המדויקת. תיאור כתוב יכול להגדיר יצירה חזותית חדשה, ותמונת קלט יכולה לבסס את הנושא, המראה או הקומפוזיציה שיש לשנות. התוצאה יכולה להכיל תמונה וטקסט מצורף. חומר ההשקה של Google מדגיש ידע עולם, הצגת טקסט ועקביות של הנושא, לצד האפשרות ללטש סצנה באמצעות תורים קשורים.

ביצירה חזותית מעוגנת, המודל המתועד יכול להשתמש במידע מחיפוש ברשת ובתמונות כדי לתמוך ביצירה. הדבר תומך במשימות כגון איור בהשראת מקום או תרשים המבוסס על מידע שסופק. יש להגדיר את עובדות המקור שחייבות להיות מיוצגות ולהבחין ביניהן לבין בחירות אמנותיות. יצירה הנעזרת בחיפוש אינה הופכת כל פרט בתמונה הסופית לטענה מאומתת. אם מוצר, אתר מוכר או תרשים חייבים להיות מדויקים, יש לספק מקור ייחוס מוסמך ולבדוק את הפלט מולו.

ההשקה מתארת שיפור בהצגת טקסט בתוך תמונה ובהתאמה לשפות. בכרזה, באינפוגרפיקה או בהדמיה שיווקית, יש לתת את הניסוח המדויק, השפה והתפקיד של כל רכיב טקסט. תחילה יש לסגור את המלל ואז לבקש את היצירה החזותית המכילה אותו, בהתאם להמלצת מדריך התמונות. יש להסביר את סדר הקריאה ואת ההדגשה היחסית, כדי שכותרת, כיתוב ותווית בתרשים לא יתבלבלו. יש לבדוק איות, פיסוק והקשר בין התווית לרכיב המאויר לפני השימוש בתמונה בפרסום.

הבקרות היצירתיות כוללות יחס ממדים ורזולוציה. ההשקה מוסיפה פלט של 512 פיקסלים לצד אפשרויות 1K, 2K ו־4K, ומוסיפה יחסי ממדים 4:1, 1:4, 8:1 ו־1:8. מדריך המפתחים מציין חשיבה minimal כברירת המחדל וחשיבה high כאפשרות לקומפוזיציות מורכבות יותר. יש לבחור את השימוש הרצוי לפני הקומפוזיציה: סטורי אנכי, באנר רחב ותרשים קומפקטי דורשים שטח שונה לנושא ולמלל. ההגדרות האלה מתארות את תהליך היצירה של היצרן לקו הזה, ולא שינוי גודל אוטומטי של נכס קיים ומוגמר.

לעקביות של הנושא, יש לתייג את התפקיד של כל תמונת ייחוס: מראה מוצר, זהות דמות, רקע או סגנון חזותי. יש לציין את הפרטים שיש לשמר ואז את הרכיבים שיש לשנות. משימה מקורית יכולה להציב תצלום מוצר שסופק בסצנה חדשה, תוך שמירה על צורתו, החומר שלו והמיתוג הגלוי. ברצף מאויר, יש לשמור על אותן תמונות ייחוס ולהגדיר אילו פרטים ייחודיים לסצנה משתנים. מספר רב יותר של תמונות ייחוס אינו מחליף הוראה ברורה לגבי התרומה של כל תמונה.

עריכה בשיחה שימושית לתיקון מסוים. יש לבקש התאמה של אובייקט אחד, של רקע או של התאורה תוך שמירה על הקומפוזיציה שאושרה. מדריך היצרן מתאר מיסוך סמנטי, שבו האזור הנערך מזוהה במילים. בעבודה רב־תורית, יש לשמר את השיחה ואת מטא־נתוני הקשר החשיבה הנדרשים בממשק שנבחר; מדריך Gemini 3 מסביר שחתימות חשיבה מסייעות להעביר את ההקשר הזה. תיאור של אזור ללא שינוי הוא הוראה שיש לבדוק מול המקור, ולא הבטחה שכל פיקסל יישאר זהה.

טבלת המפתחים של Gemini 3 מציינת במפורש את gemini-3.1-flash-image-preview עם מכסת קלט של 128K ופלט של 32K. יש לשמור על שם מודל Preview המדויק בתיעוד היצירה. יש לשמור את הגדרות תמונות הייחוס, הפלט והרזולוציה הזמינות עם תמונות המקור והבקשה, כדי שאפשר יהיה לשחזר תיקון באופן עקבי. בתיקון, יש לשמור על אותן תמונות מקור ולהגדיר את השינוי החזותי המדויק, תוך שימור התפקיד שאושר לכל קלט.

מדריך התמונות מזהיר שמספר התמונות המבוקש עשוי שלא להתקיים תמיד ומציין סימון SynthID בתמונות שנוצרות. יש לבדוק את כל התמונות שהוחזרו ואת הטקסט המצורף, ולא להניח שהתוצאה היא תמונה קבועה אחת. יש לבדוק את זהות הנושא, מספר האובייקטים, המלל בתוך התמונה, הקומפוזיציה והנאמנות לתמונות הייחוס בגודל התצוגה המיועד. בסצנה מורכבת, יש להגדיר את הרכיבים בסדר הגיוני ולתאר את המראה הרצוי באופן חיובי. התוצאה השימושית היא נכס חזותי שנבדק, עם שמירת תמונות המקור וזהות המודל המדויקת לעריכה הבאה.

משימה מעשית

משימה מעשית

דוגמה טכנית באנגלית

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.

התוצאה הצפויה

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

בדיקת התוצאה

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

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

התחלה

Nano Banana 2 (Gemini 3.1 Flash Image Preview) יוצר ועורך תמונות מטקסט ומתמונות ייחוס. החוזקות המתועדות שלו כוללות עקביות של הנושא, טקסט בתוך התמונה והתאמה לשפות, שינויים בשיחה ושליטה יצירתית בקומפוזיציה, ביחס הממדים וברזולוציה.

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
סוגי קלט
text
סוגי פלט
text
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
google/gemini-3.1-flash-image-preview
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלות
מספר פריטים מזערי: ⁦1⁩
ברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
דוגמאות: system, user, assistant, tool, function
תנאים: התפקידים האלה מיוצגים במפורש בטיפוסי התאימות בקוד המקור; מערך התפקידים המדויק נשאר ייחודי לכל מודל.
תלוי במודל
ברירת מחדל—
שדהmessages[].contentסוגstring|content_part[]|nullדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_callsסוגtool_call[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: role=tool; השתמשו במזהה שהוחזר בפועל
ברירת מחדל—
שדהmessages[].nameסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].reasoning_contentסוגstringדרישהרשותערכים ומגבלות
חל כאשר: החזירו בהמשך את ההנמקה שהתקבלה בפועל כאשר המודל הזה משתמש בה
ברירת מחדל—
שדהmessages[].reasoning_detailsסוגobject|arrayדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmax_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהmax_completion_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהstream_options.include_usageסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstopסוגstring|string[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגfunction_tool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].typeסוגstringדרישהרשותערכים ומגבלות
function
תלוי במודל
ברירת מחדל—
שדהtools[].function.nameסוגstringדרישהחובהערכים ומגבלות
חל כאשר: סופק כלי פונקציה
ברירת מחדל—
שדהtools[].function.descriptionסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהtools[].function.parametersסוגJSON_schemaדרישהרשותערכים ומגבלותברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהresponse_formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning_effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoningסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלות
שדה תאימות
ברירת מחדל—
שדהfunctionsסוגfunction[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהfunction_callסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmodalitiesסוגstring[]דרישהרשותערכים ומגבלות
text
ברירת מחדל—
שדהproviderסוגobjectדרישהרשותערכים ומגבלות
תנאים: provider.options נדחה במסלול הטקסט הזה של Ultra
ברירת מחדל—
שדהcache_control.ttlסוגstringדרישהרשותערכים ומגבלות
תנאים: 1h נדחה במיקומים המשמשים בפועל למטמון הנחיות
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

messages[].content

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטmodel, messages
פרמטרmaterial_typesמפרטtext
פרמטרmessagesמפרטמערך הודעות במבנה role/content
פרמטרfile_materialמפרטמסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ
פרמטרoptional_controlsמפרטstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
פרמטרcontrol_scopeמפרטייחודי למודל; כלי פונקציות של המשתמש שונים מכלים מתארחים
פרמטרoutput_modalitiesמפרטtext
פרמטרhosted_operationsמפרטfalse
פרמטרmultimodal_input_bindingמפרטnull

מחזור חיים: synchronous_or_streamed

שלחו את מזהה המודל המדויק עם messages.

אורך ההקשר אינו תקרת פלט.

קובץ טקסט יכול לספק טקסט מילולי; קלטי תמונה/אודיו/אובייקט קובץ דורשים קישור מדויק.

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · minimal
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־minimal
תמחור מטמון מפורש
לא מופעל כאשר מתבקש מטמון מפורש

תעריפי Ailoot

מחירים לפי תצורה

התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.001 / 1K טוקנים
פלט · טוקני פלט $0.006 / 1K טוקנים
קלט · קריאה מהמטמון — / 1K טוקנים
קלט · כתיבה למטמון — / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
פלט · טוקני תמונה בפלט $0.12 / 1K טוקני תמונה
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.001 / 1K טוקנים
פלט · טוקני פלט $0.006 / 1K טוקנים
קלט · קריאה מהמטמון — / 1K טוקנים
קלט · כתיבה למטמון — / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

פרטי תעריף הייחוס

טבלאות הייחוס ברמת המודל אינן משנות את בחירת השיטה, הצעות המחיר או החיובים. החיובים בפועל משתמשים בתעריפי שיטת Ailoot שנבחרה.

google/gemini-3.1-flash-image-preview

מחירים לפי תצורה

תצורהתנאי חיובחיוב
תצורהgoogle/gemini-3.1-flash-image-preview · תצורת ברירת המחדלתנאי חיובתצורת ברירת מחדלחיוב
קלט · קלט ⁦‏0.001 ‏$⁩ / 1K טוקנים
פלט · פלט ⁦‏0.12 ‏$⁩ / 1K טוקנים
google/gemini-3.1-flash-image-preview

מחירים לפי תצורה

תצורהתנאי חיובחיוב
תצורהgoogle/gemini-3.1-flash-image-preview · תצורת ברירת מחדלתנאי חיובתצורת ברירת מחדלחיוב
קלט · קלט ⁦‏0.001 ‏$⁩ / 1K טוקנים
פלט · פלט ⁦‏0.12 ‏$⁩ / 1K טוקנים
google/gemini-3.1-flash-image-preview

מחירים לפי תצורה

תצורהתנאי חיובחיוב
תצורהgoogle/gemini-3.1-flash-image-preview · תצורת ברירת המחדלתנאי חיובתצורת ברירת מחדלחיוב
קלט · קלט ⁦‏0.00 ‏$⁩ לקריאה
פלט · פלט ⁦‏0.16 ‏$⁩ לקריאה
google/gemini-3.1-flash-image-preview

מחירים לפי תצורה

תצורהתנאי חיובחיוב
תצורהgoogle/gemini-3.1-flash-image-preview · תצורת ברירת המחדלתנאי חיובתצורת ברירת מחדלחיוב
קלט · קלט ⁦‏0.00 ‏$⁩ לקריאה
פלט · פלט ⁦‏0.32 ‏$⁩ לקריאה
google/gemini-3.1-flash-image-preview

מחירים לפי תצורה

תצורהתנאי חיובחיוב
תצורהgoogle/gemini-3.1-flash-image-preview · תצורת ברירת המחדלתנאי חיובתצורת ברירת מחדלחיוב
קלט · קלט ⁦‏0.00 ‏$⁩ לקריאה
פלט · פלט ⁦‏0.00 ‏$⁩ לקריאה
Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)

מחירים לפי תצורה

תצורהתנאי חיובחיוב
תצורהGoogle: Nano Banana 2 (Gemini 3.1 Flash Image Preview) · תצורת ברירת המחדלתנאי חיובתצורת ברירת מחדלחיוב
קלט · טוקני קלט ⁦‏0.001 ‏$⁩ / 1K טוקנים
פלט · טוקני פלט ⁦‏0.006 ‏$⁩ / 1K טוקנים
פלט · תמונת פלט ⁦‏0.12 ‏$⁩ / 1K טוקנים
פלט · חיפוש ברשת ⁦‏0.028 ‏$⁩ לכל חיפוש

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →

דוגמאות לבקשות

Ailoot Ultra · OpenAI Chat

curlPython SDKהזרמה ב-Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "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
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"))
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")

קבלה ושמירה של תוצאות

Ailoot Ultra · OpenAI Chat

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהchoices[].indexסוגinteger
שדהchoices[].message.contentסוגstring|null
שדהchoices[].message.tool_callsסוגtool_call[]
שדהchoices[].message.reasoning_contentסוגstring
שדהchoices[].message.reasoning_detailsסוגobject|array
שדהchoices[].finish_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot Ultra google/gemini-3.1-flash-image-preview

כינויים לנתיבי שיטות

/v1/images

מזהי מודלים קשורים IDs

google/gemini-3.1-flash-image-preview

Ailoot Ultra · תמונות POST /v1/images/generations google/gemini-3.1-flash-image-preview

google/gemini-3.1-flash-image-preview

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

התחלה

Nano Banana 2 (Gemini 3.1 Flash Image Preview) יוצר ועורך תמונות מטקסט ומתמונות ייחוס. החוזקות המתועדות שלו כוללות עקביות של הנושא, טקסט בתוך התמונה והתאמה לשפות, שינויים בשיחה ושליטה יצירתית בקומפוזיציה, ביחס הממדים וברזולוציה.

סוגי קלט נתמכים
טקסט · תמונות
תוצאות
תמונות

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · תמונות POST /v1/images/generations
סוגי קלט
text, image
סוגי פלט
image
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
google/gemini-3.1-flash-image-preview
ברירת מחדל—
שדהpromptסוגstringדרישהחובהערכים ומגבלות
אורך מזערי: ⁦1⁩
ברירת מחדל—
שדהresolutionסוגstringדרישהרשותערכים ומגבלות
512, 1K, 2K, 4K
ברירת מחדל—
שדהaspect_ratioסוגstringדרישהרשותערכים ומגבלות
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
ברירת מחדל—
שדהnסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
מקסימום: ⁦1⁩
ברירת מחדל—
שדהinput_referencesסוגarrayדרישהרשותערכים ומגבלות
מספר פריטים מזערי: ⁦0⁩
מספר פריטים מרבי: ⁦14⁩
ברירת מחדל—
שדהproviderסוגobjectדרישהרשותערכים ומגבלותברירת מחדל—
פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטmodel, prompt
פרמטרmaterial_typesמפרטtext, image

מחזור חיים: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · ערך task_id שהוחזר בפועל או רשומה בספריית המדיה

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

תעריפים

אופן חישוב החיוב הסופי

התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
לא צוין כאשר נבחר מצב מהיר
מצב Flex
לא צוין כאשר נבחר מצב flex
מאמץ חשיבה מרבי
לא צוין כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)

תעריפים משוערים להשוואה

מחירים לפי תצורה

התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.

תצורהטבלת תעריפיםכמות חזויהחיוב
תצורהתעריפי בסיס לטוקניםטבלת תעריפיםתעריף בסיסכמות חזויה—חיוב
קלט · טוקני קלט · אומדן להשוואה בלבד — / 1K טוקנים
פלט · טוקני פלט · אומדן להשוואה בלבד — / 1K טוקנים
קלט · קריאה מהמטמון · אומדן להשוואה בלבד — / 1K טוקנים
קלט · כתיבה למטמון · אומדן להשוואה בלבד — / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה · אומדן להשוואה בלבד — / 1K טוקנים
תצורהעלות יצירה משוערתטבלת תעריפים—כמות חזויהאומדן ליצירה אחתחיוב
פלט · עלות יצירה משוערת · אומדן להשוואה בלבד $0.49152 אומדן לפני היצירה

אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →

דוגמאות לבקשות

Ailoot Ultra · תמונות

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-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

קבלה ושמירה של תוצאות

Ailoot Ultra · תמונות

הורידו כל תמונה שהוחזרה או שמרו את תוכן ה-Base64 שלה

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
קריאות תוכן נוספות
קריאת נכסים קיימים שבבעלותכם
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.
שמירת כל התוצאות שהושלמו

שמרו כל תמונה שהושלמה; אחזרו אותה מכל URL שהוחזר או פענחו את תוכן ה-Base64 שלה.

שמרו את התשובה המלאה ואת הכותרות, כל פלט שהתקבל בפועל, את המזהים המקוריים שהוחזרו ואת כל שדות השימוש. שחזרו את הפעולה המקורית בלי לשלוח שוב בקשת יצירה.

כשצריך לבדוק את התגובה המקורית

שמרו את X-Client-Request-ID שהוחזר לצורך התאמת רישומים. קראו רק ערכי task_id/asset_id שהוחזרו בפועל או את ספריית המדיה שבבעלותכם; לעולם אל תבנו URL של משימה ממזהה הפעולה ואל תשלחו שוב בקשת יצירה.

שדות התגובה
שדהסוג
שדהcreatedסוג
שדהdata[].urlסוג
שדהdata[].b64_jsonסוג
שדהusageסוג

כינויים

כינויים למודל

Ailoot Ultra google/gemini-3.1-flash-image-preview

כינויים לנתיבי שיטות

/v1/images

מזהי מודלים קשורים IDs

google/gemini-3.1-flash-image-preview

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

google/gemini-3.1-flash-image-preview

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

התחלה

Nano Banana 2 (Gemini 3.1 Flash Image Preview) יוצר ועורך תמונות מטקסט ומתמונות ייחוס. החוזקות המתועדות שלו כוללות עקביות של הנושא, טקסט בתוך התמונה והתאמה לשפות, שינויים בשיחה ושליטה יצירתית בקומפוזיציה, ביחס הממדים וברזולוציה.

סוגי קלט נתמכים
טקסט
תוצאות
json · sse

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · Anthropic Messages POST /v1/messages
סוגי קלט
text
סוגי פלט
json, sse
פורמט פלט
JSON או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
google/gemini-3.1-flash-image-preview
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
user, assistant
ברירת מחדל—
שדהmessages[].contentסוגstringדרישהחובהערכים ומגבלותברירת מחדל—
שדהmax_tokensסוגintegerדרישהחובהערכים ומגבלותברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שילובים של חומרי קלט

טקסט · טקסט UTF-8

מחרוזת messages[].content

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטmodel, messages, max_tokens
פרמטרoptional_controlsמפרטstream
פרמטרmaterial_typesמפרטtext
פרמטרtext_file_materialמפרטקראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה.

מחזור חיים: synchronous_or_streamed

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · minimal
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־minimal
תמחור מטמון מפורש
לא מופעל כאשר מתבקש מטמון מפורש

תעריפי Ailoot

מחירים לפי תצורה

התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.001 / 1K טוקנים
פלט · טוקני פלט $0.006 / 1K טוקנים
קלט · קריאה מהמטמון — / 1K טוקנים
קלט · כתיבה למטמון — / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
פלט · טוקני תמונה בפלט $0.12 / 1K טוקני תמונה
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.001 / 1K טוקנים
פלט · טוקני פלט $0.006 / 1K טוקנים
קלט · קריאה מהמטמון — / 1K טוקנים
קלט · כתיבה למטמון — / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →

דוגמאות לבקשות

Ailoot Ultra · Anthropic Messages

גוף JSON מינימלי ושלםcurl · השתמשו במסמך UTF-8 שלכםPython · שמרו את התוצאה המלאה
{
  "model": "google/gemini-3.1-flash-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.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
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))

קבלה ושמירה של תוצאות

Ailoot Ultra · Anthropic Messages

JSON או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

שמרו את כל בלוקי התוכן, חתימות החשיבה ומזהי השימוש בכלים בפועל. הרכיבו את כל עדכוני הבלוקים של SSE; בלוק הטקסט הראשון אינו הפלט המלא.

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהmodelסוגstring
שדהcontent[]סוגtext|thinking|tool_use|other content block
שדהstop_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot Ultra google/gemini-3.1-flash-image-preview

כינויים לנתיבי שיטות

/v1/images

מזהי מודלים קשורים IDs

google/gemini-3.1-flash-image-preview

FAQ · Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)
אילו קלטים ותוצאות זמינים?

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

באילו שדות הבקשה משתמשת?

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

אילו מגבלות חלות?

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

פרטים נוספים

חברו Ailoot ל- Claude Code, OpenCode, Hermes או ליישום שלכם.

החברה ופורטפוליו הפרויקטים שלה

החברה ופורטפוליו הפרויקטים שלה: מיליוני לקוחות; מכירות בהיקף של מיליארדים מדי חודש.

קנו אסימונים בהנחה.

הנחת מנוי לעבודה קבועה. קודי הנחה עד 50% על רכישת אסימונים.

מנוי
בחרו מסלול עם הנחה לבקשות הקבועות שלכם.
קוד הנחה עד 50%
הזינו קוד ברכישה. המחיר יחושב מחדש לפי המבצע הפעיל.
הוצאות בהיסטוריה
המודל, האסימונים והסכום נשמרים לכל בקשה.

בחירת מנוי · מחירי מודלים

חברו API למוצר שאתם מוכרים.

SaaS, יישומים ובוטים לפי ההצעה והסכם הרישוי של Ailoot. למכירה מחדש בקשו רישיון משווק.

יישום מסחרי
שלבו יצירת טקסט, תמונות, וידאו ושמע בתכונות בתשלום של השירות שלכם.
רישיון למכירה מחדש
שלחו תיאור פרויקט ואופן מתן גישה. בקשו תנאי שימוש ומכירה מחדש בכתב.
מסמכים באתר
ההצעה, הסכם הרישוי ומדיניות עיבוד הנתונים זמינים לפני החיבור.

בקשת רישיון למכירה מחדש · ההצעה והסכם הרישוי