API لمولّد صور الملف الشخصي بالذكاء الاصطناعي: ابنِ تطبيق صور شخصية
ابنِ تطبيق صور شخصية يعمل فعليًا فوق API لمولّد صور الملف الشخصي بالذكاء الاصطناعي. يعرض هذا المقال تدفق الطلبات، والنماذج التي تستحق الاستخدام، واختيارات الخلفيات، وكود Python، وفحوصات الجودة، وقواعد الموافقة التي تحمي صور العملاء.
ارفع صورة شخصية، واحصل في المقابل على صورة بورتريه جاهزة لغرفة الاجتماعات. هذا هو الوعد وراء كل API لمولّد صور الملف الشخصي بالذكاء الاصطناعي، وبناؤه أسهل بكثير مما يتوقعه معظم المطورين. لا تحتاج إلى تدريب نموذج للوجوه، ولا إلى استئجار وحدات GPU، ولا إلى حجز مصوّر لكل عميل. يرسل تطبيقك صورة واحدة وتعليمة واحدة إلى نقطة نهاية HTTP، ثم ينتظر بضع ثوانٍ، ويستقبل صورة نهائية جاهزة لملف LinkedIn الشخصي أو صفحة الفريق أو الحزمة الصحفية.
يستعرض هذا المقال عملية البناء كاملة: مسار الطلبات، والنماذج التي تستحق الاستخدام، وشيفرة Python عاملة، وفحوصات الجودة التي تمنع وصول الصور الضعيفة إلى العملاء، وقواعد الموافقة التي تحافظ على أمان المنتج. كل ما يرد أدناه مبني على API المطورين في PicassoIA وعلى النماذج المدرجة في المنصة.
💡 النسخة المختصرة: استضف الصورة الشخصية على مساحة تخزينك الخاصة، ثم استدعِ picassoia/picassoia-image-editor-pro مع تلك الصورة بوصفها image 1، واستعلم عن التنبؤ حتى ينجح، ثم شغّل فحصًا سريعًا، وبعدها اعرض النتيجة.
لماذا البناء على API؟
تكلّف الصور الشخصية في الاستوديو مالًا ووقتًا حقيقيين. يحجز المصوّر موعدًا، ويعمل المحرر على الصور لأيام، ويحتاج فريق عن بُعد من أربعين شخصًا إلى أربعين موعدًا. يحوّل تطبيق الصور الشخصية كل ذلك إلى نموذج رفع وزر واحد. وما يجعله عملًا تجاريًا لا مجرد عرض تجريبي هو التحكم: واجهتك الخاصة، وخلفياتك، وسعرك، وقواعد بياناتك.
من يحتاج إلى هذا
الطلب أوسع مما يظنه الناس. هذه هي المنتجات التي تستمر في طلب ميزة الصور الشخصية:
أدوات الموارد البشرية والتأهيل التي تحتاج إلى أسلوب صور موحّد لكل موظف جديد
منشئو السير الذاتية ولوحات الوظائف حيث تغيّر صورة الملف الشخصي شكل الصفحة
منصات المبدعين والعاملين لحسابهم التي تريد صورة رمزية متقنة عند التسجيل
الوكالات التي تسلّم حزم صور شخصية للعملاء من الشركات
برامج الفعاليات التي تجمع صور المتحدثين في كل ظروف الإضاءة الممكنة
البناء أم الشراء
الخيار
وقت الإعداد
التحكم
الاستخدام الأمثل
موقع جاهز لصور الملف الشخصي
دقائق
منخفض
صورة شخصية واحدة
غلاف بلا كود حول نموذج
ساعات
متوسط
الأدوات الداخلية والاختبارات السريعة
تطبيقك الخاص عبر API
بضعة أيام
تحكم كامل في التصميم والتسعير والبيانات
المنتجات والمنصات
إذا كنت تحتاج إلى صورتك الشخصية فقط، فاستخدم موقعًا جاهزًا. أما إذا كانت صور الملف الشخصي ميزة ضمن منتج تبيعه، فإن API يتفوق في كل محور يهم بعد الإطلاق.
تروي الحسابات القصة نفسها. يتقاضى المصوّر أجره عن كل شخص، لذا تزداد التكلفة مع كل عميل تضيفه. أما استدعاء API فهو برمجيات: العمل الذي يُنجز من أجل أول صورة شخصية هو نفسه الذي يخدم الصورة العشرة آلاف، ويتحسن هامشك كلما زاد الاستخدام بدلًا من أن ينكمش.
تدفق الطلبات في خمس خطوات
تعمل كل تطبيقات الصور الشخصية، مهما بلغت واجهتها من الصقل، بالحلقة نفسها. واجهة PicassoIA API غير متزامنة وتعمل على غرار Replicate: تنشئ تنبؤًا، ثم تستعلم عنه، ثم تقرأ النتيجة.
اجمع الصورة الشخصية في الواجهة الأمامية لتطبيقك.
تحقق من الصورة وخزّنها لتحصل على رابط يستطيع API جلبه.
أنشئ التنبؤ عبر طلب POST إلى نقطة نهاية النموذج.
استعلم عن التنبؤ حتى تصبح حالته نهائية.
تحقق من رابط المخرجات وسلّمه.
عنوان URL الأساسي هو https://api.picassoia.com/v1، وكل طلب يحمل ترويسة Authorization: Bearer pia_sk_.... تنشئ هذه المفاتيح السرية من صفحة API على picassoia.com، ويمكن للحساب أن يحتوي على اثنين منها، فيخدم أحدهما بيئة الإنتاج بينما يخدم الآخر بيئة الاختبار التجريبي.
الرفع والتحقق
ارفض المدخلات السيئة مبكرًا. اقبل صيغ JPEG وPNG وWebP، واحرص على أن يبقى الملف أقل بكثير من حد حجم جسم الطلب البالغ 10 ميغابايت، واضبط حدًا أدنى للدقة حتى لا تكون الوجوه أصغر من طابع بريدي. ثم وجّه المستخدم على الشاشة نفسها: قف أمام النافذة، وأمسك الهاتف على مستوى العين، ولا تُدخل في الإطار إلا شخصًا واحدًا، ولا ترتدِ نظارات شمسية.
تلميح من عشر ثوانٍ على شاشة الرفع يوفّر تذاكر دعم أكثر من أي إعداد للنموذج. فالصورة الشخصية الضبابية في ممر مظلم تنتج صورة شخصية ضبابية في كل مرة.
إنشاء التنبؤ
تتبع نقاط نهاية النماذج نمطًا واحدًا: POST /v1/models/{owner}/{name}/predictions. يغلّف الجسم كل معامل داخل كائن input. بالنسبة إلى الصورة الشخصية، يحتوي الإدخال على رابط الصورة وتعليمة نصية. تستقبل فورًا كائن تنبؤ يحمل id وstatus، قبل وقت طويل من وجود الصورة.
الاستعلام ثم التخزين
استدعِ GET /v1/predictions/{id} كل ثانيتين أو ثلاث حتى تصبح الحالة succeeded أو failed أو canceled. إذا أغلق العميل الصفحة، فإن POST /v1/predictions/{id}/cancel يوقف المهمة. وعند النجاح، نزّل المخرجات وانسخها إلى مساحة تخزينك الخاصة حتى لا يعتمد منتجك أبدًا على رابط طرف ثالث.
💡 قد يستغرق التنبؤ حتى 3 ساعات من جهة الخادم. يجب أن تتوقف واجهتك قبل ذلك بكثير. تنتهي التعديلات عادةً خلال ثوانٍ، لذا تكفي مهلة من 90 ثانية على جانب العميل مع زر إعادة محاولة واضح.
اختر نماذج تناسب الغرض
تعرض API وموصل MCP حاليًا أربعة نماذج. اثنان منها مهمان لصور الملف الشخصي، وبقية المنصة تساعدك أثناء بناء النماذج الأولية في المتصفح.
توجد آخر ثلاثة نماذج في تطبيق الويب. تحقّق من توثيق API قبل ربطها بالكود، لأن API العام يعرض أربعة نماذج اليوم.
تستحق الخلفيات قرارًا خاصًا بها، لأنها تغيّر طريقة ظهور الصورة داخل دائرة الملف الشخصي. يمنح تعيين بسيط مستخدميك افتراضيًا معقولًا:
حالة الاستخدام
الخلفية
لماذا تنجح
LinkedIn وطلبات الوظائف
رمادي محايد
هادئة، وتبدو جيدة بالحجم المصغّر
دليل الشركة
أبيض
متطابقة عبر الفريق كله
المحافظ والأعمال الإبداعية
فحمي
تضيف عمقًا دون تشتيت
المبيعات والعقارات
مكتب ضبابي
تبدو ودودة وقريبة
المحرر أم تحويل النص إلى صورة
يريد العميل أن يبدو كما هو تمامًا، لكن بإضاءة أفضل وملابس أحسن. يخترع تحويل النص إلى صورة شخصًا جديدًا، وهذا هو المنتج الخاطئ. يحتفظ نموذج التعديل بالوجه من الصورة الشخصية ويغيّر كل ما حوله، لذلك يُعد PicassoIA Image Editor Pro الأداة الأساسية في هذا العمل. استخدم PicassoIA Image للصور التي يحتاجها تسويقك الخاص: عينات صفحات الهبوط، وبيانات الاختبار، وخلفيات المكاتب الفارغة.
التنظيف بعد التعديل
خطوتان صغيرتان ترفعان جودة النتيجة. يمنح Bria Remove Background العملاء قصاصة شفافة يمكنهم وضعها على لون شركتهم. ويدفع Topaz Image Upscale الصورة الشخصية المخصصة للويب نحو دقة الطباعة. قدّمهما كإضافات اختيارية بعد أن تبدو النتيجة الرئيسية صحيحة.
ارفع الصورة الشخصية بوصفها صورة المرجع الأولى. يقبل النموذج حتى ثلاث صور، والأولى هي الأساسية.
اكتب التعليمة، وأشر إلى الصورة الشخصية بوصفها الصورة 1.
اختر نسبة العرض إلى الارتفاع وصيغة الإخراج والجودة.
ولّد الصورة، وقارن النسختين إذا طلبت نسختين، ثم نزّل الأفضل.
تريد عدم كتابة أي أوامر نصية؟ يأخذ Professional Headshot صورة واحدة واختيار خلفية: أبيض، أو أسود، أو محايد، أو رمادي، أو مكتب. كما يوفر 14 إعدادًا مسبقًا لنسبة العرض إلى الارتفاع، وإعدادًا للجنس لدقة أفضل في ملامح الوجه، وقيمة بذرة للنتائج القابلة للتكرار، وإخراجًا بصيغة PNG أو JPG. وهو أسرع طريقة لترى شكل كل خلفية قبل أن تبني منتقي الخلفيات الخاص بك.
الإعدادات المهمة
المعامل
وظيفته
القيمة الافتراضية المعقولة
images
حتى 3 مراجع، والأولى هي الأساسية
الصورة الشخصية أولًا
prompt
التعديل، ويشير إلى image 1 و image 2
أقل من 4,000 حرف
aspect_ratio
شكل المخرجات
match_input_image
output_format
WebP أو JPG أو PNG
PNG للتسليم
output_quality
من 0 إلى 100، لصيغ JPG و WebP فقط
95
num_outputs
1 أو 2 من النسخ البديلة لكل استدعاء
2 لزر إعادة المحاولة
seed
يكرر النتيجة بالضبط
خزّنها مع المهمة
أمر نصي يعمل
ضع الهوية أولًا، ثم المشهد. سمِّ الملابس والخلفية والإضاءة حتى لا يضطر النموذج إلى التخمين:
Turn image 1 into a professional corporate headshot of the same person.
Keep the face, skin tone, hair and expression natural and unchanged.
Dark navy blazer over a white shirt, seamless soft grey studio backdrop,
soft main light from the left, gentle fill from the right, 85mm portrait
lens look, natural skin texture with visible pores, sharp eyes.
تجنّب الطلبات الغامضة مثل "اجعلني أبدو رائعًا". إنها تدعو إلى تنعيم البشرة، والبشرة المنعّمة هي أسرع طريق إلى نتيجة بلاستيكية واضحة الزيف.
كود عملي بلغة Python
تتبع المقتطفات التالية شكل Replicate الموصوف أعلاه. تتضمن الوثائق الرسمية على picassoia.com/en/api أمثلة بلغات Python وNode وcURL، فتأكد من أسماء الحقول هناك قبل النشر.
الدالة الأساسية
import os
import time
import requests
BASE = "https://api.picassoia.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['PICASSOIA_TOKEN']}"}
MODEL = "picassoia/picassoia-image-editor-pro"
def make_headshot(selfie_url: str, backdrop: str = "soft grey studio backdrop") -> str:
prompt = (
"Turn image 1 into a professional corporate headshot of the same person. "
"Keep the face, skin tone and hair natural and unchanged. "
f"Dark navy blazer, {backdrop}, soft main light from the left, "
"85mm portrait lens look, natural skin texture."
)
created = requests.post(
f"{BASE}/models/{MODEL}/predictions",
headers=HEADERS,
json={"input": {
"images": [selfie_url],
"prompt": prompt,
"output_format": "png",
}},
timeout=30,
)
created.raise_for_status()
prediction = created.json()
deadline = time.time() + 90
while prediction["status"] not in ("succeeded", "failed", "canceled"):
if time.time() > deadline:
requests.post(f"{BASE}/predictions/{prediction['id']}/cancel", headers=HEADERS, timeout=30)
raise TimeoutError("Headshot took too long")
time.sleep(3)
prediction = requests.get(
f"{BASE}/predictions/{prediction['id']}", headers=HEADERS, timeout=30
).json()
if prediction["status"] != "succeeded":
raise RuntimeError(prediction.get("error") or prediction["status"])
return prediction["output"][0]
يأتي التوكن من متغير بيئة، وليس من الواجهة الأمامية أبدًا. إذا ضُمّن في حزمة تطبيق للهاتف أو في نص برمجي للمتصفح، فيمكن لأي شخص قراءته.
احترم حد المهام الخمس
يشغّل الحساب 5 تنبؤات في الوقت نفسه، مشتركة بين كل بيانات الاعتماد وكل اتصالات MCP. ستصطدم ذروة يوم الإطلاق بهذا الحد، لذا ضع المهام في طابور من جهتك:
import asyncio
slots = asyncio.Semaphore(4) # leave one slot for retries
async def run_job(selfie_url: str) -> str:
async with slots:
return await asyncio.to_thread(make_headshot, selfie_url)
احفظ كل مهمة في جدول مع حالتها، ثم أظهر للعملاء ترتيبهم في الطابور. الطابور المرئي يبدو سريعًا، أما دائرة التحميل المتجمدة فتبدو معطلة.
فحوصات الجودة قبل التسليم
الصورة الشخصية التي تبدو صحيحة بنسبة 95 في المئة ما تزال طلب استرداد. يلاحظ الناس الوجوه بحساسية شبه خارقة، لذا افحص كل نتيجة قبل أن تصل إلى العميل.
التطابق والبشرة
راجع هذه القائمة على مجموعة اختبار من خمسين صورة سيلفي قبل الإطلاق:
شكل الوجه ولون العينين يطابقان الصورة الأصلية
تحتفظ البشرة بمسامها وخطوطها الدقيقة ولونها، دون ضبابية شمعية
انظر إلى النتيجة بالحجم المصغّر وبالحجم الكامل. كثير من العيوب لا يظهر إلا في أحد الحجمين.
ابنِ مجموعة الاختبار عن قصد. ضمّن الغرف الخافتة والنظارات واللحى والشعر الطويل والقبعات والأشخاص المصورين من أسفل قليلًا. سجّل قيمة البذرة والأمر النصي لكل تشغيل، حتى تستطيع، عندما يبلغ عميل عن صورة شخصية غريبة، إعادة إنتاجها في دقيقة وإصلاح التعليمة بدلًا من التخمين.
الفحص الآلي
تساعد النماذج اللغوية الكبيرة في موضعين. أولًا، يمكنها تحويل اختيارات الاستمارة (الخلفية والملابس والمزاج) إلى التعليمة النهائية، فيستطيع أصحاب المنتج تعديل الصياغة دون نشر جديد. Gemini 3.5 Flash خيار سريع لهذه المهمة، وClaude Sonnet 5 مناسب للأدلة الأطول. ثانيًا، يمكن استخدام Llama Guard 4 12B لفحص النصوص الحرة التي يكتبها المستخدمون في حقول التعليمات المخصصة.
لذا في هذه الخطوات، استدعِ مزوّد النموذج اللغوي الكبير (LLM) الخاص بك، أو اختبر الأوامر النصية أولًا في تطبيق PicassoIA على الويب. يعرض API العام أربعة نماذج فقط.
احتفظ أيضًا ببديل بشري. امنح كل نتيجة زر حاول مرة أخرى يشغّل الصورة الشخصية نفسها ببذرة جديدة، ورابط إبلاغ يتيح للعميل الإبلاغ عن صورة سيئة.
قواعد الموافقة والخصوصية
الوجه بيانات شخصية. تعامل معه بهذه الطريقة منذ اليوم الأول، لأن تطبيق الصور الشخصية الذي يسيء التعامل مع الصور لا يحصل على فرصة ثانية.
الموافقة والتخزين
اطلب من المستخدمين تأكيد أن الصورة تُظهرهم هم، أو شخصًا وافق على ذلك
احذف الصورة الشخصية الأصلية بمجرد تسليم الصورة النهائية
لا تعِد استخدام صور العملاء في عينات أو تسويق دون إذن كتابي
ضع علامة توضح أن الناتج مولّد بالذكاء الاصطناعي داخل تطبيقك، لأن بعض المنصات وأصحاب العمل يهتمون بذلك
انشر صفحة خصوصية بلغة بسيطة توضح المدة التي تُحفظ فيها الملفات
حدود يجب التخطيط حولها
الحد
القيمة
ما الذي تفعله
التنبؤات المتزامنة
5 لكل حساب
ضع المهام في طابور واحصر العمال عند 4
نص الطلب
10 MB
غيّر حجم الصور الشخصية الكبيرة في المتصفح
طول الأمر النصي
4,000 حرف
ضع حدًا لأداة بناء التعليمات لديك
مهلة التنبؤ
3 ساعات
ألغِ المهام المتوقفة بنفسك
بيانات اعتماد API
2 لكل حساب
واحد للإنتاج وواحد للاختبار التجريبي
💡 تحقق من التسعير قبل أن تَعِد بسعر. تصف صفحة API التنبؤات حاليًا بأنها مجانية، بينما تدرج صفحة الأسعار وصول API ضمن خطط Pro+ و Elite و Infinite. اقرأ الصفحتين قبل أن تحدد ما يدفعه عملاؤك.
أنشئ أول صورة شخصية لك اليوم
تجاوز وثائق التخطيط. افتح PicassoIA Image Editor Pro، وارفع صورة سيلفي واحدة، وجرّب ثلاث نسخ من الأمر النصي أعلاه: خلفية رمادية، وخلفية بيضاء، وخلفية مكتب. اختر الفائز، وانسخ صياغته إلى دالة Python، وستحصل على العمود الفقري لمنتج يعمل.
بعد ذلك، أضف شاشة رفع، وطابورًا، وزر إعادة المحاولة، ومربع اختيار للموافقة. هذه هي القائمة كاملة. أنشئ صورك الخاصة باستخدام Picasso IA، وطوّر الأوامر النصية حتى تبدو البورتريهات كصور فوتوغرافية حقيقية، وأطلق النسخة الأولى هذا الأسبوع. سيهتم عملاؤك بنتيجة نظيفة وسريعة أكثر بكثير من أي ميزة قد تضيفها لاحقًا.