Claude Opus 5.5 כבר זמין ב-SeedRouter
LogoSeedRouter

חיפוש מודלים לפי שם, למשל 'nano banana'

חיפוש מודלים לפי שם, למשל 'nano banana'

Image

Nano Banana 2.1 (Gemini Nano Banana 2.1)

View Markdown

יצירת תמונות ועריכתן עם Nano Banana 2.1 דרך נקודת קצה אסינכרונית אחת, עם גוף generateContent של Google: מ-1K עד 4K, רמות חשיבה, 14 תמונות ייחוס.

Nano Banana 2.1 הוא מודל התמונות gemini-nano-banana-2.1 של Google, העדכון של Nano Banana 2. שלח את גוף הבקשה generateContent של Google עם שדה model, שמור את מזהה המשימה שהוחזר, ותשאל את המשימה כדי לקבל את התמונה המוכנה. תמונות ייחוס נכנסות ל-contents ככתובות fileData.

מזהי מודל

מזהה מודלאופן החיוב
gemini-nano-banana-2.1מחיר קבוע לכל תמונה שנמסרה, זהה בכל גודל

המחיר הנוכחי מופיע בדף המודל.

דוגמה מהירה

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-nano-banana-2.1",
    "contents": [{"parts": [{"text": "A ceramic teapot on a linen tablecloth, soft window light"}]}],
    "generationConfig": {
      "responseModalities": ["IMAGE"],
      "imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"}
    }
  }'

נקודת קצה

POST https://api.seedrouter.ai/v1/images/generations
כותרתערך
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

הגוף הוא בקשת generateContent של Google עם תוספת אחת: model, כי בנתיב של נקודת הקצה הזאת אין שם מודל. התגובה מכילה מזהה משימה, לא את התמונה המוכנה. שמור את מפתחות ה-API בקוד צד השרת. קריאה ישירה ל-/v1beta/models/...:generateContent אינה נתמכת; השתמש בנקודת הקצה הזאת.

פרמטרים

שםסוגחובהברירת מחדלהערות
modelstringכן—gemini-nano-banana-2.1.
contentsContent[]כן—1–32 תורות. לכל אחת parts ו-role אופציונלי (user או model); התור האחרון הוא user.
contents[].parts[].textstring——חלק טקסט. נדרש לפחות חלק טקסט אחד.
contents[].parts[].fileDataobjectלא—{"mimeType": "...", "fileUri": "https://..."}; ייחוס של תמונה, וידאו או PDF. עד 14 בסך הכול.
systemInstructionobjectלא—{"parts": [{"text": "..."}]}.
safetySettingsobject[]לא—זוגות {"category", "threshold"}; ראה למטה.
toolsobject[]לא—[{"googleSearch": {}}] לחיפוש באינטרנט, או {"googleSearch": {"searchTypes": {"webSearch": {}, "imageSearch": {}}}} עם אחד הסוגים או שניהם. מבסס את התמונה על תוצאות חיפוש עדכניות; המחיר לתמונה לא משתנה.
generationConfig.responseModalitiesenum[]לאטקסט ותמונה["IMAGE"] לתמונות בלבד, או ["TEXT", "IMAGE"].
generationConfig.imageConfig.aspectRatioenumלאהיחס של תמונת הקלט, אחרת 1:11:1, 1:4, 4:1, 1:8, 8:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9.
generationConfig.imageConfig.imageSizeenumלא1K1K, 2K, 4K. האות K גדולה. 512 אינו זמין במודל הזה.
generationConfig.candidateCountintegerלא1רק 1. בקשה אחת מחזירה תמונה אחת.
generationConfig.temperaturenumberלאברירת המחדל של המודל0–2.
generationConfig.topPnumberלאברירת המחדל של המודל0–1.
generationConfig.topKintegerלאברירת המחדל של המודל1 ומעלה.
generationConfig.seedintegerלא—מספר שלם של 32 ביט.
generationConfig.maxOutputTokensintegerלאברירת המחדל של המודל1–32,768.
generationConfig.stopSequencesstring[]לא—עד 5.
generationConfig.mediaResolutionenumלאברירת המחדל של המודלMEDIA_RESOLUTION_LOW, MEDIA_RESOLUTION_MEDIUM, MEDIA_RESOLUTION_HIGH. קובע כמה טוקנים צורכת מדיית הקלט.
generationConfig.thinkingConfig.thinkingLevelenumלאMEDIUMMINIMAL, MEDIUM, HIGH. כמה המודל חושב לפני שהוא מצייר; רמות גבוהות יותר לוקחות יותר זמן.
generationConfig.thinkingConfig.includeThoughtsbooleanלאfalseמחזיר את סיכומי החשיבה של המודל ב-output.thoughts.

