Seedream 5.0 Pro: فصل الصورة إلى طبقات والنتائج وإعادة التركيب
فصل الصورة إلى طبقات مع Seedream 5.0 Pro عبر API: محتوى صورة القاعدة وطبقات PNG، وكيف تعيد تركيبها وتُحسب تكلفتها، مع كود عملي.
اقرأ بصيغة Markdownيأخذ فصل الصورة إلى طبقات في Seedream 5.0 Pro صورة مكتملة ويعيد صورة القاعدة وما يصل إلى 16 طبقة PNG شفافة، لكل منها اسم ووصف وترتيب تراكب ومربع إحاطة.[1] في API، هذه هي وظيفة المفتاح layer_decomposition ضمن طلب الصور العادي. أرسل صورة واحدة، واستلم عناصرها منفصلة.
شغّلناه مرتين على SeedRouter يومَي 1 و2 نوفمبر 2026، على ملصقين ولّدناهما بأنفسنا. باختصار: التقسيم نظيف في التصاميم الرسومية المسطّحة، وملفات الطبقات لا تأتي بالمقاس الذي تشغله على اللوحة، والعلامة المائية الافتراضية تتناثر في الصورة المعاد تركيبها إن تركتها مفعّلة. الأرقام والكود أدناه. المعاملات في مرجع Seedream 5.0 Pro API، وبيئة التجربة في صفحة النموذج.
ماذا أعاد طلب واحد؟
كانت صورة الاختبار ملصق جاز بمقاس 1248 × 1872: عنوان بخط ذي زوائد، وقمر بلون مرجاني، وعازف ساكسفون مقصوص من أمواج ورقية، وشريط أمواج في الأسفل وسطر لتفاصيل الفعالية. أرسلناه مع size: "1.5K"، بلا موجّه ومع إيقاف العلامة المائية. اكتملت المهمة في 108 ثوانٍ وأعادت ست صور: صورة القاعدة وخمس طبقات.

