דילוג לתיעוד
בעמוד זה

Seedream 5.0 Pro API

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

POST https://api.seevio.ai/v1/images/generations

יכולות

תכונהערכים נתמכים
מצבי יצירהtext-to-image, image-to-image, layer-decomposition
רזולוציית פלט1K, 1.5K, 2K
יחס גובה-רוחב1:1, 4:3, 3:4, 16:9, 9:16, 2:3, 3:2, 21:9
תמונות התייחסותכתובות URL ציבוריות של תמונות בפורמט PNG / JPEG / WebP המשתמשות ב-HTTPS, כל אחת במשקל של עד 30 MB. אין להשתמש בתמונות עבור טקסט לתמונה, השתמשו ב-1 עד 10 תמונות עבור תמונה לתמונה, ובתמונה אחת בדיוק עבור פירוק לשכבות.
הנחיה (Prompt)ההנחיה צריכה להכיל 4–5,000 תווים לאחר הסרת רווחים בתחילתה ובסופה. רק במצב layer-decomposition ניתן להשמיט את השדה prompt או להשאיר אותו ריק.
פורמט פלטpng, jpg

תמחור וקרדיטים

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

רזולוציית פלטתמחור וקרדיטים
1K4 קרדיטים
1.5K4 קרדיטים
2K8 קרדיטים

ברזולוציית ברירת המחדל של 2K, פירוק לשכבות משריין מראש 136 קרדיטים. אם יוחזרו ארבע תמונות, החיוב הסופי יהיה 32 קרדיטים ו-104 קרדיטים יוחזרו לחשבון.

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

אימות

צרו מפתח API בלוח הבקרה. המפתח המלא יוצג פעם אחת בלבד. שמרו אותו בשרת שלכם ושלחו אותו כטוקן Bearer בכל בקשה.

כתובת בסיס (Base URL)

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

הגדירו את משתנה הסביבה SEEVIO_API_KEY לפני הרצת דוגמאות אלו. דוגמאות ה-JavaScript רצות על השרת שלכם באמצעות Node.js; דוגמאות ה-Python משתמשות בחבילת requests.

גוף הבקשה

שדהסוגחובהתיאור ומגבלות
model
stringכן

מזהה דגם. כדי להשתמש ב-Seedream 5.0 Pro, הגדר שדה זה כ-seedream-5-0-pro.

callback_url
stringלא

כתובת HTTPS ציבורית לקבלת קריאות חוזרות (POST callbacks) במקרה של הצלחה או כישלון. שימוש ברשתות פרטיות וב-localhost אינו מותר.

דוגמה: https://example.com/webhooks/seevio
input
objectכן

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

פרמטרי קלט

שדהסוגחובהברירת מחדלתיאור ומגבלות
input.prompt
stringמותנה—

ההנחיה צריכה להכיל 4–5,000 תווים לאחר הסרת רווחים בתחילתה ובסופה. רק במצב layer-decomposition ניתן להשמיט את השדה prompt או להשאיר אותו ריק.

דוגמה: A minimalist ceramic teapot on a stone pedestal, soft studio lighting
input.generation_type
stringלאtext-to-image

השתמשו ב-text-to-image ליצירת תמונה חדשה, ב-image-to-image לעריכת תמונות ייחוס, או ב-layer-decomposition כדי להפריד תמונה אחת לאלמנטים הניתנים לשימוש חוזר.

ערכים נתמכים
text-to-image | image-to-image | layer-decomposition
input.image_urls
string[]מותנה[]

כתובות URL ציבוריות של תמונות בפורמט PNG / JPEG / WebP המשתמשות ב-HTTPS, כל אחת במשקל של עד 30 MB. אין להשתמש בתמונות עבור טקסט לתמונה, השתמשו ב-1 עד 10 תמונות עבור תמונה לתמונה, ובתמונה אחת בדיוק עבור פירוק לשכבות.

דוגמה: ["https://example.com/teapot.png"]
input.aspect_ratio
stringלא1:1

יחס גובה-רוחב

ערכים נתמכים
1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 2:3 | 3:2 | 21:9
דוגמה: 1:1
input.resolution
stringלא2K

המצבים טקסט לתמונה ותמונה לתמונה תומכים ב-1K (איכות בסיסית) וב-2K (איכות גבוהה). פירוק לשכבות תומך ב-1K, ‏1.5K ו-2K. ברירת מחדל: 2K.

ערכים נתמכים
1K | 1.5K | 2K
דוגמה: 2K
input.output_format
stringלאpng

פורמט הפלט המבוקש. בפירוק לשכבות, ערך של png יחזיר תמונת בסיס בפורמט PNG, וערך של jpg יחזיר תמונת בסיס בפורמט JPEG. כל השכבות המופרדות מוחזרות תמיד כקובצי PNG תוך שמירה על שקיפות.

