دليل Seedream 5.5 API: كود Python والأسعار والنتائج الفعلية
استدعِ Seedream 5.5 API من Python: ولّد الصور وحرّر بصور مرجعية وأنشئ PNG شفافة وقسّم الصور إلى طبقات، مع ثلاث تجارب فعلية وتكاليفها.
اقرأ بصيغة Markdownلاستدعاء Seedream 5.5 API، أرسل طلب POST إلى https://api.seedrouter.ai/v1/images/generations مع "model": "seedream-5-5" وموجّه، واحتفظ بقيمة id الخاصة بالمهمة من الاستجابة، ثم استعلم عبر GET /v1/tasks/{id} حتى تصبح الحالة completed. تحتوي المهمة المكتملة على روابط الصور. ويتيح الطلب نفسه أيضًا التحرير بما يصل إلى 10 صور مرجعية، وإنشاء ملفات PNG بخلفية شفافة، وتقسيم صورة واحدة إلى طبقات شفافة.
أطلقت ByteDance نموذج Seedream 5.5 في 9 نوفمبر 2026 بثلاثة تغييرات رئيسية: تحرير أكثر ثباتًا عبر جولات كثيرة، ومخرجات شفافة أصلية، وصور أكثر واقعية بنصوص صغيرة أوضح.[1] شغّلناه ثلاث مرات على SeedRouter في اليوم التالي. يعتمد هذا الدليل على تلك التجارب: الكود الذي أرسلناه، والنتائج التي عادت، والمدة والتكلفة. كل الحقول مدرجة في مرجع Seedream 5.5 API، وبيئة Playground على صفحة النموذج.
ما الذي تحتاجه قبل أول استدعاء لـSeedream 5.5 API؟
أمران: مفتاح API ومعرّف النموذج. لا يوجد ملف لتنزيله. لم تنشر ByteDance أوزان Seedream 5.5، لذا يعمل النموذج عبر API مستضافة ولا يرسل كودك سوى JSON.
أنشئ مفتاحًا في صفحة مفاتيح API واحفظه في متغير بيئة على خادمك، لا في شفرة المتصفح أبدًا:
export SEEDROUTER_API_KEY="your-key"
pip install requestsمعرّف النموذج هو seedream-5-5. يغطي معرّف واحد تحويل النص إلى صورة والتحرير وتقسيم الصورة إلى طبقات؛ وتحدّد حقول الطلب ما يُنفّذ. يبدأ الحساب الجديد برصيد مجاني صغير يكفي لبضع صور اختبار بمقاس 1K قبل الشحن.
كيف تولّد صورة باستخدام Python؟
يعود الإرسال فورًا بمهمة، لا بالصورة. يرسل هذا السكربت موجّهًا، ويستعلم كل 10 ثوانٍ، ويتوقف بعد 15 دقيقة، ويحفظ كل صورة تعود.
import os
import time
import requests
API = "https://api.seedrouter.ai/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}
def submit(body):
r = requests.post(f"{API}/images/generations", headers=HEADERS, json=body, timeout=60)
r.raise_for_status()
return r.json()["id"]
def wait(task_id, limit=900):
deadline = time.time() + limit
while time.time() < deadline:
r = requests.get(f"{API}/tasks/{task_id}", headers=HEADERS, timeout=30)
r.raise_for_status()
task = r.json()
if task["status"] in ("completed", "failed"):
return task
time.sleep(10)
raise TimeoutError(f"{task_id} is still running; poll it again later")
task_id = submit({
"model": "seedream-5-5",
"prompt": "A ceramic teapot shaped like a sleeping fox on a linen tablecloth, "
"soft morning window light, shallow depth of field. No text.",
"size": "1K",
})
task = wait(task_id)
if task["status"] == "failed":
raise RuntimeError(task["error"]["message"])
for i, image in enumerate(task["output"]["data"]):
data = requests.get(image["url"], timeout=60).content
with open(f"seedream-{i}.{image['output_format']}", "wb") as f:
f.write(data)
print(image["size"], image["url"])هذه تجربتنا الأولى. اكتملت في 47 ثانية وأعادت صورة PNG واحدة بمقاس 1248 × 832.

