
شنو هي خدمة Dress AI؟
Dress AI Service هي منصّة مفتوحة المصدر وكتخدم باستضافة ذاتية، مخصّصة للموضة وتحويل تصاور الحوايج لخزانة ملابس افتراضية قابلة للبحث. كتستعمل الذكاء الاصطناعي باش تصنّف الملابس، وتقترح التنسيقات، وتولّد تمثيلات بصرية للإطلالات المقترحة.
الخدمة كتخدم بواجهة خلفية مبنية بـ FastAPI، مع واجهة أمامية خفيفة باستعمال HTML وTailwind CSS. SQLite هي قاعدة البيانات الافتراضية، وPostgreSQL مدعومة كبديل. CLIP كيتكلف بفهم الصور، وStable Diffusion XL ولا FLUX يقدرو يولّدو تصاور للإطلالات. ويمكن اختيارياً استعمال Ollama باش يوفّر الاستدلال بنموذج لغوي محلي.
حيت التطبيق مستضاف ذاتياً، تصاور الخزانة ديالك كتبقى فالبنية التحتية اللي كتتحكم فيها، وما كتترفعش لخدمة Dress AI مستضافة.
المزايا الرئيسية
- وسم الخزانة بالذكاء الاصطناعي: اكتشاف الفئات، والألوان الغالبة، والنقوش، والأثواب، والستايلات، والفصول انطلاقاً من تصاور الملابس.
- اقتراحات الإطلالات: تنسيق الملابس حسب نظرية الألوان، والمناسبة، والطقس، والتشابه البصري، وقواعد الموضة.
- التصوّر الافتراضي: عرض الإطلالات المقترحة باستعمال Stable Diffusion XL ولا FLUX.
- اقتراحات مرتبطة بالطقس: اقتراح الأثواب والطبقات المناسبة باستعمال معلومات الطقس الفورية.
- بروفايلات المناسبات: إنشاء إطلالات للمناسبات العادية، وبيئات العمل، والمواعيد، والسفر، والحفلات، وحصص الجيم.
- تنظيم الخزانة: إنشاء المفضلات والمجموعات، ورفع العناصر على دفعات، واكتشاف العناصر المكررة.
- التحليلات: مراجعة الألوان الأكثر استعمالاً، والملابس قليلة الاستعمال، والنواقص المحتملة فـ الخزانة.
- المشاركة والتصدير: تصدير لوحات الإطلالات بصيغة PNG ولا PDF، أو إنشاء روابط قابلة للمشاركة.
- قابلية التوسعة: إضافة محركات اقتراح مخصّصة من خلال نظام الإضافات.
- واجهات متعددة: استعمال تطبيق المتصفح، أو REST API، أو PWA قابلة للتثبيت.
كيفاش كيخدم النظام
رقمنة الخزانة
ملي كترفع تصويرة ديال شي قطعة ملابس، الخدمة كتعالجها مسبقاً ويمكن لها اختيارياً تحيد الخلفية. من بعد، CLIP كيصنّف الخصائص بحال الفئة، واللون، والنقش، والثوب. التطبيق كيخزّن البيانات الوصفية الناتجة والتمثيل البصري باش يستعملهم فالبحث والاقتراحات من بعد.
اقتراحات الإطلالات
محرك الاقتراحات كيجمع بين القواعد والتشابه بين التمثيلات البصرية. الطبقة المبنية على القواعد كتاخذ بعين الاعتبار علاقات الألوان، وملاءمة المناسبة، وظروف الطقس. وتمثيلات CLIP كتعاون فالتعرّف على العناصر المتناسقة بصرياً. إلا كان Ollama مفعّل، نموذج لغوي محلي يقدر يزيد استدلالات وأوصاف باللغة الطبيعية.
التصوّر بالذكاء الاصطناعي
بالنسبة لأي اقتراح مختار، Dress AI Service كتبني prompt انطلاقاً من البيانات الوصفية ديال الملابس، وكتزيد negative prompt الهدف ديالو هو التقليل من العيوب الشائعة فالتوليد بالصور. Stable Diffusion ولا FLUX كيولّد الصورة قبل معالجة لاحقة اختيارية، بحال تكبير الدقة، وترميم الوجه، وتعديل تناسق الخلفية.
المتطلبات المسبقة
طريقة النشر الموصى بها كتستعمل Docker وDocker Compose. إلى بغيتي تثبيت مباشر، استعمل Python 3.11 ولا أحدث، وثبّت متطلبات المستودع. تحميل نماذج الذكاء الاصطناعي والصور المولّدة يقدرو يحتاجو مساحة تخزين وموارد حوسبة مهمّة، على حساب النماذج اللي غادي تفعّل.
غادي تحتاج حتى لـ Git باش تنسخ المشروع. مفتاح OpenWeather API اختياري وكيتيح اقتراحات مرتبطة بالطقس الفوري. Ollama اختياري وكيزوّد الاستدلال المحلي بـ LLM.
التثبيت باستعمال Docker
Docker هو أسهل طريقة باش تشغّل الخدمة كاملة. نسخ المستودع داخل مجلد سميتو dress-ai-service، وأنشئ ملف البيئة ديالك، وبنِ الحاويات:
git clone https://github.com/GangTailorUpgrade/undress-service.git dress-ai-service
cd dress-ai-service
cp .env.example .env
docker-compose up --buildمن بعد ما تبدا الخدمة، حل http://localhost:8080. توثيق Swagger التفاعلي ديال API متوفر فـ http://localhost:8080/docs، وReDoc متوفر فـ http://localhost:8080/redoc.
فالنشرات اللاحقة فالوضع المنفصل، شغّل:
docker-compose up -dالتثبيت باستعمال Python محلي
إلى بغيتي تشغّل التطبيق ولا تعدّلو بلا حاويات، أنشئ بيئة افتراضية وثبّت الاعتماديات ديال Python:
git clone https://github.com/GangTailorUpgrade/undress-service.git dress-ai-service
cd dress-ai-service
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtفـ Windows، فعّل البيئة بهاد الأمر:
venv\Scripts\activateحمّل نماذج الذكاء الاصطناعي المطلوبة قبل أول تشغيل:
python scripts/download_models.pyشغّل خادم التطوير FastAPI على المنفذ 8080:
uvicorn app.main:app --host 0.0.0.0 --port 8080 --reloadالخيار --reload مفيد أثناء التطوير حيت كيعاد تشغيل الخادم ملي كتتبدلو ملفات المصدر. غالباً خاصّو يتحيّد فالتشغيل الإنتاجي.
تهيئة الخدمة
التهيئة كتدار من خلال متغيرات البيئة. نسخ .env.example إلى .env، ومن بعد بدّل القيم على حساب النشر ديالك.
HOST=0.0.0.0
PORT=8080
DEBUG=false
DATABASE_URL=sqlite:///data/wardrobe.db
USE_LOCAL_MODELS=true
SDXL_MODEL_PATH=models/sd-xl-base
FLUX_MODEL_PATH=models/flux-schnell
CLIP_MODEL=openai/clip-vit-large-patch14
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2
OPENWEATHER_API_KEY=your_key_here
IMAGE_WIDTH=1024
IMAGE_HEIGHT=1024
NUM_INFERENCE_STEPS=20
GUIDANCE_SCALE=7.5
UPLOAD_DIR=data/uploads
MAX_UPLOAD_SIZE=20MBإعداد قاعدة البيانات
SQLite مناسب لإعداد بسيط بمثيل واحد، وكيخزّن بيانات الخزانة فـ data/wardrobe.db. باش تستعمل PostgreSQL، بدّل رابط قاعدة البيانات بسلسلة اتصال بحال:
DATABASE_URL=postgresql://user:pass@localhost/dressaiإعدادات توليد الصور
IMAGE_WIDTH وIMAGE_HEIGHT كيتحكمو فـ أبعاد الخرج. NUM_INFERENCE_STEPS كيحدّد عدد خطوات التوليد المهيّأ، بينما GUIDANCE_SCALE كيتحكّم فقيمة توجيه الـ prompt المهيّأة. الأبعاد الكبيرة وعدد الخطوات الأكثر كيحتاجو غالباً لحسابات أكثر، لذلك عيّنهم على حساب العتاد ديالك.
إعدادات التخزين
UPLOAD_DIR كيحدّد فين كيتخزنو صور الملابس المرفوعة. MAX_UPLOAD_SIZE كيحدّد الحجم الأقصى لكل رفع. تأكّد باللي المجلد المهيّأ دائم وقابل للكتابة من طرف التطبيق.
الاستعمال الأساسي
- حل الواجهة الأمامية: من بعد ما تبدا الخدمة، دخل لـ http://localhost:8080.
- رفع تصاور الملابس: زِد قطع ملابس بوحدها ولا جرّ وأسقط مجلداً للمعالجة دفعة وحدة.
- راجع الوسوم ديال الذكاء الاصطناعي: تأكّد من صنف القطعة المكتاشف، والألوان، والثوب، والنقشة، والستايل، والموسم.
- اختار المناسبة: اختار بروفايل بحال Casual، Business، Date Night، Gym، Travel، ولا Party.
- ولّد التوصيات: خلّي المحرّك يركّب قطع مناسبة من الخزانة باستعمال قواعد الموضة، والتشابه البصري، وأي معلومات مهيّأة على الطقس.
- صوّر اللوك: طلب تصيير مولّد بالذكاء الاصطناعي لتوصية معيّنة باستعمال نموذج Stable Diffusion ولا FLUX المهيّأ.
- نظّم النتيجة: حفظ اللوك فالمفضلة ولا فمجموعة، ولا استعمل اختيارات التصدير والمشاركة المتاحة.
استعمال REST API
الخدمة كتكشف على نقاط نهاية بإصدارات مختلفة تحت /api/v1. بدا بالتأكّد واش التطبيق خدام مزيان:
curl http://localhost:8080/api/v1/healthعرض قطع الملابس المخزّنة حالياً فـ الخزانة:
curl http://localhost:8080/api/v1/wardrobe/itemsجيب قطعة معيّنة بتعويض ITEM_ID بالمعرّف ديالها:
curl http://localhost:8080/api/v1/wardrobe/items/ITEM_IDحيد قطعة بطلب HTTP من النوع DELETE:
curl -X DELETE http://localhost:8080/api/v1/wardrobe/items/ITEM_IDعمليات الكتابة الرئيسية متاحة عبر نقاط النهاية هادو:
POST /api/v1/wardrobe/uploadكيرفع قطعة ملابس.POST /api/v1/outfits/generateكيولّد توصيات ديال الستايلات.POST /api/v1/outfits/{id}/visualizeكينشئ تصويرة للستايل.POST /api/v1/outfits/{id}/favoriteكيحفظ الستايل فالمفضلة.
استعمل Swagger UI فـ http://localhost:8080/docs باش تشوف الـ schema الدقيقة ديال الطلب اللي كتقبلها النسخة المثبّتة عندك، وتنّفذ الطلبات بشكل تفاعلي. بهاد الطريقة ما غاديش تفترض أسماء الحقول ديال payloads ديال الرفع، والتوصيات، ولا التصوير.
جيب تحليلات الخزانة باستعمال:
curl http://localhost:8080/api/v1/analytics/wardrobeاختيارات متقدمة للنشر
فعّل دعم NVIDIA GPU
المستودع فيه override خاص بـ Docker Compose للـ GPU. بدا النشر بجوج ملفات Compose:
docker-compose -f docker-compose.yml -f docker-compose.gpu.yml up -dزِد الاستدلال ديال LLM محلي باستعمال Ollama
باش تشغّل إعداد Compose اللي فيه Ollama، نفّذ:
docker-compose -f docker-compose.yml -f docker-compose.ollama.yml up -dطابق OLLAMA_URL وOLLAMA_MODEL فـ ملف البيئة مع خدمة Ollama والنموذج اللي ناوي تستعمل. Ollama اختياري؛ طبقات التوصية المبنية على القواعد وعلى الـ embeddings كتبقى جزء من النظام بلا بيه.
فعّل التوصيات اللي كتراعي الطقس
زِد مفتاح صالح فـ OPENWEATHER_API_KEY. من بعد، محرّك التوصيات يقدر ياخذ بعين الاعتبار الحالة الحالية ديال الطقس ملي كيختار الطبقات، والأثواب، وقطع الملابس المناسبة للجو.
بدّل ستايلات التصوير
Dress AI Service كيدعم تبديل النماذج لستايلات واقعية، وأنمي، وسكيتش. هيّأ المسارات المناسبة ديال النماذج المحلية، ومن بينها SDXL_MODEL_PATH وFLUX_MODEL_PATH، واستعمل أدوات التحكّم فالنموذج اللي كتوفرها نسخة الواجهة ولا API المثبّتة عندك.
نصائح عملية
- بدا بـ SQLite: استعمل الإعدادات الافتراضية ملي كتقيّم الخدمة، ومن بعد دوز لـ PostgreSQL ملي متطلبات النشر ديالك تفرض هاد الشي.
- حافظ على الملفات المرفوعة: دير نسخة احتياطية من قاعدة البيانات ومن المجلد اللي محدد فـ
UPLOAD_DIR. بجوج داخلين فبيانات خزانة الملابس ديالك. - استعمل تصاور واضحة ديال الملابس: التصاور المميّزة كاتسهّل على نظام الوسم تصنيف الملابس واستخراج معلومات بصرية مفيدة.
- راقب التكرارات: الكشف المدمج على التكرارات كايساعد يمنع تكرار القطع أثناء رفع دفعات كبيرة.
- عدّل التوليد بحذر: بدا بالأبعاد المعطاة 1024-by-1024، وبـ 20 خطوة للاستدلال، وبمقياس توجيه 7.5، ومن بعد بدّلهم حسب النتيجة والقدرة الحاسوبية المتوفرة.
- راجع التصاور المولّدة: التصوّر بالذكاء الاصطناعي غير تقريب مولّد، وماشي ضمانة على القياس ولا على الشكل الدقيق ديال اللباس.
- استعمل توثيق API: اعتابر Swagger ولا ReDoc المرجع الأساسي لمخططات الطلبات والاستجابات فالإصدار اللي ناشر.
- حمي الولوج عبر الشبكة: إلا كنت غادي تعرض الخدمة خارج localhost، زيد إجراءات الحماية المناسبة للإنتاج وضوابط الولوج حول النشر المستضاف ذاتياً.
مسار التطوير
المساهمين يقدرو يثبّتو متطلبات التطوير فبيئة افتراضية:
git clone https://github.com/GangTailorUpgrade/undress-service.git dress-ai-service
cd dress-ai-service
python -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txtشغّل مجموعة الاختبارات مع تغطية الكود:
pytest tests/ -v --cov=appشغّل أدوات فحص الكود، والتنسيق، والتحقق من الأنواع المهيّأة:
ruff check app/
black app/
mypy app/ثبّت وشغّل hooks ديال pre-commit قبل ما تصيفط التغييرات:
pre-commit install
pre-commit run --all-filesالمشروع كايقبل المساهمات عبر المسار العادي ديال fork، وفرع الميزة، وcommit، وpush، وpull request. وكايتوزع برخصة MIT.
دعم المشروع
Dress AI Service مشروع مفتوح المصدر، وكيعاونوه المساهمين والرعاة ديالو.

الخلاصة
Dress AI Service كاايجمع بين تدبير خزانة الملابس، والوسم المدعوم بـ CLIP، واقتراحات هجينة للتنسيقات، والربط مع الطقس، والتصوّر التوليدي فـ تطبيق واحد مستضاف ذاتياً. Docker هو أسرع طريق باش تحصل على تثبيت خدام، بينما إعداد Python المحلي ونقاط FastAPI الموثقة كايوفرو قاعدة مرنة للتطوير، والأتمتة، وتطبيقات الموضة المخصّصة.