ערכים נתמכים
png | jpg
דוגמה: png

כל בקשה מייצרת משימה אחת. המצבים טקסט לתמונה ותמונה לתמונה מחזירים תמונה אחת; פירוק לשכבות (layer-decomposition) מחזיר בין 1 ל-17 תמונות, כולל תמונת הבסיס. אין לשלוח aspect_ratio עבור layer-decomposition.

מדריך מהיר

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

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
    "aspect_ratio": "1:1",
    "resolution": "2K",
    "output_format": "png",
    "generation_type": "text-to-image"
  }
}'

דוגמה לתגובת יצירת משימה

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 8
}

מטקסט לתמונה

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

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
    "aspect_ratio": "1:1",
    "resolution": "2K",
    "output_format": "png",
    "generation_type": "text-to-image"
  }
}'

מתמונה לתמונה

לעריכת תמונה, יש להגדיר את generation_type כ-image-to-image ולספק image_urls. כל שאר הפרמטרים פועלים לפי אותם כללים.

החליפו את כתובות ה-URL לדוגמה של example.com בקובצי ה-HTTPS הציבוריים והנגישים שלכם. כתובות ה-URL שבדוגמה נועדו להמחיש את מבנה הבקשה בלבד ואינן זמינות להורדה.

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "Change the teapot to matte sage green. Preserve its shape and the studio lighting.",
    "aspect_ratio": "1:1",
    "resolution": "2K",
    "output_format": "png",
    "generation_type": "image-to-image",
    "image_urls": [
      "https://example.com/teapot.png"
    ]
  }
}'

פירוק לשכבות

הגדירו את generation_type ל-layer-decomposition וספקו בדיוק כתובת URL אחת של תמונה. השמיטו את aspect_ratio. הפרמטר output_format שולט אך ורק בפורמט של תמונת הבסיס. שכבות מופרדות מוחזרות תמיד כקובצי PNG תוך שמירה על שקיפות. שמרו כל כתובת URL המופיעה ב-data.results.

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-pro",
  "input": {
    "generation_type": "layer-decomposition",
    "image_urls": [
      "https://example.com/teapot.png"
    ],
    "resolution": "2K",
    "output_format": "png"
  }
}'

פירוק לשכבות יכול להחזיר מספר כתובות URL של תמונות בתוך data.results: תמונת הבסיס והשכבות שהופרדו ממנה. כל כתובת URL מפנה לתמונה נפרדת. מספר התוצאות משתנה ממשימה למשימה (בין 1 ל-17 תמונות בסך הכל); יש לעבד את המערך כולו ולא להסתמך רק על האינדקס הראשון data.results[0]. מערך זה יופיע הן בתשובת השאילתה של משימה שהושלמה והן ב-webhook של הסיום. תגובת היצירה הראשונית מכילה את ה-taskId ואת הקרדיטים המשוריינים בלבד, ללא כתובות URL של תמונות.

דוגמה לתגובת יצירת משימה

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 136
}

פירוק לשכבות שהושלם: מספר כתובות URL של תמונות

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

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171200,
  "model": "seedream-5-0-pro",
  "credits": 32,
  "failed_code": null,
  "status": "completed",
  "billing_status": "charged",
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/images/example/base.png",
      "https://cdn.seevio.ai/api/images/example/layer-1.png",
      "https://cdn.seevio.ai/api/images/example/layer-2.png",
      "https://cdn.seevio.ai/api/images/example/layer-3.png"
    ],
    "image_expires_at": "2026-10-12T00:00:00.000Z",
    "processing_time": 12
  }
}

עיבוד כל התמונות המוחזרות

const response = await fetch(
  "https://api.seevio.ai/v1/tasks/TASK_ID",
  { headers: { Authorization: `Bearer ${process.env.SEEVIO_API_KEY}` } }
);
if (!response.ok) throw new Error(await response.text());
const task = await response.json();

if (task.status === "completed") {
  // Process every returned image, including the base image.
  // The number of URLs varies; do not read only results[0].
  for (const [index, imageUrl] of task.data.results.entries()) {
    console.log({ taskId: task.id, index, imageUrl });
    // Download or store this image in your application.
  }
} else if (task.status === "failed") {
  throw new Error(task.failed_reason || "Image generation failed.");
}
// If queued or generating, poll again after at least 5 seconds.

שאילתת משימה

GET https://api.seevio.ai/v1/tasks/{taskId}

החליפו את מזהה הדוגמה ב-taskId שהתקבל בעת היצירה. שאילתות יחזירו רק משימות השייכות למשתמש של מפתח ה-API; מזהים שאינם נגישים או שאינם קיימים יחזירו שגיאת HTTP 404.