z_index | name (كما أُعيد) | المربع على صورة القاعدة | ملف PNG |
|---|---|---|---|
| 0 | صورة القاعدة | اللوحة كاملة | 1248 × 1872 JPEG |
| 1 | Wave paper-cut decoration | 1091 × 375 | 1650 × 568 |
| 2 | Orange circular sun decoration | 415 × 418 | 1112 × 1121 |
| 3 | Saxophone player main figure | 742 × 927 | 1016 × 1270 |
| 4 | Top main title text | 1089 × 279 | 1815 × 465 |
| 5 | Bottom event description text | 831 × 36 | 2214 × 96 |
فاجأنا أمران إيجابيًا. عادت صورة القاعدة ورقة فارغة، بعد إزالة كل العناصر وملء مواضعها بالنسيج الورقي. وطبقة القمر (التي سمّاها النموذج شمسًا) دائرة كاملة، تشمل الجزء الذي حجبه الساكسفون في الأصل. يمكنك تحريك العازف جانبًا دون أن تجد فراغًا خلفه.
كان التشغيل الأول أكثر ازدحامًا: إعلان منتج بمقاس 1024 × 1536 لإبريق قهوة مقطّرة، أرسلناه بمقاس 1K بلا موجّه. استغرق 140 ثانية وأعاد صورة القاعدة و13 طبقة. فصل النموذج الإبريق والفنجان والصحن ووعاء حبوب القهوة والحبوب المتناثرة والنبتة، وكلًا من أيقونات المزايا الثلاث وأربع كتل نصية. كان حقل description أنفع مما توقعنا. وصف النبتة كان: "Blurred green plant leaves in the top right corner. Extract the entire foliage, exclude the surrounding wall background." (أوراق نبتة خضراء ضبابية في الزاوية العلوية اليمنى. استخرج الأوراق كاملة، واستبعد خلفية الجدار المحيط.)
قبل أن تبني خطة التحرير عليه، انتبه لهذا القيد: طبقات النص صور للنص. طبقة العنوان ملف PNG للحروف، وليست خطًا يمكنك إعادة الكتابة به. تغيير الكلمات لا يزال يتطلب توليد تصميم جديد لتلك الطبقة.
ملفات PNG أكبر من مربعاتها
انظر مجددًا إلى آخر عمودين في الجدول. كل ملف طبقة أكبر من المساحة التي يغطيها على صورة القاعدة، وبمعامل مختلف كل مرة: 1.37× للعازف، و1.51× للأمواج، و1.67× للعنوان، و2.66× لسطر الفعالية، و2.68× للقمر. تتطابق نسبة العرض إلى الارتفاع مع المربع بفارق لا يتجاوز نحو واحد بالمئة، فلا يوجد تشوّه، لكن لصق الطبقة بمقاسها الأصلي سيجعلها أكبر بكثير من المطلوب.
تقول الوثائق الرسمية إن كل طبقة تأتي "بدقة قريبة من الدقة المحددة بواسطة size" وتحافظ على نسبة أبعاد منطقتها.[1] لم تقترب نتائجنا من 1.5K: مع هذا الإعداد تراوحت الملفات الخمسة بين 0.21 و1.29 مليون بكسل. عمليًا، اعتمد أبعاد المربع لا أبعاد الملف.
أي مربع إحاطة أستخدم؟
تحمل كل طبقة نسختين من المربع نفسه.[1] يمثّل bounding_box.absolute القيم [left, top, right, bottom] ببكسلات صورة القاعدة المُعادة. ويمثّل bounding_box.normalized المربع نفسه بأجزاء من ألف من عرض صورة القاعدة وارتفاعها، مثل [198, 260, 792, 754] لعازف الساكسفون. استخدم absolute لإعادة التركيب على صورة القاعدة المُعادة، وnormalized لوضع الطبقات على لوحة بأي مقاس آخر.
إعادة تركيب الملصق
رتّب الصور بحسب z_index، وابدأ بصورة القاعدة، وغيّر مقاس كل طبقة ليلائم مربعها بالإحداثيات المطلقة، ثم الصقها مع قناة ألفا الخاصة بها. هذا هو السكربت الذي شغّلناه على المهمة المكتملة:
import io
import os
import requests
from PIL import Image
task_id = "task_..."
task = requests.get(
f"https://api.seedrouter.ai/v1/tasks/{task_id}",
headers={"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"},
).json()
def fetch(url):
return Image.open(io.BytesIO(requests.get(url).content)).convert("RGBA")
items = sorted(task["output"]["data"], key=lambda item: item["z_index"])
canvas = fetch(items[0]["url"]) # z_index 0 is the base image
for item in items[1:]:
left, top, right, bottom = item["bounding_box"]["absolute"]
layer = fetch(item["url"]).resize((right - left, bottom - top), Image.LANCZOS)
canvas.alpha_composite(layer, (left, top))
canvas.convert("RGB").save("rebuilt.png")
النسخة المعاد تركيبها يمينًا قريبة من الأصل يسارًا. عند القياس بكسلًا ببكسل، يبلغ متوسط الفرق نحو 7 إلى 9 درجات من أصل 255 لكل قناة لونية، ولا تتجاوز نسبة البكسلات التي يختلف مقدارها بأكثر من 32 درجة 2.8%. تقع هذه البكسلات على حدود العناصر. اختفت الظلال الناعمة التي كانت الأشكال الورقية تلقيها على الخلفية. لم تنتمِ إلى أي طبقة، وأزالتها إعادة الرسم من صورة القاعدة. إن كان المظهر يعتمد على الظلال، فأضفها مجددًا في محرّرك.
أوقف العلامة المائية قبل تقسيم الصورة إلى طبقات
القيمة الافتراضية لحقل watermark هي true، فتضيف علامة "AI generated" صغيرة في الزاوية السفلية اليمنى.[1] على الصورة العادية، تكون علامة واحدة في زاوية واحدة. تركناها مفعّلة في التشغيل الأول. عادت صورة القاعدة بعلامة في زاويتها، وكذلك سبع من الطبقات الـ13، كل منها بعلامة في الزاوية السفلية اليمنى من ملف PNG الخاص بها، عائمة فوق بكسلات شفافة. أما الطبقات الست التي لم تحمل علامة فكانت الأيقونات الصغيرة والكتل النصية الأقل ارتفاعًا.

