# خطوط أنابيب Stable Diffusion

  

Stable Diffusion هو نموذج انتشار كامن لتحويل النص إلى صورة، أنشأه الباحثون والمهندسون من [CompVis](https://github.com/CompVis) و[Stability AI](https://stability.ai/) و[LAION](https://laion.ai/). يطبّق الانتشار الكامن عملية الانتشار على فضاء كامن ذي أبعاد أقل لتقليل تعقيد الذاكرة والحوسبة. وقد اقترح هذا النوع المحدد من نماذج الانتشار في [High-Resolution Image Synthesis with Latent Diffusion Models](https://huggingface.co/papers/2112.10752) بواسطة Robin Rombach وAndreas Blattmann وDominik Lorenz وPatrick Esser وBjörn Ommer.

يتم تدريب Stable Diffusion على صور بأبعاد 512x512 من مجموعة فرعية من مجموعة بيانات LAION-5B. يستخدم هذا النموذج مُشفِّر نصوص CLIP ViT-L/14 مجمّدًا لتكييف النموذج على أوامر النص. ومع وجود UNet بحجم 860 مليون ومُشفِّر نصوص بحجم 123 مليون، يُعد النموذج خفيفًا نسبيًا ويمكن تشغيله على وحدات معالجة الرسومات المخصصة للمستهلكين.

لمزيد من التفاصيل حول كيفية عمل Stable Diffusion وكيف يختلف عن نموذج الانتشار الكامن الأساسي، راجع [الإعلان](https://stability.ai/blog/stable-diffusion-announcement) الخاص بـ Stability AI و[منشورنا على المدونة](https://huggingface.co/blog/stable_diffusion#how-does-stable-diffusion-work) للحصول على تفاصيل تقنية أكثر.

يمكنك العثور على قاعدة الكود الأصلية لنموذج Stable Diffusion v1.0 في [CompVis/stable-diffusion](https://github.com/CompVis/stable-diffusion) ونموذج Stable Diffusion v2.0 في [Stability-AI/stablediffusion](https://github.com/Stability-AI/stablediffusion) بالإضافة إلى سكربتاتهم الأصلية لمهام مختلفة. كما يمكن العثور على نقاط تحقق رسمية إضافية للإصدارات والمهام المختلفة من Stable Diffusion في منظمات [CompVis](https://huggingface.co/CompVis) و [Stability AI](https://huggingface.co/stabilityai) على منصة Hub. استكشف هذه المنظمات للعثور على نقطة التحقق الأنسب لحالتك!

تلخص الجدول أدناه خطوط أنابيب Stable Diffusion المتاحة، والمهام المدعومة، وعرضًا تفاعليًا:

    
    
        
        
            
            خط أنابيب
            
            
            المهام المدعومة
            
            
            🤗 مساحة
            
        
        
        
        
            
            StableDiffusion
            
            النص إلى صورة
            
            
        
        
            
            StableDiffusionImg2Img
            
            صورة إلى صورة
            
            
        
        
            
            StableDiffusionInpaint
            
            التلوين
            
            
        
        
            
            StableDiffusionDepth2Img
            
            depth-to-image
            
            
        
        
            
            StableDiffusionImageVariation
            
            تباين الصورة
            
            
        
        
            
            StableDiffusionPipelineSafe (مُتقادم؛ لا توجد صفحة توثيق)
            
            نص إلى صورة مُرشّح
            
            
        
        
            
            StableDiffusion2
            
            نص إلى صورة، إعادة رسم، عمق إلى صورة، دقة فائقة
            
            
        
        
            
            StableDiffusionXL
            
            نص إلى صورة، صورة إلى صورة
            
            
        
        
            
            StableDiffusionLatentUpscale
            
            دقة فائقة
            
            
        
        
            
            StableDiffusionUpscale
            
            دقة فائقة
        
        
            
            StableDiffusionLDM3D
            
            نص إلى RGB، نص إلى عمق، نص إلى بانوراما
            
            
        
        
            
            StableDiffusionUpscaleLDM3D
            
            ldm3d رفع الدقة
        
        
    
    

## نصائح

لمساعدتك على الاستفادة القصوى من خطوط أنابيب Stable Diffusion، إليك بعض النصائح لتحسين الأداء وسهولة الاستخدام. تنطبق هذه النصائح على جميع خطوط أنابيب Stable Diffusion.

### استكشف التوازن بين السرعة والجودة

يستخدم [StableDiffusionPipeline](/docs/diffusers/v0.43.0/ar/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline) جدولة [PNDMScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/pndm#diffusers.PNDMScheduler) افتراضيًا، لكن 🤗 Diffusers يوفر العديد من الجداول الأخرى المتوافقة (بعضها أسرع أو يُخرج جودة أفضل). على سبيل المثال، إذا كنت ترغب في استخدام [EulerDiscreteScheduler](/docs/diffusers/v0.43.0/ar/api/schedulers/euler#diffusers.EulerDiscreteScheduler) بدلاً من الجدولة الافتراضية:

```py
from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler

pipeline = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")
pipeline.scheduler = EulerDiscreteScheduler.from_config(pipeline.scheduler.config)

# or
euler_scheduler = EulerDiscreteScheduler.from_pretrained("CompVis/stable-diffusion-v1-4", subfolder="scheduler")
pipeline = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", scheduler=euler_scheduler)
```

### إعادة استخدام مكونات خط الأنابيب لتوفير الذاكرة

لحفظ الذاكرة واستخدام نفس المكونات عبر خطوط أنابيب متعددة، استخدم طريقة `.components` لتجنب تحميل الأوزان إلى ذاكرة الوصول العشوائي أكثر من مرة.

```py
from diffusers import (
    StableDiffusionPipeline,
    StableDiffusionImg2ImgPipeline,
    StableDiffusionInpaintPipeline,
)

text2img = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")
img2img = StableDiffusionImg2ImgPipeline(**text2img.components)
inpaint = StableDiffusionInpaintPipeline(**text2img.components)

# now you can use text2img(...), img2img(...), inpaint(...) just like the call methods of each respective pipeline
```

### إنشاء عروض توضيحية ويب باستخدام `gradio`

تُستَخدم خطوط أنابيب Stable Diffusion تلقائيًا في [Gradio](https://github.com/gradio-app/gradio/)، وهي مكتبة تُسهّل إنشاء تطبيقات تعلّم آلي جميلة وسهلة الاستخدام على الويب. أولًا، تأكد من تثبيت Gradio:

```sh
pip install -U gradio
```

ثم، أنشئ عرضًا توضيحيًا على الويب حول أي خط أنابيب يعتمد على Stable Diffusion. على سبيل المثال، يمكنك إنشاء خط أنابيب لتوليد الصور في سطر واحد من الشيفرة باستخدام دالة [`Interface.from_pipeline`](https://www.gradio.app/docs/interface#interface-from-pipeline) في Gradio:

```py
from diffusers import StableDiffusionPipeline
import gradio as gr

pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")

gr.Interface.from_pipeline(pipe).launch()
```

الذي يفتح واجهة سحب وإفلات بديهية في متصفحك:

![](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/gradio-panda.png)

وبالمثل، يمكنك إنشاء عرض توضيحي لخط أنابيب من صورة إلى صورة باستخدام:

```py
from diffusers import StableDiffusionImg2ImgPipeline
import gradio as gr

pipe = StableDiffusionImg2ImgPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")

gr.Interface.from_pipeline(pipe).launch()
```

بشكل افتراضي، يعمل العرض التوضيحي على الويب على خادم محلي. إذا كنت ترغب في مشاركته مع الآخرين، يمكنك إنشاء رابط عام مؤقت من خلال تعيين `share=True` في `launch()`. أو يمكنك استضافة عرضك التوضيحي على [Hugging Face Spaces](https://huggingface.co/spaces)https://huggingface.co/spaces للحصول على رابط دائم.