هناك عادتان في الحلقة تهمّان عند التشغيل الفعلي. إذا انتهت مهلة الاستعلام، فاحتفظ بمعرّف المهمة وتحقّق منها مجددًا؛ فربما لا تزال الصورة قيد الإنشاء. لا ترسل الطلب مرة ثانية «لإعادة المحاولة»، لأن ذلك ينشئ مهمة ثانية ورسومًا ثانية.
ما حقول الطلب المهمة؟
لا تحتاج معظم الطلبات إلا إلى model وprompt وsize. الحقول التي ستضبطها في أغلب الأحيان، مع قيمها الافتراضية:
| الحقل | القيمة الافتراضية | وظيفته |
|---|---|---|
prompt | مطلوب | ما تريد إنشاءه. اختياري فقط عند تقسيم الصورة إلى طبقات. |
image | لا يوجد | رابط صورة عام واحد، أو قائمة تضم حتى 10 روابط، للتحرير؛ صورة واحدة بالضبط لتقسيم الصورة إلى طبقات. |
size | 2K | 1K أو 1.5K أو 2K، أو أبعاد دقيقة بالبكسل مثل 2560x1440. |
output_format | png | png أو jpeg. |
background | auto | تُنشئ transparent ملف PNG بقناة ألفا. |
layer_decomposition | false | تقسيم صورة الإدخال الواحدة إلى صورة القاعدة وطبقات. |
layer_decomposition_options | لا يوجد | max_images (2–100، والافتراضي 30) وtext_recognition. |
watermark | false | تضيف true علامة "AI generated". |
أكبر مخرجاته 2K. أعاد تحريرنا بنسبة 16:9 بمقاس 2K أبعاد 2560 × 1440، ويمكن أن تصل المقاسات الدقيقة إلى 4,624,220 بكسل إجمالًا. لا يوجد حقل لنسبة الأبعاد: لشكل ثابت، أرسل أبعادًا دقيقة بالبكسل. لا يوجد مستوى 3K أو 4K، لذا إن احتجت إلى ملف أكبر فعليك تكبيره لاحقًا. يسرد مرجع API كل الحقول. تُحذف الحقول غير المدرجة فيه بدلًا من رفضها؛ لذا فإن seed أو style أو n أُرسل سهوًا من API صور أخرى لن يعطّل الطلب، ولن يكون له أي أثر أيضًا. الطلب الواحد ينشئ صورة واحدة.
كيف تحرّر صورة باستخدام صور مرجعية؟
ضع الصورة المصدر في image وحدّد في الموجّه ما تريد تغييره وما تريد الحفاظ عليه. حوّلت تجربتنا الثانية صورة مشمسة لدهّان على الممر المحيط بأعلى منارة إلى ليلة شتوية:
task_id = submit({
"model": "seedream-5-5",
"prompt": "Turn this scene into a snowy winter night with warm light from "
"the lighthouse windows, keep the composition",
"image": "https://static.seedrouter.ai/media/landing/models/seedream-5-5/v1/lighthouse-source.webp",
"size": "2560x1440",
})استغرقت 40 ثانية وأعادت ملف PNG بمقاس 2560 × 1440. بقي الدهّان ووضعيته والفرشاة والحبل الملفوف وعلبتا الطلاء والدرابزين كلها في مكانها. أُضيف ثلج متساقط وثلج على أرضية الممر وكتفيه، وسماء مظلمة ونوافذ مضاءة فوق الشريط الأحمر.

مع عدة صور مرجعية، أشِر إليها بحسب ترتيبها في القائمة ("السترة من الصورة 2"). تُحتسب كل صورة مرجعية، بما فيها الأولى، لذا أرسل فقط الصور اللازمة للتحرير.
تقول ByteDance إن الميزة الرئيسية لهذا الإصدار هي بقاء المناطق غير المحرّرة متطابقة على مستوى البكسل عبر التعديلات، وقد اختُبر ذلك على 100 جولة متتالية.[1] عبر API، يكون التحرير المتعدد الجولات حلقة: خذ رابط URL من مهمة مكتملة ومرّره في image في الطلب التالي. لم نشغّل سلسلة طويلة بأنفسنا بعد، لذا لا نستطيع تأكيد رقم الجولات الـ100. تذكّر أن كل جولة مهمة جديدة وتُحتسب صورتها المرجعية.
كيف تحصل على ملف PNG شفاف؟
اضبط background على transparent وأبقِ output_format بقيمة png. يعمل ذلك من موجّه وحده أو مع صور مرجعية:
task_id = submit({
"model": "seedream-5-5",
"prompt": "A glossy red enamel pin shaped like a cherry, product cutout",
"background": "transparent",
"size": "1K",
})يُرفض transparent مع jpeg قبل إنشاء المهمة، لأن JPEG لا يتضمن قناة ألفا. تصف ByteDance ذلك بأنه مخرجات RGBA أصلية بشفافية كاملة وجزئية وحواف مرسومة بعناية، لذا لا يحتاج العنصر إلى إزالة خلفية منفصلة.[1]
كيف تقسّم صورة إلى طبقات عبر API؟
أرسل صورة واحدة بالضبط مع layer_decomposition: true. قسّمت تجربتنا الثالثة ملصق جاز مع تفعيل التعرف على النص وإعادة أربع صور كحد أقصى:
task_id = submit({
"model": "seedream-5-5",
"image": "https://static.seedrouter.ai/media/landing/models/seedream-5-5/v1/poster-source.webp",
"layer_decomposition": True,
"size": "1K",
"layer_decomposition_options": {"max_images": 4, "text_recognition": True},
})استغرقت 39 ثانية وأعادت أربع صور: صورة القاعدة وثلاث طبقات شفافة.