כנקודת מוצא, בצעו שאילתה (polling) כל 10–20 שניות, הפחיתו את התדירות במקרה של שגיאת HTTP 429, ועצרו כאשר הסטטוס הופך ל-completed או failed. בסביבת פרודקשן מומלץ להשתמש ב-Webhooks. כל דוגמת קוד להלן מבצעת שאילתה אחת בלבד.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
סטטוסערכים מותרים ודרישות
queuedהתקבל וממתין לעיבוד.
generatingהיצירה מתבצעת כעת.
completedהושלם בהצלחה. יש להוריד את הקבצים מ-data.results לפני מועד פקיעת התוקף.
failedנכשל סופית. יש לבדוק את failed_reason ואת billing_status.
שדהסוגערכים מותרים ודרישות
idstringמזהה המשימה. זהו ה-taskId שהתקבל בתגובת היצירה.
created_atnumberזמן יצירת המשימה בפורמט Unix timestamp (שניות).
modelstringמזהה הדגם הציבורי ששימש למשימה זו.
billing_statusstringסטטוס חיוב: reserved (שמור), charged (חויב), refunded (זוכה) או refund_failed (הזיכוי נכשל).
creditsnumberתגובת היצירה והמשימה הממתינה מציגות את הקרדיטים המשוריינים. עם השלמת המשימה, הערך בשדה credits ישקף את החיוב בפועל; קרדיטים משוריינים שלא נוצלו כבר הוחזרו ליתרה שלכם. משימות שנכשלו ישמרו על ערך השריון המקורי.
failed_reasonstring | nullסיבת הכישלון במשימות שנכשלו; אחרת הערך הוא null. תגובות של שאילתות שנכשלו אינן כוללות את השדה data.
failed_codestring | nullקוד שגיאה. לפרטי השגיאה, ראו failed_reason.
dataobjectקיים בשאילתות של משימות שלא נכשלו. מכיל פרטי פלט ועיבוד.
data.resultsstring[]כל כתובות ה-URL של תמונות הפלט, כולל תמונת הבסיס עבור פירוק לשכבות. המערך ריק לפני השלמת המשימה ולאחר פקיעת התוקף.
data.image_expires_atstring | nullזמן תפוגת התמונות בפורמט ISO 8601, או null אם אינו זמין.
data.processing_timenumber | nullמשך עיבוד המשימה בשניות, במידה וזמין. אחרת יוחזר null.

בתור

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171200,
  "model": "seedream-5-0-pro",
  "credits": 8,
  "failed_code": null,
  "status": "queued",
  "billing_status": "reserved",
  "failed_reason": null,
  "data": {
    "results": [],
    "image_expires_at": null,
    "processing_time": null
  }
}

הושלם

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171200,
  "model": "seedream-5-0-pro",
  "credits": 8,
  "failed_code": null,
  "status": "completed",
  "billing_status": "charged",
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/images/example.png"
    ],
    "image_expires_at": "2026-10-12T00:00:00.000Z",
    "processing_time": 12
  }
}

נכשל

כאשר השאילתה מחזירה status=failed, תהליך היצירה הסתיים ללא הצלחה. ניתן לראות את סיבת הכישלון ב-failed_reason ואת סטטוס ההחזר ב-billing_status. בדוגמה זו, refunded מציין שהקרדיטים הוחזרו. השדה credits שומר על הערך המקורי שהוזמן, והתגובה אינה כוללת את השדה data.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171200,
  "model": "seedream-5-0-pro",
  "credits": 8,
  "failed_code": "400",
  "status": "failed",
  "billing_status": "refunded",
  "failed_reason": "The input or output was flagged as sensitive. Please try again with different inputs."
}

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

Webhooks

הגדירו callback_url בבקשת היצירה כדי לקבל בקשת POST מסוג JSON כאשר המשימה מסתיימת או נכשלת. החזירו תגובת 2xx בתוך 15 שניות. שליחות שנכשלו ינוסו שוב; טפלו בקבלת שידורים חוזרים בצורה אידמפוטנטית (idempotent) לפי מזהה המשימה.

קצה הקישור החוזר (callback endpoint) שלך חייב לקבל בקשות POST עם גוף בקשה מסוג JSON (Content-Type: application/json).