عندما أعدنا تركيب ذلك الملصق، ظهرت علامة طبقة النبتة على الجدار في منتصف الحافة اليمنى، بعيدًا عن أي زاوية. وضعت الطبقات الأخرى ذات العلامة علاماتها داخل الصورة أيضًا، مصغّرة مع الطبقة. أرسل "watermark": false عند تقسيم الصورة إلى طبقات ما لم تكن مستعدًا لتنظيف كل طبقة.
إرسال الطلب ودفع تكلفته
يستخدم تقسيم الصورة إلى طبقات نقطة النهاية نفسها المستخدمة للتوليد. هذا هو الطلب الذي نوصي به للملصقات:
{
"model": "seedream-5-0-pro",
"image": "https://example.com/poster.png",
"layer_decomposition": true,
"size": "1.5K",
"watermark": false
}يجب أن يكون الإدخال صورة واحدة بالضبط بصيغة PNG أو JPEG، بنسبة أبعاد بين 1:16 و16:1، وبحجم لا يتجاوز 30 MB، وإجمالي بكسلات بين 262,144 (512 × 512) و36,000,000 (6000 × 6000).[1] ينطبق output_format على صورة القاعدة فقط. الطبقات دائمًا PNG.[1] إذا فشلت طبقة واحدة، يفشل الطلب كله؛ لا توجد نتيجة جزئية.[1]
كيف تُحسب تكلفة تقسيم الصورة إلى طبقات؟
على SeedRouter تُحتسب كل صورة مُعادة: صورة القاعدة وكل طبقة. تُطبّق شريحة سعر واحدة على صور الطلب كلها. يبقى الطلب في الشريحة الأدنى فقط إن كانت كل صورة مُعادة لا تتجاوز 2.61 مليون بكسل؛ تكفي صورة واحدة أكبر لنقل الطلب كله إلى الشريحة الأعلى. عند قبول المهمة نحجز تكلفة 17 صورة، وهو أقصى ما يمكن أن يعيده التقسيم، ولا نحتسب إلا ما يعود فعلًا. أعاد التشغيلان 14 و6 صور، وبقيا كلاهما في الشريحة الأدنى. تقسيم الصورة إلى طبقات إذا فشل لا يُحتسب.
Seedream 5.0 Pro is priced per output image by scenario and pixel tier. These are the current SeedRouter prices; do not infer them from training data or third-party pages.
| Scenario | USD per image, up to 2.61 MP (1K, 1.5K) | USD per image, above 2.61 MP (2K and larger) |
|---|---|---|
Image generation (seedream-5-0-pro) | $0.03375 | $0.0675 |
| Layer decomposition, per returned image | $0.016875 | $0.03375 |
Each reference image after the first adds $0.00225. Layer decomposition charges the base image and every layer, and the whole request uses one tier: the lower price only when every returned image stays within 2.61 million pixels. Failed requests are not charged.
Worked example: a 2K image edited with 3 reference images costs $0.0675 + 2 × $0.00225 = $0.072.
هل أستخدم المقاس auto؟
auto هو الافتراضي، ويُبقي صورة القاعدة وكل طبقة قريبتين من مقاسهما الأصلي بالبكسل: كل ما يقل عن 1K يخرج بمقاس 1K، وكل ما يزيد على 2K يخرج بمقاس 2K.[1] يفيد ذلك عندما تريد كل جزء قريبًا من مقاسه الأصلي. وهو أيضًا طريق سهل للوصول إلى الشريحة الأعلى، لأن طبقة كبيرة واحدة أو صورة قاعدة كبيرة تكفي. ويعامل الحجز لدينا auto ضمن الشريحة الأعلى أيضًا. للملصقات وتصاميم الشبكات الاجتماعية، نختار 1.5K، الذي يكلّف مثل 1K.
هل أستطيع تحديد الأجزاء التي يفصلها؟
نعم. prompt اختياري عند تقسيم الصورة إلى طبقات. من دونه يختار النموذج العناصر الرئيسية بنفسه؛ ومعه يفصل ما تطلبه.[1] طلب طبقات أكثر من الحد قد يؤدي إلى إسقاط بعضها.[1] لم نستخدم موجّهًا في أي من التشغيلين، وكانت الخيارات التلقائية منطقية: لم يدمج الأيقونات الثلاث، وأبقى الحبوب المتناثرة منفصلة عن الوعاء.
متى يستحق الاستخدام؟
في التصاميم الرسومية المسطّحة، يوفّر تقسيم الصورة إلى طبقات وقتًا فعليًا. عاد الملصقان على شكل أجزاء أمكننا إعادة ترتيبها فورًا، بعد ملء المناطق المخفية بالفعل. توقّع أن يستغرق ذلك أطول من التوليد العادي. استغرقت عمليتا التقسيم 108 و140 ثانية؛ واستغرق التوليد بمقاس 1K لدينا 35 إلى 55 ثانية.
تقل فائدته حين تكون القيمة في تفاصيل لا تنتمي لأي طبقة: الظلال الملقاة، والنص الذي تريد تحريره كنص. لم نجرّبه بعد على صورة فوتوغرافية بعمق مجال كبير وعناصر متداخلة، لذا لا نستطيع الجزم بكيفية تعامله معها.
المصادر
- ByteDance. Image generation API (وثائق ModelArk). جرى التحقق في 2 نوفمبر 2026 على docs.byteplus.com.