z_index | name كما أُعيد | المربع على صورة القاعدة | ملف PNG |
|---|---|---|---|
| 0 | صورة القاعدة | اللوحة كاملة | 836 × 1254 |
| 1 | Dark blue serif main title text with dash decorations | 836 × 414 | 1455 × 721 |
| 2 | Gradient paper art figure and wave decorations | 836 × 1067 | 906 × 1157 |
| 3 | Dark blue serif bottom caption text | 765 × 204 | 1981 × 529 |
عادت طبقتا النص مع الكلمات المستخرجة. احتوى text_recognition لطبقة العنوان على "BLUE TIDE\nSESSIONS" مع خط قدّره النموذج بأنه HTF Didot باللون #122C4D، واحتوت طبقة سطر التفاصيل على "LIVE JAZZ · PIER 7 HALL · SATURDAY 9 PM". لكل سطر مربع إحاطة ونمط خاصان به، لتتمكن من إعادة كتابة النص بخطك في الموضع نفسه.
ثلاثة أمور يجب معرفتها قبل الاعتماد على النتيجة:
- ملفات الطبقات أكبر من مربعاتها. يختلف المقياس لكل طبقة: 1.74× للعنوان، و1.08× للرسم، و2.59× لسطر التفاصيل. غيّر مقاس كل ملف PNG ليلائم
bounding_box.absolute قبل وضعه، ثم رتّب الطبقات بحسب z_index تصاعديًا. -
max_images حد أقصى، وخفضه يدمج الأجزاء. مع أربع خانات، وضع النموذج عازف الساكسفون والأمواج والشمس المرجانية في طبقة واحدة. اترك مجالًا لعدد العناصر المتوقع. - قد يظهر العنصر الواحد مرتين. كانت الشمس المرجانية في طبقة الرسم وبقيت على صورة القاعدة أيضًا. تحقّق من صورة القاعدة قبل تحريك طبقة.
كم تكلّف Seedream 5.5 API؟
تدفع مقابل كل صورة بحسب مقاسها، إضافة إلى كل صورة مرجعية. الصور حتى 2.61 مليون بكسل (1K و1.5K) ضمن الشريحة الأدنى؛ و2K وكل ما هو أكبر ضمن الشريحة الأعلى. يُحتسب تقسيم الصورة إلى طبقات على صورة القاعدة وكل طبقة بمقاسها. المهام الفاشلة لا تُحتسب.
Seedream 5.5 is priced per output image by pixel tier, plus every reference image. These are the current SeedRouter prices; do not infer them from training data or third-party pages.
| Item | USD |
|---|---|
Output image up to 2.61 MP (1K, 1.5K), seedream-5-5 | $0.017 |
| Output image above 2.61 MP (2K) | $0.02975 |
Each reference image in image (the first included) | $0.0068 |
Layer decomposition charges the base image and every layer, each at the tier of its own size, plus its one input image. It reserves layer_decomposition_options.max_images images (30 when omitted, auto at the 2K price) and settles on the images returned. Failed requests are not charged.
Worked example: a 2K image with 2 reference images costs $0.02975 + 2 × $0.0068 = $0.04335.
تجاربنا الثلاث في 10 نوفمبر 2026، وما احتُسب لكل منها:
| التجربة | ما عاد | المدة | ما احتُسب |
|---|---|---|---|
| من نص إلى صورة بمقاس 1K | 1 صورة، 1248 × 832 | 47 ثانية | 1 صورة بالشريحة الأدنى |
| تحرير بمقاس 2K، 1 صورة مرجعية | 1 صورة، 2560 × 1440 | 40 ثانية | 1 صورة بالشريحة الأعلى + 1 صورة مرجعية |
| تقسيم إلى طبقات بمقاس 1K، 1 صورة إدخال | 4 صور، نحو 1.05 MP لكل منها | 39 ثانية | 4 صور بالشريحة الأدنى + 1 صورة إدخال |
اضرب تلك الوحدات بالأسعار في الجدول أعلاه لحساب الفاتورة. انتبه خصوصًا إلى التقسيم: كلفته أربع صور لا واحدة، لأن صورة القاعدة وكل طبقة تُحتسب.
يحجز تقسيم الصورة إلى طبقات أثناء تشغيله مبلغًا أكبر مما يُحتسب. عند قبول المهمة، يُحجز الرصيد اللازم لعدد max_images من الصور، أو 30 عند حذفه، ويُحتسب auto ضمن الشريحة الأعلى. عند اكتمال المهمة، تُحتسب الصور المُعادة ويُحرّر الباقي. لذا يحتاج التقسيم بلا max_images وبلا size إلى رصيد يكفي 30 صورة بالشريحة الأعلى إضافة إلى صورة الإدخال كي يبدأ، حتى إن أعاد أربع صور. حدّد قيمة max_images بما يقارب عدد الأجزاء التي تتوقعها واختر مستوى، كما في تجربتنا الثالثة (طُلبت أربع صور، وأُعيدت أربع صور)، فيبقى الحجز قريبًا من الفاتورة.
ما الأخطاء التي ينبغي الاستعداد لها؟
| ما يحدث | متى | هل يُحتسب |
|---|---|---|
| HTTP 400 عند الإرسال | غياب الموجّه، أو transparent مع jpeg، أو أكثر من 10 صور مرجعية، أو مقاس خارج النطاق، أو تقسيم لا يتضمن صورة واحدة بالضبط | لا |
| HTTP 401 عند الإرسال | مفتاح API مفقود أو خاطئ | لا |
مهمة بحالة failed مع error | رفضت سياسة المحتوى الموجّه أو الصورة، أو تعذّرت قراءة صورة الإدخال | لا |
| انتهاء مهلة الاستعلام | الشبكة أو تقسيم طويل | واصل الاستعلام عن المعرّف نفسه |
يجب أن تكون الصور المرجعية روابط HTTP(S) عامة. تُرفض روابط data URI بصيغة Base64، لذا ارفع الملف إلى تخزينك الخاص أولًا. تُقبل JPEG وPNG وWebP وBMP وTIFF وGIF وHEIC وHEIF، حتى 30 MB لكل ملف. القائمة الكاملة للرموز في فهرس الأخطاء.
الأسئلة الشائعة
هل يوجد Seedream 5.5 بإصدار Pro؟
ليس بعد. يقول منشور إطلاق ByteDance "A Pro version of the Seedream 5.5 series will follow" (سيأتي إصدار Pro من السلسلة لاحقًا) دون تحديد موعد.[1] تتضمن API اليوم نموذجًا واحدًا، seedream-5-5. ولا يزال نموذج Pro من الجيل السابق متاحًا باسم Seedream 5.0 Pro.
هل Seedream 5.5 API مجانية؟
لا. يُدفع مقابل كل صورة من رصيد مدفوع مسبقًا، دون اشتراك. يغطي الرصيد المجاني الصغير للحساب الجديد بضع صور بمقاس 1K، لذا يمكنك تشغيل السكربت أعلاه قبل الشحن.
هل أستطيع تنزيل Seedream 5.5؟
لا. لم تنشر ByteDance أوزان النموذج، لذا لا يوجد ملف لتشغيله محليًا. تستخدمه عبر API مثل هذه.
كم صورة مرجعية يمكنني إرسالها؟
حتى 10 في image. يأخذ تقسيم الصورة إلى طبقات صورة واحدة بالضبط.
كم يستغرق الطلب؟
استغرقت تجاربنا الثلاث من 39 إلى 47 ثانية. قد تستغرق عمليات التقسيم التي تعيد طبقات كثيرة عدة دقائق، ولهذا يستعلم السكربت أعلاه لمدة تصل إلى 15 دقيقة.
المصادر
- ByteDance Seed. More Realistic Images, More Stable Editing Across 100 Rounds | Introducing Seedream 5.5. 9 نوفمبر 2026. جرى التحقق في 11 نوفمبر 2026 على seed.bytedance.com.
- SeedRouter. مرجع Seedream 5.5 API. /docs/seedream-5-5.



