איך להשתמש ב-Nano Banana 2 API: מפתח, בקשה ותוצאה
מדריך Nano Banana 2 API צעד אחר צעד: יוצרים מפתח, שולחים בקשת generateContent, מתשאלים את המשימה, מוסיפים תמונות ייחוס ומפעילים סוכן קוד.
קריאה כ-Markdownכדי להשתמש ב-Nano Banana 2 API (ננו בננה 2), צור מפתח API, שלח לנקודת קצה אחת את גוף הבקשה generateContent של Google עם שדה model, ותשאל את המשימה שמוחזרת עד שכתובת התמונה מוכנה. אותם צעדים עובדים גם ל-Nano Banana Pro ול-Nano Banana 2 Lite; רק הערך של model משתנה.
המדריך הזה עובר על כל שלב עם קוד עובד, ואז מראה איך לערוך עם תמונות ייחוס ואיך להעביר את העבודה לסוכן קוד.
מה צריך לפני הבקשה הראשונה?
- מפתח API. צור אחד בעמוד מפתחות API ושמור אותו בשרת שלך. לעולם אל תכניס אותו לקוד שרץ בדפדפן.
- קרדיטים. הוסף יתרה בעמוד החיוב. הקרדיטים לא פגים לעולם, ובקשות שנכשלו אינן מחויבות.
- מזהה מודל.
gemini-3.1-flash-imageמחייב מחיר קבוע לתמונה;gemini-3.1-flash-image-officialמחייב לפי טוקנים. היעזר במדריך המחירים כדי לבחור.
export SEEDROUTER_API_KEY="your-key"איך שולחים בקשה ל-Nano Banana 2?
שלח את הבקשה ב-POST ל-/v1/images/generations. הגוף הוא המבנה generateContent של Google בתוספת model:
curl https://api.seedrouter.ai/v1/images/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image",
"contents": [{"parts": [{"text": "A ceramic teapot on a linen tablecloth, soft window light"}]}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"}
}
}'התגובה היא משימה, לא תמונה:
{
"id": "task_...",
"model": "gemini-3.1-flash-image",
"status": "processing",
"created_at": 1790310979
}אם אתה כבר קורא ל-API של Google, הגוף שאתה שולח הוא אותו גוף שהיית שולח ל-generateContent. קריאה ישירה ל-/v1beta/models/...:generateContent ב-SeedRouter אינה נתמכת; השתמש בנקודת הקצה הזאת.
איך מקבלים את התמונה?
תשאל את המשימה כל כמה שניות עד ש-status יהיה completed או failed. ב-Python:
import os
import time
import requests
API = "https://api.seedrouter.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}
response = requests.post(
f"{API}/images/generations",
headers=headers,
json={
"model": "gemini-3.1-flash-image",
"contents": [{"parts": [{"text": "A ceramic teapot on a linen tablecloth, soft window light"}]}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"},
},
},
timeout=60,
)
response.raise_for_status()
task_id = response.json()["id"]
deadline = time.monotonic() + 600
while time.monotonic() < deadline:
result = requests.get(f"{API}/tasks/{task_id}", headers=headers, timeout=30)
result.raise_for_status()
task = result.json()
if task["status"] == "completed":
for image in task["output"]["data"]:
print(image["url"])
break
if task["status"] == "failed":
raise RuntimeError(task["error"]["message"])
time.sleep(3)
else:
raise TimeoutError(f"Still waiting. Resume polling task {task_id}.")במשימה שהסתיימה, כתובת התמונה נמצאת ב-output.data[0].url, לצד נתוני השימוש בטוקנים. עם "responseModalities": ["TEXT", "IMAGE"], כל טקסט שהמודל כותב חוזר ב-output.text. הורד את התמונה לאחסון שלך אם אתה צריך אותה לטווח ארוך.
פקיעת זמן בזמן התשאול אינה אומרת שהתמונה נכשלה. שמור את מזהה המשימה ובדוק אותה שוב; שליחת בקשה חדשה פירושה תשלום על תמונה שנייה.
איך עורכים תמונה או משתמשים בייחוסים?
הוסף חלקי fileData לצד הטקסט. כל אחד הוא כתובת URL ציבורית וסוג ה-MIME שלה:
curl https://api.seedrouter.ai/v1/images/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image",
"contents": [{
"role": "user",
"parts": [
{"text": "Turn this photo into a watercolor painting. Keep the composition."},
{"fileData": {"mimeType": "image/jpeg", "fileUri": "https://example.com/photo.jpg"}}
]
}]
}'Nano Banana 2 מקבל עד 14 ייחוסים לבקשה: תמונות, סרטונים או קובצי PDF, כל אחד מתחת ל-50 MB. ייחוסים חייבים להיות כתובות URL; inlineData ב-Base64 אינו מתקבל. אם אי אפשר לטעון כתובת, המשימה נכשלת ואינה מחויבת. לעריכת המשך, שלח את התורות הקודמות כרשומות user ו-model וסיים בתור user חדש.
אילו הגדרות הכי חשובות?
| הגדרה | מה היא עושה |
|---|---|
imageConfig.imageSize | 512, 1K, 2K או 4K; 1K כברירת מחדל |
imageConfig.aspectRatio | 14 יחסים מ-1:8 עד 8:1; אם לא צוין, תואם לייחוס הראשון |
responseModalities | ["IMAGE"] לתמונה בלבד, ["TEXT", "IMAGE"] כדי לקבל גם טקסט |
systemInstruction | כללים קבועים, כמו סגנון בית |
seed | השתמש בו שוב כדי להתקרב לתוצאה קודמת |
mediaResolution | כמה טוקנים כל ייחוס צורך; נמוך יותר זול יותר ב-Official |
מסמך ה-API של Nano Banana 2 מפרט כל שדה וכל מגבלה. שדות לא מוכרים נדחים לפני שמשהו מחויב, ועיגון בחיפוש Google (tools) עדיין לא זמין.
איך נותנים לסוכן קוד להשתמש ב-Nano Banana 2 API?
סוכן קוד כמו Claude Code, Codex או Cursor יכול לקרוא ל-API בפקודת shell או בסקריפט קצר. SeedRouter לא מספקת שרת MCP או skill ארוז; הפרומפט הזה הוא כל האינטגרציה. ייצא קודם את המפתח, ואז הדבק:
Use the SeedRouter API to generate a Nano Banana 2 image for me.
Security: read SEEDROUTER_API_KEY from my local environment. Never ask me to paste it and never print it.
Goal: [subject, setting, style, what the image is for]
Size: [512 | 1K | 2K | 4K] Aspect ratio: [e.g. 1:1, 16:9, 9:16]
References: [public image URLs, or none]
Send POST https://api.seedrouter.ai/v1/images/generations with
{"model": "gemini-3.1-flash-image",
"contents": [{"parts": [{"text": "..."}, {"fileData": {"mimeType": "image/jpeg", "fileUri": "https://..."}}]}],
"generationConfig": {"responseModalities": ["IMAGE"],
"imageConfig": {"aspectRatio": "...", "imageSize": "..."}}}
Accepted top-level fields: model, contents, systemInstruction, safetySettings,
generationConfig. References must be fileData URLs (up to 14), never base64.
Do not add tools or any other field.
Before sending, show me the request body and wait for my approval: each
request is charged. Then poll GET https://api.seedrouter.ai/v1/tasks/{id}
every 3 seconds until status is completed or failed. If polling times out,
keep checking the same task; never resubmit. Save output.data[0].url into
./images/ and tell me the file path.שלב האישור חשוב: הסוכן מוציא את היתרה שלך, ולכן הוא לעולם לא אמור לשלוח בקשה על דעת עצמו.
שאלות נפוצות
איך משיגים מפתח API ל-Nano Banana 2?
התחבר, פתח את עמוד מפתחות API וצור מפתח. אותו מפתח עובד עם Nano Banana 2, Nano Banana Pro, Nano Banana 2 Lite ושאר המודלים ב-SeedRouter.
האם Nano Banana 2 API תומך בבקשות באצווה?
שלח בקשה אחת לכל תמונה ותשאל את המשימות במקביל. כל בקשה מחזירה תמונה אחת, וכל משימה מחויבת בנפרד.
אילו שגיאות צריך לטפל בהן?
400 פירושו שהגוף הפר כלל, למשל שדה לא מוכר או גודל שאינו נתמך, ושום דבר לא מחויב. משימה שמסתיימת ב-failed מכילה הודעת שגיאה וגם היא אינה מחויבת. המדריך לשגיאות מפרט כל קוד ומתי לנסות שוב.
שלח את הבקשה הראשונה שלך
צור מפתח, הוסף יתרה קטנה והרץ את דוגמת ה-Python שלמעלה, או נסה את אותה בקשה בלי קוד ב-Playground של Nano Banana 2. לפרומפטים מורכבים, שנה את המודל ל-gemini-3-pro-image בשביל Nano Banana Pro.