יצירת משימה עם קריאה חוזרת (Callback)

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-pro",
  "input": {
    "prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
    "aspect_ratio": "1:1",
    "resolution": "2K",
    "output_format": "png",
    "generation_type": "text-to-image"
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

קריאות חוזרות (Callbacks) משתמשות במבנה התגובה של שאילתת המשימה (task query); התראות על כשלים שזוכו כוללות גם את credits_refunded ברמה העליונה. יש להשתמש ב-id כדי לזהות את המשימה וב-status כדי להבחין בין משימה שהושלמה לכזו שנכשלה. התראות עשויות להישלח שוב: יש לעבד אותן באופן אידמפוטנטי (idempotently) לפי id ו-status. קריאות חוזרות אינן חתומות; יש לאמת את המשימה מול נקודת הקצה המאומתת של השאילתה. כשל במסירת ההתראה אינו מזכה על משימה שהושלמה בהצלחה.

המשימה הושלמה: נתוני ה-payload של ה-callback שהצליח

השדה created_at מציין את זמן יצירת האירוע ו-task_created_at את זמן יצירת המשימה, בשניות Unix. הדוגמאות מציגות שדות מומלצים; התגובה עשויה לכלול שדות נוספים.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171212,
  "model": "seedream-5-0-pro",
  "credits": 8,
  "failed_code": null,
  "status": "completed",
  "billing_status": "charged",
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/images/example.png"
    ],
    "image_expires_at": "2026-10-12T00:00:00.000Z",
    "processing_time": 12
  },
  "task_created_at": 1789171200
}

המשימה נכשלה: נתוני ה-payload של ה-callback שנכשל

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171212,
  "model": "seedream-5-0-pro",
  "credits": 8,
  "failed_code": "400",
  "status": "failed",
  "billing_status": "refunded",
  "failed_reason": "The input or output was flagged as sensitive. Please try again with different inputs.",
  "task_created_at": 1789171200,
  "credits_refunded": 8
}

דוגמה לקוד קליטה (Receiver)

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const imageUrls = callbackData.data.results;
    // Save the image URLs and mark this task as completed in your application.
    console.log(callbackData.id, imageUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

דוגמה זו ב-Next.js קוראת את גוף ה-JSON של ה-callback ומטפלת ישירות במשימות שהושלמו או נכשלו. מומלץ להוסיף שמירה בבסיס נתונים ומניעת כפילויות של מזהי משימות (task-ID deduplication) באפליקציה שלך; מומלץ להעביר עבודות איטיות לתור (queue) לפני החזרת אישור על קבלת ה-callback.

שגיאות

שגיאות HTTP מחזירות אובייקט error המכיל code (קוד) ו-message (הודעה). משימה שהתקבלה בהצלחה עדיין עלולה להיכשל בשלב מאוחר יותר; בצעו שאילתה על המשימה או טפלו בקריאה החוזרת של הכישלון שלה.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPשדהמה לעשות
400invalid_request
תקנו את מבנה ה-JSON, הנחיית הטקסט החסרה, טווח הפרמטרים או כתובת ה-URL של המדיה לפני שתנסו שוב.
401invalid_api_key
בדקו את טוקן ה-Bearer וודאו שמפתח ה-API פעיל.
402insufficient_credits
הוסיפו קרדיטים או הפחיתו את עלות המשימה. התגובה עשויה לכלול את כמות הקרדיטים הנדרשת מול זו הזמינה.
403forbidden
בדוק את ההגבלות ברמת החשבון המתוארות בהודעת השגיאה.
404not_found
ודאו שמזהה המשימה נכון ושהמפתח שייך למשתמש שיצר את המשימה.
429rate_limited
המתן את משך הזמן המצוין ב-Retry-After לפני שתנסה שוב.
500internal_error
בדקו את הודעת השגיאה ואת יומני הרישום של ה-API. נסו שוב בזהירות; שליחה חוזרת של בקשת יצירה עלולה ליצור משימה נוספת לחיוב.

שגיאות משתמשות ב-error.code וב-error.message: ‏400 invalid_request, ‏401 invalid_api_key, ‏402 insufficient_credits, ‏403 forbidden, ‏404 not_found, ‏429 rate_limited, ‏500 internal_error. שגיאת 402 insufficient_credits פירושה שיתרת הקרדיטים שלך אינה מספיקה לביצוע בקשה זו.

מגבלות קצב בקשות

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

שאילתות משימות: כברירת מחדל, כל מפתח API מאפשר עד 120 בקשות בדקה. בקשות שאילתה ובקשות ליצירת משימות נספרות בנפרד.

בקשות ליצירת תמונות ווידאו חולקות את אותה מגבלת קצב (rate limit) של מפתח ה-API.

שגיאת HTTP 429 כוללת את הכותרת Retry-After: 60 עבור יצירה ו-Retry-After: 5 עבור שאילתות. השתמשו בהשהיית פניות (backoff) והימנעו מביצוע שאילתות בתדירות גבוהה מהנדרש.

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 60
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded."
  }
}