لماذا تستضيف ComfyUI ذاتيًا على خادم VPS
ينظّم ComfyUI توليد الصور في رسوم بيانية من العُقَد: كل خطوة (تحميل النموذج، وترميز الموجِّه (prompt)، وأخذ العينات، وVAE) هي كتلة قابلة للربط وإعادة الاستخدام، مما يجعل مسارات العمل قابلة للتكرار والمشاركة بصيغة JSON. وخلافًا لخدمة توليد عبر الإنترنت، تمنحك الاستضافة الذاتية التحكّم في نماذج checkpoints وLoRA وControlNet والإضافات، دون رقابة أو حصص. وعلى خادم VPS مزوَّد بوحدة GPU، تحصل على استوديو متاح على مدار الساعة يمكن لفريق إبداعي بأكمله استخدامه عن بُعد، وتتيح واجهته البرمجية أتمتة التوليد على نطاق صناعي انطلاقًا من سكربتاتك أو خطوط معالجتك الخاصة.
الفوائد الملموسة للاستضافة الذاتية
- مسارات عمل عُقدية قابلة للتكرار، قابلة للتصدير بصيغة JSON وللمشاركة داخل الفريق
- مكتبة حرة من نقاط التحقق (checkpoints) وLoRA وControlNet دون حصة أو رقابة
- واجهة HTTP API لأتمتة التوليد انطلاقًا من سكربتاتك وخطوط معالجتك
- وحدة GPU بعيدة متاحة على مدار الساعة دون احتكار جهاز محلي
- تثبيت العُقَد المخصصة (custom nodes) (إضافات المجتمع) دون قيود
- التحكّم في التكاليف: خادم VPS بوحدة GPU بالساعة أو بالشهر بدل الدفع لكل صورة
المتطلبات بالأرقام حسب سيناريو الاستخدام
يعتمد التحجيم مباشرةً على وضع التنفيذ المختار والنماذج المستهدفة. في وضع CPU (بطيء، للاختبار والنمذجة الأولية)، يكفي خادم VPS بـ 4 vCPU و8 GB من ذاكرة RAM لتحميل نقطة تحقق SDXL، لكن توقع عدة دقائق لكل صورة. في وضع GPU، الاختناق هو ذاكرة VRAM: تسمح 8 GB من VRAM الخاصة بـ NVIDIA بتشغيل SDXL بدقة fp16 مع راية --lowvram التي تُفرّغ مشفّرات النص في ذاكرة RAM النظامية؛ ويُوصى بـ 12 إلى 16 GB من VRAM لنموذج Flux.1 بدقة كاملة. للتخزين: تزن نقطة تحقق SDXL نحو 6 إلى 7 GB، أما Flux.1 schnell (بدقة كاملة) فيبلغ 23,8 GB، وبصيغة fp8 يبلغ 17,2 GB. خطّط لـ 50 GB على الأقل من SSD، ويُستحسن 100 GB إن كنت تنوي تخزين عدة نماذج مع LoRA المرتبطة بها. يجب أن تكون ذاكرة RAM النظامية 16 GB على الأقل عند تفعيل الإفراغ من GPU إلى RAM.
الحد الأدنى من الموارد حسب السيناريو
مرّر الجدول أفقيًا
| السيناريو | vCPU | RAM | VRAM | القرص |
|---|---|---|---|---|
| اختبار CPU (SDXL، بطيء) | 4 | 8 GB | — (بدون GPU) | 50 GB |
| GPU SDXL مريح | 4 | 16 GB | 8 GB NVIDIA | 80 GB |
| GPU Flux.1 (موصى به) | 8 | 32 GB | 16 GB NVIDIA | 100 GB |
| إنتاج متعدد المستخدمين | 8+ | 32 GB+ | 24 GB NVIDIA | 200 GB+ |
طريقتا التثبيت: Docker مقابل Python venv
يمكن نشر ComfyUI بطريقتين: عبر Docker (عزل، قابلية إعادة الإنتاج، إدارة مبسّطة لاعتماديات GPU) أو عبر بيئة Python افتراضية (أقرب إلى الأجهزة مباشرةً، أكثر مرونة للعقد المخصصة التجريبية). على خادم VPS إنتاجي، يُوصى بـ Docker لسهولة الصيانة وعزل الإصدارات.
الطريقة أ — التثبيت عبر Python venv (وصول مباشر للأجهزة)
تثبيت اعتماديات النظام
على Ubuntu 22.04/24.04:
apt update && apt install -y git python3.12 python3.12-venv python3-pip. يدعم ComfyUI الإصدارين 3.12 و3.13 من Python؛ الإصدار 3.13 مدعوم جيدًا جدًا، أما 3.14 فقد يسبب مشكلات توافق مع بعض العقد المخصصة.استنساخ المستودع وإنشاء venv
git clone https://github.com/comfyanonymous/ComfyUI.git /opt/comfyui && cd /opt/comfyui && python3.12 -m venv venv && source venv/bin/activate && pip install -r requirements.txtتثبيت PyTorch مع دعم CUDA أو CPU
لوحدة GPU من NVIDIA (CUDA):
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124. لوضع CPU فقط:pip install torch torchvision. الإصدار 2.7 من PyTorch هو الحد الأدنى المدعوم؛ يُوصى بشدة باستخدام إصدار أحدث.تشغيل ComfyUI
وضع GPU:
python main.py --listen 0.0.0.0. وضع CPU:python main.py --cpu --listen 0.0.0.0. تعرض راية --listen 0.0.0.0ComfyUI على جميع واجهات شبكة خادم VPS (ضرورية للوصول عبر نفق أو وكيل عكسي). الواجهة متاحة على المنفذ 8188.
الطريقة ب — النشر عبر Docker مع GPU
تحضير خادم VPS المزوَّد بـ GPU
على خادم VPS مزوَّد بوحدة GPU من NVIDIA، ثبّت التعريفات ثم NVIDIA Container Toolkit ليتمكّن Docker من الوصول إلى وحدة GPU. تحقّق بـ
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi.تشغيل ComfyUI في حاوية
شغّل صورة ComfyUI مع وصول إلى وحدة GPU وأحجام تخزين دائمة:
docker run -d --gpus all -p 127.0.0.1:8188:8188 -v /opt/comfyui/models:/app/models -v /opt/comfyui/output:/app/output --name comfyui ghcr.io/ai-dock/comfyui:latest-cuda. يتجنّب التقييد على 127.0.0.1 التعريض المباشر. اضبط وسم الصورة وفق إصدار CUDA في خادمك.التحقق من اكتشاف وحدة GPU
بعد الإقلاع:
docker logs comfyui | grep -i 'cuda\|gpu\|device'. يعرض ComfyUI عند الإقلاع الجهاز المحدد. إن رأيت Using CPU، فوحدة GPU غير متاحة من الحاوية — تحقق من NVIDIA Container Toolkit.
تنزيل النماذج من HuggingFace
تُنزَّل النماذج من HuggingFace باستخدام wget أو واجهة HuggingFace سطر الأوامر (pip install huggingface_hub). لكل نوع ملف مجلده المخصص في هيكل ComfyUI. لـ SDXL: ضع ملف .safetensors لنقطة التحقق في models/checkpoints/. لـ Flux.1: البنية مختلفة — يذهب نموذج الانتشار إلى models/diffusion_models/ (أو models/unet/ حسب الإصدار)، ويتطلب Flux مشفّري نص في models/text_encoders/: clip_l.safetensors وt5xxl_fp16.safetensors (أو t5xxl_fp8_e4m3fn_scaled.safetensors لتوفير VRAM). يذهب VAE (ae.safetensors) إلى models/vae/. يتوفر Flux.1 schnell مجانًا من black-forest-labs/FLUX.1-schnell على HuggingFace (23,8 GB بدقة كاملة، 17,2 GB بصيغة fp8). أما Flux.1 dev فهو محمي (gated) — يجب قبول شروط الاستخدام على HuggingFace قبل التنزيل.
الوكيل العكسي Nginx مع المصادقة
إنشاء ملف المصادقة الأساسية
apt install -y apache2-utils && htpasswd -c /etc/nginx/.htpasswd your_user. لا يملك ComfyUI مصادقة أصلية: دون هذه الخطوة، نسختك مفتوحة للجميع.إعداد المضيف الافتراضي في Nginx
أنشئ
/etc/nginx/sites-available/comfyuiمع:server { listen 443 ssl; server_name comfy.yourdomain.com; ... auth_basic "ComfyUI"; auth_basic_user_file /etc/nginx/.htpasswd; location / { proxy_pass http://127.0.0.1:8188; proxy_read_timeout 300s; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }. ترقية WebSocket إلزامية لواجهة ComfyUI البرمجية في الوقت الفعلي.الحصول على شهادة Let's Encrypt والتفعيل
certbot --nginx -d comfy.yourdomain.com && ln -s /etc/nginx/sites-available/comfyui /etc/nginx/sites-enabled/ && nginx -t && systemctl reload nginx. ثم أغلق المنفذ 8188 على جدار الحماية:ufw deny 8188.
تثبيت ComfyUI Manager والعقد المخصصة
ComfyUI Manager هو الإضافة الأساسية لإدارة العقد المخصصة من الواجهة الرسومية. في بيئة Python venv: cd /opt/comfyui/custom_nodes && git clone https://github.com/Comfy-Org/ComfyUI-Manager.git && cd ComfyUI-Manager && pip install -r requirements.txt. ثم أعد تشغيل ComfyUI بـ python main.py --enable-manager --listen 0.0.0.0. تظهر أيقونة «Manager» في الواجهة: يمكنك تثبيت العقد المخصصة الشائعة (WAS Node Suite وControlNet Preprocessors وIP-Adapter وغيرها) وتحديثها وتعطيلها دون سطر أوامر. في Docker، ارفع حجم تخزين على custom_nodes/ لكي تبقى التثبيتات بعد إعادة تشغيل الحاوية.
ComfyUI في مواجهة AUTOMATIC1111 (Stable Diffusion WebUI)
مرّر الجدول أفقيًا
| المعيار | ComfyUI | AUTOMATIC1111 |
|---|---|---|
| المقاربة | مسارات عمل عُقدية بصرية | واجهة كلاسيكية بعلامات تبويب |
| قابلية التكرار | ممتازة (مسار عمل مُصدَّر بصيغة JSON) | محدودة بالمعطيات المُدخَلة |
| استهلاك ذاكرة VRAM | محسَّن، يدير وحدات GPU الصغيرة بشكل أفضل | أكثر استهلاكًا عند تهيئة متكافئة |
| منحنى التعلّم | أكثر انحدارًا (منطق الرسم البياني) | أيسر للمبتدئين |
| الأتمتة عبر واجهة API | أصلية ودقيقة | واجهة API موجودة لكن أقل مرونة |
| النماذج الحديثة (Flux وSD3) | دعم سريع ومرجعي | دعم غالبًا ما يكون متأخرًا |
| العُقَد المخصصة / الإضافات | منظومة عُقدية غنية جدًا | كتالوج واسع من الإضافات |
| حالة الاستخدام المثالية | خطوط معالجة متقدمة وأتمتة | توليد تفاعلي سريع |
حل المشكلات: 4 أخطاء شائعة
على خادم VPS مُهيَّأ حديثًا، تعود عدة أخطاء باستمرار. إليك الأسباب والحلول.
الأخطاء المتكررة وحلولها
- CUDA not available / Using CPU: لم يكتشف ComfyUI وحدة GPU. الأسباب: PyTorch مثبَّت بدون دعم CUDA، أو تعريفات NVIDIA غائبة. تحقق بـ
python -c "import torch; print(torch.cuda.is_available())". إن كانت False، أعد تثبيت PyTorch بـ--index-url https://download.pytorch.org/whl/cu124. في Docker، تحقق من تثبيت NVIDIA Container Toolkit وأنك تُشغّل مع --gpus all. - CUDA out of memory (OOM): النموذج لا يتسع في VRAM. أضف
--lowvramعند تشغيل ComfyUI: تُجبر هذه الراية مشفّرات النص على الإفراغ في RAM النظامية. لـ Flux على 8 GB من VRAM، استخدم أيضًا متغير fp8 من النموذج. كملاذ أخير، --novramيُفرّغ كل شيء في RAM (بطيء جدًا). يُجدي أيضًا تقليل دقة التوليد (512×512 بدلًا من 1024×1024) فورًا. - ERROR: Could not find model / model not found: الملف ليس في المكان الصحيح. يبحث ComfyUI عن checkpoints في
models/checkpoints/، ونماذج انتشار Flux فيmodels/diffusion_models/(أوmodels/unet/)، ومشفّرات النص فيmodels/text_encoders/. لن يظهر ملف .safetensorsفي مجلد فرعي خاطئ في الواجهة. حدّث القائمة بزر «Refresh» في عقدة تحميل النموذج. - Port 8188 already in use: عملية ComfyUI أو تطبيق آخر يستخدم المنفذ بالفعل.
lsof -i :8188يُحدد PID المعني. شغّل ComfyUI على منفذ آخر بـ --port 8189وحدّث إعداد Nginx وفق ذلك. في Docker، قد يأتي التعارض من حاوية متوقفة لكن غير محذوفة:docker rm comfyuiقبل إعادة التشغيل.
لأتمتة التوليد على نطاق صناعي، استغلّ واجهة API: قدّم مسارات عملك عبر POST إلى /prompt واسترجع النتائج عبر WebSocket المسمّى /ws الذي يُشعر بانتهاء كل مهمة. تسمح راية --lowvram عند التشغيل بتشغيل نماذج SDXL على 8 GB من VRAM. للوصول عن بُعد بدون شهادة (تطوير)، استخدم نفقًا SSH: ssh -L 8188:localhost:8188 user@your-vps — يبقى ComfyUI متاحًا على http://localhost:8188 من جهازك دون أي تعرّض عام.