קטגוריות בטיחות: HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT. ספים: BLOCK_NONE, BLOCK_ONLY_HIGH, BLOCK_MEDIUM_AND_ABOVE, BLOCK_LOW_AND_ABOVE, OFF.

שדות לא מוכרים נדחים. עדיין לא זמינים: תוכן שמור במטמון ו-responseFormat; הגדר את היחס והגודל דרך imageConfig. inlineData אינו מתקבל; העבר מדיה ככתובות fileData.

גודל הפלט

imageSizeפלט ביחס 1:1טוקני תמונה
1K1024×10241,120
2K2048×20481,680
4K4096×40962,520

יחסי גובה-רוחב אחרים שומרים על אותו מספר טוקנים; למשל 16:9 ב-1K הוא ⁦1376×768⁩, ו-21:9 ב-4K הוא ⁦6336×2688⁩.

מצבים

אין פרמטר מצב נפרד ואין נקודת קצה נפרדת לעריכה.

פעולהפרמטרים
טקסט לתמונהחלק טקסט
עריכה או הרכבהחלק טקסט + חלק fileData אחד או יותר
עריכה בכמה תורותתורות user ו-model קודמות, ואחריהן תור user חדש (ראה את ההערה למטה)

כדי להמשיך שיחה, בנה מחדש את תור ה-model מתוך output.parts של המשימה הקודמת, לפי הסדר: חלק טקסט הופך ל-{"text": ..., "thoughtSignature": ...} וחלק תמונה הופך ל-{"fileData": {"mimeType": "image/<output_format>", "fileUri": <data[image].url>}, "thoughtSignature": ...}. שמור כל thoughtSignature בדיוק כפי שהוחזר: זו כתובת ה-URL של החתימה ששמרנו עבורך (החתימה של תמונת 4K שוקלת כמה מגה-בייט), ואנחנו משחזרים אותה לפני שהבקשה מגיעה למודל. מתקבלות רק חתימות מתוצאות המשימות שלך.

עריכה עם תמונת ייחוס

curl https://api.seedrouter.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-nano-banana-2.1",
    "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"}}
      ]
    }]
  }'

החלף את כתובת הדוגמה בתמונה נגישה משלך.

קלט מדיה

ה-API הזה מקבל הפניות לכתובות URL בלבד. inlineData ב-Base64, כתובות data: והעלאות multipart אינם מתקבלים. ה-Playground מעלה את הקבצים שנבחרו לאחסון לפני שהוא שולח את הכתובות שלהם.

ייחוסים חייבים להיות כתובות HTTP(S) ציבוריות, כל אחת קטנה מ-50 MB ובסך הכול פחות מ-100 MB: תמונות (image/png, image/jpeg, image/webp, image/heic, image/heif), סרטוני וידאו (video/mp4, video/mpeg, video/mov, video/avi, video/x-flv, video/mpg, video/webm, video/wmv, video/3gpp) או מסמכי PDF (application/pdf). mimeType חייב להתאים לקובץ. הכתובות נטענות במהלך העיבוד; תמונה שאינה נגישה גורמת לכישלון המשימה, ומשימה שנכשלה אינה מחויבת.

גורמי עלות

בדוק את מדור המחירים של המודל למחיר הנוכחי. gemini-nano-banana-2.1 מחייב מחיר קבוע לכל תמונה שנמסרה, בלי קשר לגודל, לרמת החשיבה או לפרומפט.

את החיובים הסופיים תראה בהיסטוריית השימוש של החשבון שלך. משימות שנכשלו אינן מחויבות.

מבנה הפלט

השליחה מחזירה הפניה למשימה:

