انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

تثبيت Stable Diffusion: إنتاج صور مستضاف ذاتياً

تثبيت Stable Diffusion، واجهات AUTOMATIC1111 و ComfyUI، تنزيل النماذج، تدريب LoRA، استخدام ControlNet وإنتاج صور مستضاف ذاتياً مع Docker.

وقت القراءة: 16 دقيقة الذكاء الاصطناعي على خادمك
stable-diffusionإنتاج صورذكاء اصطناعيself-hostingcomfyuigpu

جدول المحتويات

تثبيت Stable Diffusion: إنتاج صور مستضاف ذاتياً

Stable Diffusion هو نموذج ذكاء اصطناعي مفتوح المصدر ينتج صوراً من النص. بتشغيله على خادمك الخاص، يمكنك إنتاج صور غير محدودة، وتدريب نماذج مخصصة، والعمل بخصوصية كاملة. يغطي هذا الدليل تثبيت AUTOMATIC1111 Web UI و ComfyUI، وإدارة النماذج، واستخدام LoRA و ControlNet بالتفصيل.

ما هو Stable Diffusion؟

Stable Diffusion هو نموذج انتشار كامن طورته Stability AI. الميزات الرئيسية:

  • نص إلى صورة (txt2img): إنتاج صور من أوصاف نصية
  • صورة إلى صورة (img2img): إنتاج صور جديدة باستخدام صور موجودة كمرجع
  • Inpainting: تعديل مناطق محددة من الصورة
  • ControlNet: إنتاج متحكم به باستخدام خرائط الوضعية والحواف والعمق
  • LoRA: ضبط دقيق للنموذج بموارد منخفضة
  • Upscaling: تكبير الصور منخفضة الدقة

متطلبات النظام

المكونالحد الأدنىالموصى به
GPUNVIDIA 6 جيجابايت VRAMNVIDIA 12 جيجابايت+ VRAM
RAM16 جيجابايت32 جيجابايت+
القرص30 جيجابايت100 جيجابايت+ (للنماذج)
نظام التشغيلUbuntu 22.04 LTSUbuntu 22.04/24.04 LTS
CUDA11.8+12.1+
Python3.10+3.10.x

تثبيت AUTOMATIC1111 Web UI

AUTOMATIC1111 هو أشهر واجهة ويب لـ Stable Diffusion.

التثبيت اليدوي

hljs bash
# التبعيات
sudo apt-get update
sudo apt-get install -y python3-venv python3-pip git wget

# استنساخ المستودع
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui

# تنزيل النموذج (Stable Diffusion XL)
wget -O models/Stable-diffusion/sd_xl_base_1.0.safetensors \
  "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors"

# التشغيل
./webui.sh --listen --port 7860 --xformers --enable-insecure-extension-access

Docker مع AUTOMATIC1111

hljs yaml
version: '3.8'
services:
  stable-diffusion:
    image: ghcr.io/abetlen/stable-diffusion-webui-docker:latest
    container_name: sd-webui
    ports:
      - "7860:7860"
    volumes:
      - sd_models:/app/models
      - sd_outputs:/app/outputs
      - sd_extensions:/app/extensions
    environment:
      - COMMANDLINE_ARGS=--listen --xformers --enable-insecure-extension-access --no-half-vae
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
    restart: unless-stopped

volumes:
  sd_models:
  sd_outputs:
  sd_extensions:

تثبيت ComfyUI

ComfyUI هو واجهة Stable Diffusion متقدمة قائمة على العقد. مثالي لإنشاء سير عمل معقدة.

hljs bash
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI

python3 -m venv venv
source venv/bin/activate

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt

python main.py --listen 0.0.0.0 --port 8188

تنزيل وإدارة النماذج

hljs bash
# Stable Diffusion XL Base
wget -O models/Stable-diffusion/sd_xl_base_1.0.safetensors \
  "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors"

# Stable Diffusion 1.5 (لـ VRAM منخفض)
wget -O models/Stable-diffusion/v1-5-pruned-emaonly.safetensors \
  "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"

استخدام LoRA

LoRA (Low-Rank Adaptation) يسمح بالضبط الدقيق للنماذج الكبيرة بموارد منخفضة.

hljs bash
mkdir -p models/Lora

استخدام LoRA في prompt الخاص بـ AUTOMATIC1111:

a beautiful landscape, mountains, sunset <lora:detail-enhancer:0.7>

تثبيت ControlNet

hljs bash
cd extensions
git clone https://github.com/Mikubill/sd-webui-controlnet.git

mkdir -p models/ControlNet
wget -O models/ControlNet/control_v11p_sd15_canny.pth \
  "https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth"

إنتاج الصور عبر API

hljs python
import requests
import base64
from pathlib import Path

def generate_image(prompt, negative_prompt="", steps=30, width=1024, height=1024):
    url = "http://localhost:7860/sdapi/v1/txt2img"
    payload = {
        "prompt": prompt,
        "negative_prompt": negative_prompt,
        "steps": steps,
        "width": width,
        "height": height,
        "sampler_name": "DPM++ 2M Karras",
        "cfg_scale": 7,
        "seed": -1
    }
    
    response = requests.post(url, json=payload)
    result = response.json()
    
    image_data = base64.b64decode(result["images"][0])
    Path("output.png").write_bytes(image_data)
    print("تم حفظ الصورة: output.png")

generate_image(
    prompt="a futuristic data center, neon lights, cyberpunk style, 8k",
    negative_prompt="blurry, low quality, distorted"
)

تحسين الأداء

hljs bash
pip install xformers

./webui.sh --listen --xformers --opt-sdp-attention --no-half-vae --medvram --port 7860

معلمات توفير الذاكرة

المعلمةالوصفتوفير VRAM
--xformersxformers attentionمتوسط
--medvramوضع VRAM متوسطعالي
--lowvramوضع VRAM منخفضعالي جداً
--opt-sdp-attentionSDP attentionمتوسط
--no-half-vaeVAE float32تحسين الجودة

أنتج صوراً غير محدودة مع Stable Diffusion على خوادم REXE GPU. نماذج SDXL تعمل بسرعة عالية مع NVIDIA A100 GPU.