واجهة برمجة التطبيقات مرجع
النهايات، المفاتيح، والقيود. مرجع لEndpoints الذكاء الاصطناعي لصور — إنشاء، إزالة، توسيع — مع المصادقة، CORS، وحدود المعدل.
exposes Morph مجموعة من نقاط الاتصال المدعمة بالذكاء الاصطناعي على api.morph.cool. تُستخدم هذه النقاط لتشغيل ميزات الذكاء الاصطناعي في Artboard ويمكن استخدامها بواسطة المطورين لبناء التكاملات.
https://api.morph.coolجميع الطلبات تستخدم HTTPS. تُرفض الطلبات التي تستخدم HTTP.
المصادقة
لا تتطلب نقاط النهاية لصورة الذكاء الاصطناعي (الإنشاء، الإزالة، التوسيع) مصادقة للاستخدام الأساسي. تُحدَّد هذه النقاط بالحد الأقصى حسب عنوان IP. تتطلب النقاط التي تُعدِّل البيانات المستخدم (التحويلات، الجرس، التصنيف) رمز JWT يُمرَّر كـ Bearer token في رأس Authorization.
Authorization: Bearer <jwt_token>
حدود المعدل
جميع النقاط النهائية محدودة بمعدل لمنع الإساءة. يُرجع تجاوز الحد 429 مع خطأ JSON.
- نهايات Artboard AI — 10 طلبات في الدقيقة لكل عنوان IP (مدعومة بـ KV).
- تسجيل التحويلات — يتطلب تسجيل الدخول، ولا يوجد حد منفصل لعنوان IP.
- إبلاغ الأخطاء — 30 طلبًا في الدقيقة لكل عنوان IP.
- قائمة الانتظار — 10 طلبات في الدقيقة لكل عنوان IP.
إنشاء صورة
POST /artboard/generate
توليد الصور من النص وإعادة التعبئة. أرسل صورة مساحة عمل مع قناع لملء المناطق المحددة بناءً على مطالبة نصية. كما يدعم وضع وصف يُعيد نصًا يصف الصورة.
| حقل | النوع | الوصف |
|---|---|---|
| مُطالَب | سلسلة نصية | وصف نصي لما يجب إنشاؤه. غير مطلوب في وضع الوصف. |
| canvasImageمطلوب | سلسلة نصية | صورة PNG مشفرة بـ Base64 لمحتوى اللوحة. |
| maskImage | سلسلة نصية | صورة PNG مشفرة بـ Base64 لقناع التحديد. الأبيض = المنطقة التي يجب ملؤها. مطلوب لـ inpainting، غير مطلوب لـ describe. |
| الوضع | سلسلة نصية | اضبط على "describe" لوضع وصف الصورة. اتركه فارغًا للإنشاء. |
استجابة التوليد:
{
"result": "<base64_png_string>"
}
وصف الاستجابة:
{
"result": "A detailed text description of the image content."
}
التحقق: في وضع الوصف، يجب أن يكون PNG بحجم لا يقل عن 64×64 بكسل. تُرجع الصور الأصغر خطأً REGION_TOO_SMALL.
إزالة الكائن
POST /artboard/remove
إزالة كائنات مدعومة بالذكاء الاصطناعي. ارسم على الكائن في القناع ويعيد النموذج ملء المنطقة بمحتوى مناسب سياقيًا.
| حقل | النوع | الوصف |
|---|---|---|
| canvasImageمطلوب | سلسلة نصية | صورة PNG مشفرة بـ Base64 للوحة الرسم. |
| maskImageمطلوب | سلسلة نصية | قناع PNG مشفر بـ Base64. الأبيض = المنطقة التي سيتم إزالتها. |
الرد:
{
"result": "<base64_png_string>"
}
توسيع توليدي
POST /artboard/expand
امتداد القماش في اتجاه معين. يملأ الذكاء الاصطناعي المنطقة الجديدة بمحتوى يتطابق مع الصورة الموجودة. يستخدم تمديد بكسل الحافة للسياق.
| حقل | النوع | الوصف |
|---|---|---|
| canvasImageمطلوب | سلسلة نصية | صورة PNG مشفرة بـ Base64. يجب أن تكون بقياس 64 إلى 4096 بكسل على كل جانب. |
| الاتجاهمطلوب | سلسلة نصية | واحد من: left, right, top, bottom, all. |
| expandPxمطلوب | number | البكسلات لتوسيعها. النطاق: 64–512. |
| مُطالَب | سلسلة نصية | مُلخّص نصي اختياري لتوجيه المحتوى المُنشأ. |
الرد:
{
"result": "<base64_png_string>"
}
التحقق: يجب أن تكون الصورة المصدرية بعرض وارتفاع بين 64 و 4096 بكسل. يجب ألا يتجاوز القماش الموسّع 4096 بكسل في أي بعد. تُعيد الانتهاكات إرجاع أخطاء REGION_TOO_SMALL أو CANVAS_TOO_LARGE.
استجابة الأخطاء
جميع النقاط النهائية تعيد استجابات خطأ بتنسيق JSON تحتوي على حقل error:
{
"error": "RATE_LIMITED"
}
أكواد الأخطاء الشائعة:
- RATE_LIMITED — عدد كبير جدًا من الطلبات. انتظر وحاول مرة أخرى.
- REGION_TOO_SMALL — أبعاد الصورة أقل من الحد الأدنى 64×64 بكسل.
- CANVAS_TOO_LARGE — تجاوز الحجم المُوسَّع للCanvas حد 4096 بكسل.
- MISSING_FIELDS — لم يتم تقديم حقل مطلوب.
ملاحظات
- نموذج الذكاء الاصطناعي — تستخدم جميع نقاط النهاية لـ inpainting Stable Diffusion v1.5 عبر Cloudflare Workers AI. تُحدَّد خطوات الاستدلال عند 20.
- صيغة الصورة — يجب أن تكون جميع الصور بصيغة PNG مُشفَّرة بـ base64.
- الخصوصية — يتم معالجة الصور في الذاكرة وليست مخزنة أو مُسجَّلة أو تُستخدم لتدريب النماذج.
- CORS — تقبل النقاط النهائية الطلبات من
morph.cool،www.morph.cool، وlocalhost:5173. - الوقت المحدد — يجب على العميل ضبط وقت انتظار مدته 30 ثانية. نادرًا ما تتجاوز المعالجة من جانب الخادم 15 ثانية.