{
  "id": "task_...",
  "model": "gemini-nano-banana-2.1",
  "status": "processing",
  "created_at": 1790310979
}

תשאול המשימה

curl https://api.seedrouter.ai/v1/tasks/YOUR_TASK_ID \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

תשאל כל כמה שניות עד ש-status יהיה completed או failed. פקיעת זמן ברשת במהלך התשאול אינה מעידה שהיצירה נכשלה: שמור את מזהה המשימה והמשך לבדוק אותה. אל תיצור משימה נוספת כדי לבדוק התקדמות.

דוגמת תשאול מלאה

הרץ זאת אחרי דוגמת השליחה ב-Python שלמעלה.

import time

deadline = time.monotonic() + 600
while time.monotonic() < deadline:
    result = requests.get(
        f"https://api.seedrouter.ai/v1/tasks/{task_id}",
        headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
        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}.")

משימה שהסתיימה

{
  "id": "task_...",
  "model": "gemini-nano-banana-2.1",
  "status": "completed",
  "created_at": 1790310979,
  "finished_at": 1790311001,
  "output": {
    "created": 1790310999,
    "data": [{"url": "https://static.seedrouter.ai/media/tasks/task_example/0.jpg"}],
    "output_format": "jpeg",
    "usage": {
      "input_tokens": 22,
      "output_tokens": 2297,
      "total_tokens": 2319
    }
  }
}
שדהמשמעות
idשמור את המזהה הזה לתשאולים הבאים.
statusprocessing, completed או failed.
created_at, finished_atחותמות זמן Unix בשניות.
output.data[].urlכתובת התמונה שנוצרה.
output.textטקסט שהמודל החזיר לצד התמונה, כש-responseModalities כולל TEXT. החשיבה אינה נכללת.
output.thoughtsסיכומי החשיבה של המודל, כש-includeThoughts הוא true. תמונות ביניים שהמודל מצייר בזמן החשיבה אינן נמסרות.
output.grounding_metadataעם חיפוש Google: webSearchQueries, imageSearchQueries, searchEntryPoint.renderedContent (קוד ה-HTML של Search Suggestions שחובה להציג) ו-groundingChunks (מקורות), כפי ש-Google מחזירה אותם.
output.output_formatפורמט התמונה בפועל.
output.partsחלקי התגובה הסופיים לפי הסדר, לעריכה בכמה תורות: {"text", "thoughtSignature"} או {"image": <index into data>, "thoughtSignature"}. thoughtSignature הוא כתובת URL; שלח אותו בחזרה ללא שינוי.
output.usageשימוש בטוקנים. output_tokens סופר פלט של טקסט, חשיבה ותמונה.
errorשגיאה מובנית במשימה שנכשלה.

סטרימינג (streamGenerateContent) אינו נתמך; התוצאות נמסרות דרך המשימה.

שגיאות

בקשות שנדחות לפני יצירת המשימה מחזירות שגיאת HTTP יחד עם אובייקט error. משימה שנכשלת לאחר שהתקבלה מחזירה בתשאול HTTP 200, עם status: "failed" ואובייקט error. תמונה שנחסמה על ידי מסנני הבטיחות של המודל נכשלת עם content_policy_violation; תגובה ללא תמונה נכשלת עם no_output.

ראה את קטלוג השגיאות המשותף לקודים, לסטטוסי HTTP ולהנחיות ניסיון חוזר.

{
  "id": "task_...",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

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

טיפים

  • תאר את הנושא, הסביבה, התאורה והסגנון במשפטים מלאים.
  • בעריכה, ציין מה צריך להשתנות ומה חייב להישאר כפי שהוא.
  • המחיר זהה בכל גודל, אז בקש את הגודל שאתה צריך: 1K לטיוטות, 2K או 4K לנכסים הסופיים.
  • שים את המילים המדויקות שאתה רוצה שיופיעו בתוך מירכאות, ושמור אותן קצרות.
  • השתמש ברמת חשיבה MINIMAL לטיוטות מהירות יותר וב-HIGH לפריסות צפופות כמו אינפוגרפיקות.
  • שמור את התמונות שהוחזרו באחסון שלך אם אתה צריך עותק קבוע.

קישורים רלוונטיים