مشروع Stable Diffusion: نظرة عامة مفصلة
نظرة عامة على المشروع
Stable Diffusion هو نموذج مفتوح المصدر لتوليد الصور من النصوص، تم تطويره بواسطة Stability AI، ويعتمد على تقنية نماذج الانتشار الكامنة (Latent Diffusion Models). يحقق المشروع تركيب صور عالية الدقة، وقادر على توليد صور عالية الجودة بناءً على الأوصاف النصية.
عنوان المشروع: https://github.com/Stability-AI/stablediffusion
الميزات التقنية الأساسية
1. بنية نموذج الانتشار الكامن
- استخدام الفضاء الكامن لعملية الانتشار، وهو أكثر كفاءة من العمل مباشرة في فضاء البكسل.
- اعتماد بنية U-Net كشبكة لإزالة الضوضاء.
- دمج آليات الانتباه الذاتي والانتباه المتقاطع.
2. مشفر النص
- استخدام OpenCLIP ViT-H/14 كمشفر للنص.
- دعم التحكم المعقد في الشروط النصية.
- القدرة على فهم الأوصاف النصية التفصيلية وتحويلها إلى محتوى مرئي.
3. دعم الدقة المتعددة
- Stable Diffusion 2.1-v: إخراج 768 × 768 بكسل.
- Stable Diffusion 2.1-base: إخراج 512 × 512 بكسل.
- دعم التدريب والاستدلال بدقة مختلفة.
تاريخ الإصدارات الرئيسية
الإصدار 2.1 (7 ديسمبر 2022)
- إطلاق نموذج v بدقة 768 × 768 ونموذج base بدقة 512 × 512.
- يعتمد على نفس عدد المعلمات والبنية.
- تم ضبطه بدقة على مجموعة بيانات أكثر تساهلاً لتصفية المحتوى غير اللائق (NSFW).
الإصدار 2.0 (24 نوفمبر 2022)
- نموذج جديد تمامًا بدقة 768 × 768.
- استخدام OpenCLIP-ViT/H كمشفر للنص.
- تم تدريبه من البداية، باستخدام طريقة v-prediction.
Stable UnCLIP 2.1 (24 مارس 2023)
- دعم تحويل الصور وعمليات المزج.
- تم ضبطه بدقة بناءً على SD2.1-768.
- توفير نوعين مختلفين: Stable unCLIP-L و Stable unCLIP-H.
الوظائف الأساسية
1. توليد الصور من النص
وظيفة أساسية لتوليد الصور من الأوصاف النصية:
python scripts/txt2img.py --prompt "a professional photograph of an astronaut riding a horse" --ckpt <path/to/768model.ckpt/> --config configs/stable-diffusion/v2-inference-v.yaml --H 768 --W 768
2. ترميم الصور (Inpainting)
دعم الترميم والتحرير المحلي للصور:
python scripts/gradio/inpainting.py configs/stable-diffusion/v2-inpainting-inference.yaml <path-to-checkpoint>
3. توليد الصور الشرطي العميق
توليد الصور بناءً على معلومات العمق للحفاظ على الهيكل:
python scripts/gradio/depth2img.py configs/stable-diffusion/v2-midas-inference.yaml <path-to-ckpt>
4. دقة فائقة للصور
وظيفة دقة فائقة بمقدار 4 أضعاف:
python scripts/gradio/superresolution.py configs/stable-diffusion/x4-upscaling.yaml <path-to-checkpoint>
5. تحويل الصور إلى صور
وظيفة img2img الكلاسيكية:
python scripts/img2img.py --prompt "A fantasy landscape, trending on artstation" --init-img <path-to-img.jpg> --strength 0.8 --ckpt <path/to/model.ckpt>
التثبيت وتكوين البيئة
البيئة الأساسية
conda install pytorch==1.12.1 torchvision==0.13.1 -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .
تحسين الأداء (موصى به)
تثبيت مكتبة xformers لتحسين أداء وحدة معالجة الرسومات (GPU):
export CUDA_HOME=/usr/local/cuda-11.4
conda install -c nvidia/label/cuda-11.4.0 cuda-nvcc
conda install -c conda-forge gcc
conda install -c conda-forge gxx_linux-64==9.5.0
cd ..
git clone https://github.com/facebookresearch/xformers.git
cd xformers
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e .
cd ../stablediffusion
تحسين وحدة المعالجة المركزية Intel
تكوين التحسين لوحدة المعالجة المركزية Intel:
apt-get install numactl libjemalloc-dev
pip install intel-openmp
pip install intel_extension_for_pytorch -f https://software.intel.com/ipex-whl-stable
تفاصيل البنية التقنية
مكونات النموذج
- بنية المشفر-فك الشفرة: استخدام برنامج ترميز تلقائي مع عامل تقليل العينة بمقدار 8.
- شبكة U-Net: شبكة U-Net بمعلمات 865 مليون لعملية الانتشار.
- مشفر النص: OpenCLIP ViT-H/14 لمعالجة مدخلات النص.
- أخذ العينات: دعم طرق أخذ العينات المتعددة مثل DDIM و PLMS و DPMSolver.
تحسين الذاكرة
- تمكين آلية الانتباه الفعالة للذاكرة تلقائيًا.
- دعم تسريع xformers.
- توفير خيار دقة FP16 لتوفير ذاكرة الفيديو.
سيناريوهات التطبيق
1. الإبداع الفني
- تصميم الفن المفاهيمي.
- توليد الرسوم التوضيحية.
- نقل الأسلوب.
2. إنتاج المحتوى
- إنتاج المواد التسويقية.
- محتوى وسائل التواصل الاجتماعي.
- تصميم نماذج المنتجات الأولية.
3. تطبيقات البحث
- أبحاث رؤية الكمبيوتر.
- أبحاث النماذج التوليدية.
- التعلم متعدد الوسائط.
الاعتبارات الأخلاقية والقيود
تحيز البيانات
- يعكس النموذج التحيزات والمفاهيم الخاطئة في بيانات التدريب.
- لا يُنصح باستخدامه مباشرة للخدمات التجارية دون إضافة آليات أمان إضافية.
سلامة المحتوى
- نظام علامات مائية غير مرئية مدمج للمساعدة في تحديد المحتوى الذي تم إنشاؤه بواسطة الذكاء الاصطناعي.
- بذل جهود لتقليل المحتوى الإباحي الصريح، ولكن لا يزال يتعين استخدامه بحذر.
قيود الاستخدام
- الأوزان مخصصة للاستخدام البحثي فقط.
- الالتزام بترخيص CreativeML Open RAIL++-M.
