ما المواصفات الفعلية لتشغيل مولّد صور بالذكاء الاصطناعي؟
اكتشف العتاد اللازم لتشغيل Stable Diffusion ذاتياً: ماذا يفعل VPS بالمعالج، ولماذا يحتاج SDXL إلى 6.94 GB، وأوامر تثبيت ComfyUI ومساحة القرص.
ما يحتاج إليه مولّد صور بالذكاء الاصطناعي مستضاف ذاتياً فعلاً
مولّد الصور بالذكاء الاصطناعي المستضاف ذاتياً هو تطبيق ويب واحد وملف نموذج واحد. التطبيق هو ComfyUI، ويعمل على أي خادم Linux. أمّا النموذج فهو الذي يحدد العتاد الذي تحتاج إليه. نموذج checkpoint من فئة SDXL هو ملف واحد حجمه 6.94 GB، ويحتاج إلى البقاء في ذاكرة GPU. تحدد هذه الحقيقة وحدها الميزانية بأكملها، لذلك اقرأ تدرّج العتاد أدناه قبل استئجار أي خادم.
الخلاصة بوضوح: يمكن لـVPS يعمل بالـCPU فقط تثبيت البرنامج وتقديمه، ويمكنه إنشاء صور بدقة 512x512 باستخدام نموذج Stable Diffusion 1.5 أقدم خلال دقيقة أو دقيقتين لكل صورة. أمّا الخادم نفسه عند تشغيل SDXL بدقة 1024x1024، فيستغرق من عشر إلى عشرين دقيقة لكل صورة. هذا لا يعني أن الإعداد معطّل. إنها مسألة حسابية، ويوضح هذا الدليل تفاصيلها.
لماذا يحدد حجم النموذج مواصفات الجهاز
تعمل عملية توليد الصور عبر حلقة لإزالة التشويش. يمرّر التصيير المؤلف من 30 خطوة النموذج الكامل على الصورة 30 مرة، وتقرأ كل خطوة جميع الأوزان. يبلغ حجم أوزان SDXL بدقة نصفية نحو 6.9 GB، لذلك يمرّر التصيير المؤلف من 30 خطوة نحو 200 GB عبر الذاكرة قبل ظهور الصورة.
تقرأ وحدة معالجة رسومات تحتوي على 24 GB من ذاكرة الفيديو (VRAM، وهي الذاكرة الملحومة بجانب شريحة الرسومات) بسرعة تبلغ مئات GB في الثانية، وتحتفظ بكل 6.9 GB في الوقت نفسه. أما VPS الذي يستخدم وحدة المعالجة المركزية، فيقرأ ذاكرة النظام RAM بسرعة تبلغ عشرات GB في الثانية، ولا يحتوي على عتاد للمصفوفات لتنفيذ عمليات الالتفاف، لذلك تعمل الحلقة نفسها بسرعة أبطأ بمقدار رتبة أو رتبتين. هذه هي حجة عرض النطاق الترددي للذاكرة نفسها التي تحكم نماذج النصوص، ومن المفيد قراءتها إلى جانب متى يستحق VPS المزود بوحدة معالجة رسومات تكلفته فعلاً.
يختلف توليد الصور عن توليد النصوص في جانب واحد مهم. يرسل نموذج المحادثة الرموز تباعاً، لذلك يظل الجهاز البطيء قابلاً للاستخدام لأن الكلمات تظهر أثناء قراءتك. أما الصورة فلا تظهر إلا بعد اكتمال الخطوة الأخيرة. البطء يعني التحديق في شريط التقدم.
سُلّم العتاد، مع أرقام فعلية
يحتوي المربع أدناه على أرقام نموذجية لإنشاء صورة واحدة باستخدام SDXL بدقة 1024x1024 و30 خطوة وعينة Euler، وذلك اعتباراً من يوليو 2026. تعامل معها باعتبارها تقديرات تقريبية للرتبة الحجمية. إذ يمكن لأداة أخذ العينات وعدد الخطوات والدقة التي تستخدمها أن تغيّر هذه الأرقام.
The data behind this chart
[
{
"label": "8 vCPU VPS, no GPU",
"seconds_per_image": 780
},
{
"label": "8GB VRAM GPU",
"seconds_per_image": 32
},
{
"label": "12GB VRAM GPU",
"seconds_per_image": 18
},
{
"label": "24GB VRAM GPU",
"seconds_per_image": 9
}
]قيمة صف CPU هي 780 ثانية، أي نحو ثلاث عشرة دقيقة. أما البطاقة بسعة 24 GB فتحتاج إلى 9 ثانية. هذا هو الفارق الذي تدفع مقابله.
اقرأ السُلّم على النحو الآتي. يعمل SDXL حتى مع أقل من 8 GB من VRAM، لأن ComfyUI ينقل الطبقات إلى ذاكرة النظام تلقائياً، ويمكنه تشغيل البطاقة بسعة لا تتجاوز 1 GB. يؤدي النقل إلى ذاكرة النظام إلى زيادة الزمن في كل خطوة، لذلك تستغرق البطاقة بسعة 6 GB نحو دقيقة للصورة، وليس نحو ثلاثين ثانية. عند 8 GB يلائم النموذج الأساسي الذاكرة، وتصبح عملية التصيير مريحة. عند 12 GB يمكنك الاحتفاظ بـControlNet واحد أو اثنين إلى جانب checkpoint من دون نقل الطبقات إلى ذاكرة النظام. عند 24 GB يمكنك تشغيل SDXL مع refiner وupscaling ضمن سير عمل واحد، كما يمكنك بدء تدريب محولات LoRA، الذي يحتاج إلى ذاكرة أكبر بكثير مما يتطلبه التوليد.
ما الذي يستطيع VPS يعمل بالـCPU فعله وما الذي لا يستطيع فعله
يمكنه فعل أكثر مما يتوقعه الناس، وأقل مما توحي به المواد التسويقية. حدّد هذه الحدود بوضوح.
يمكن لـVPS يعمل بالـCPU تثبيت ComfyUI، وتقديم واجهة الويب، وتخزين مكتبة النماذج، وتشغيل قائمة الانتظار، وتوليد الصور من دون وجود GPU إطلاقاً. عند استخدام Stable Diffusion 1.5 بدقة 512x512 ومع 20 خطوة، توقّع نحو 60 إلى 150 ثانية لكل صورة على 8 وحدات vCPU حديثة مع 16 GB من RAM. هذا مناسب فعلاً لمهمة دفعية تعمل طوال الليل، أو لنقطة نهاية منخفضة الحمل لتوليد الصور خلف قائمة انتظار.
لا يستطيع VPS يعمل بالـCPU توفير عمل تفاعلي. تعني تجربة المطالبات إنشاء 20 صورة خلال ساعة، وعند استغراق كل صورة 13 دقيقة لن تحصل إلا على 4 صور. كما لا يستطيع التدريب. يستغرق الضبط الدقيق لـLoRA على CPU أياماً لا ساعات، لذا تعامل معه على أنه غير متاح.
تختلف قاعدة الذاكرة عند استخدام CPU فقط عن قاعدة GPU. تُحمَّل الأوزان في ذاكرة النظام RAM، لذلك تحتاج إلى حجم النموذج بالإضافة إلى مساحة العمل: نحو 16 GB من RAM لـSDXL، ونحو 8 GB لـSD 1.5. سيبدأ جهاز بسعة 4 GB تشغيل ComfyUI، ثم يوقفه قاتل نفاد الذاكرة في منتصف إنشاء الصورة الأولى. يظهر ذلك باختفاء العملية مع Killed في dmesg ومن دون traceback من Python.
ثبّت ComfyUI على جهاز مزوّد بوحدة GPU
هذه هي الأوامر الأساسية من المشروع. ابدأ بتثبيت نظيف لـ Ubuntu 24.04 مع تثبيت برنامج تشغيل NVIDIA مسبقاً. تحقّق من برنامج التشغيل أولاً، لأن كل حالات الفشل اللاحقة ستبدو متشابهة من دون هذا التحقق.
nvidia-smiيجب أن يطبع ذلك جدولاً يتضمن بطاقتك وإصدار CUDA. ظهور command not found أو NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver يعني أن برنامج التشغيل مفقود أو أن وحدة النواة لم تُحمّل بعد ترقية. أصلح ذلك قبل المتابعة، لأن ComfyUI سيتحول بصمت إلى استخدام CPU وستحمّل البرنامج مسؤولية المشكلة.
sudo apt update
sudo apt install -y git python3-venv python3-pip wget
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
python3 -m venv venv
. venv/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txtالبيئة الافتراضية ليست نصيحة اختيارية. يسحب PyTorch شجرة كبيرة من التبعيات، وتثبيته على مستوى النظام في جهاز يشغّل برامج أخرى يؤدي إلى تعطيل برنامج آخر. تحقّق من أن PyTorch يستطيع رؤية البطاقة قبل المتابعة.
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"يعني True مع اسم بطاقتك أن الحزمة تعمل. أما False فيعني أن الحزمة التي ثبّتها لا تتوافق مع برنامج التشغيل، وغالباً ما يكون السبب أن حزمة torch مخصّصة لـCPU فقط كانت مخزّنة مؤقتاً من قبل. أعد التثبيت باستخدام عنوان الفهرس أعلاه.
احصل على نموذج، وخطّط لمساحة القرص
لا يأتي ComfyUI مع أوزان. ضع ملفات نقاط التحقق في models/checkpoints، وملفات VAE في models/vae، ومحوّلات LoRA في models/loras.
cd ~/ComfyUI/models/checkpoints
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensorsاستخدم .safetensors بدلاً من .ckpt دائماً. ملف .ckpt هو كائن Python مُسلسل باستخدام pickle، وتحميله ينفّذ التعليمات البرمجية التي أنشأه بها صاحبه. يحتوي تنسيق safetensors على tensors فقط، لذلك لا يستطيع ملف خبيث تشغيل أي شيء.
مساحة التخزين تكلفة ينساها الناس. يشغل نموذج SDXL الأساسي 6.94 GB. ويحتاج نموذج refiner إلى 6 GB إضافية. يتراوح حجم نموذج ControlNet الواحد بين 1.4 و2.5 GB، ويتراوح حجم أداة upscaler بين 60 و350 MB، بينما يتراوح حجم LoRA بين 20 و400 MB. من يستمر في استخدام هذا النظام ينزّل نموذجاً أساسياً ثانياً وثالثاً خلال أسبوع. خصص 100 GB من مساحة القرص لتثبيت عملي، وراقب أيضاً مجلد المخرجات: تشغل ملفات PNG بدقة 1024x1024 حجماً يتراوح بين 1 و2 MB لكل ملف، ويمكن لمهمة دفعية غير مراقبة أن تملأ قرصاً صغيراً بهدوء. ضع models/ وoutput/ على وحدة تخزين قابلة للتوسعة، وأنشئ نسخاً احتياطية من ملفات JSON الخاصة بسير العمل باستخدام شيء مثل النسخ الاحتياطية التزايدية المشفّرة إلى وحدة تخزين كائنات. يمكن إعادة تنزيل الأوزان. أما مسارات العمل التي ضبطتها فلا يمكن استعادتها بهذه السهولة.
شغّله والوصول إليه بأمان
cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188يعمل ComfyUI على المنفذ 8188. في الخادم الذي لا يحتوي إلا على CPU، أضف --cpu، إذ يجبر ذلك التطبيق على استخدام مسار CPU بدلاً من الفشل بسبب عدم وجود جهاز CUDA.
اربطه بالعنوان 127.0.0.1، وليس بالعنوان 0.0.0.0. لا يحتوي ComfyUI على شاشة تسجيل دخول أو حسابات مستخدمين. يمكن لأي جهة تصل إلى المنفذ وضع المهام في قائمة الانتظار، وقراءة كل صورة أنشأتها، وتثبيت custom nodes، وهذا يتيح تنفيذ تعليمات برمجية عشوائية على خادمك. بدلاً من ذلك، وصّل إليه عبر نفق SSH من حاسوبك المحمول.
ssh -N -L 8188:127.0.0.1:8188 you@your-serverثم افتح http://127.0.0.1:8188 محلياً. إذا كنت تحتاج إلى وصول فعلي لعدة مستخدمين، ضع reverse proxy مع مصادقة أمامه، وأبقِ التطبيق مرتبطاً بـlocalhost. ينطبق المنطق نفسه على أي خدمة مستضافة ذاتياً من دون مصادقة، وهذا هو النمط القياسي في عمليات النشر باستخدام Docker Compose على VPS.
شغِّله باستمرار تحت systemd
قائمة انتظار التصيير التي تتوقف عند إغلاق جلسة SSH ليست خدمة. اكتب /etc/systemd/system/comfyui.service.
[Unit]
Description=ComfyUI
After=network-online.target
[Service]
User=comfy
WorkingDirectory=/home/comfy/ComfyUI
ExecStart=/home/comfy/ComfyUI/venv/bin/python main.py --listen 127.0.0.1 --port 8188
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now comfyui
systemctl status comfyuiيعني active (running) وظهور سطر سجل يقرأ To see the GUI go to: http://127.0.0.1:8188 أنّها تعمل. لاحظ أنّ ExecStart يحدّد المفسّر داخل البيئة الافتراضية مباشرةً، لأنّ systemd لا يشغّل ملف تعريف الصدفة لديك، ولذلك لا يحدث activate أبداً.
التوصية العملية حسب الميزانية
إذا كنت تريد تجربة توليد الصور وكانت التكلفة أهم من السرعة، فاستخدم VPS يعمل بوحدة CPU ويحتوي على 16 GB من RAM، وشغّل SD 1.5 بدقة 512x512، وتقبّل أن يستغرق توليد كل صورة دقيقة أو دقيقتين. هذه نقطة البداية الواقعية، وتكلف جزءاً بسيطاً من تكلفة أي خادم مزود بوحدة GPU. كما أنها المكان المناسب لاستضافة مكتبة النماذج وسير العمل ريثما تحدد احتياجاتك.
إذا كنت تعدّل المطالبات يومياً، فاستأجر GPU بذاكرة VRAM لا تقل عن 12 GB بالساعة من سحابة GPU، وأوقفه عندما تتوقف. توليد الصور عمل متقطع، وترك GPU خاملاً مع استمرار الفوترة الشهرية هو السبب الأكثر شيوعاً للإنفاق الزائد في هذا المجال. احتفظ بنقاط التحقق على تخزين كتل منخفض التكلفة، وقم بتركيبها.
إذا كنت تقدم الخدمة لأشخاص آخرين، أو تدرّب محولات LoRA، فأنت تحتاج إلى 24 GB من VRAM وإلى جهاز تحتفظ به قيد التشغيل. عند هذه النقطة، يحقق الجهاز نفسه عادةً فائدة إضافية عند تشغيل نموذج لغة محلي أيضاً، وهو الإعداد المشروح في استضافة نموذج LLM ذاتياً باستخدام Ollama.
أياً كان المستوى الذي تختاره، فقِس أداء جهازك بنفسك قبل أن تثق بأي رقم منشور. ضع المطالبة نفسها في قائمة الانتظار 5 مرات، واقرأ عدد الثواني لكل تكرار الذي يطبعه ComfyUI في وحدة التحكم الخاصة به. هذا الرقم يحدد موقعك الفعلي على سلم الأداء.
FAQ
هل يمكنني تشغيل Stable Diffusion من دون GPU؟
نعم. يعمل ComfyUI باستخدام python main.py --cpu وينشئ صوراً فعلية من دون وجود بطاقة رسومات. توقّع استغراق نحو 60 إلى 150 ثانية لكل صورة عند استخدام Stable Diffusion 1.5 بدقة 512x512، واستغراق عشر إلى عشرين دقيقة عند استخدام SDXL بدقة 1024x1024، على 8 vCPUs حديثة. يناسب ذلك المعالجة الدفعية طوال الليل ونقاط النهاية منخفضة الحجم. لكنه لا يناسب تكرار تعديل المطالبات، كما أن التدريب غير عملي تماماً.
ما مقدار VRAM الذي أحتاج إليه لتشغيل SDXL؟
تشغّل سعة 8 GB من VRAM SDXL بصورة مريحة بدقة 1024x1024. عند استخدام سعة أقل، ينقل ComfyUI الطبقات إلى RAM النظام تلقائياً ويستمر في العمل حتى نحو 1 GB من VRAM، لكن كل خطوة منقولة تزيد وقت المعالجة. تتيح سعة 12 GB الاحتفاظ بـControlNet إلى جانب checkpoint، بينما تكفي سعة 24 GB لتشغيل النموذج الأساسي وrefiner وupscaling ضمن workflow واحد، وهي الحد العملي الأدنى لتدريب محولات LoRA.
ما مقدار مساحة القرص التي تحتاج إليها النماذج؟
يبلغ حجم checkpoint الأساسي لـSDXL وحده 6.94 GB، ويضيف refiner نحو 6 GB أخرى. تتراوح أحجام نماذج ControlNet بين 1.4 و2.5 GB لكل نموذج، وتتراوح أحجام محولات LoRA بين 20 و400 MB، بينما يصل حجم upscalers إلى 350 MB. خصص 100 GB لتثبيت عملي يضم بضعة نماذج أساسية، وراقب مجلد المخرجات بشكل منفصل، لأن ملفات PNG بدقة 1024x1024 يتراوح حجمها بين 1 و2 MB لكل ملف.
هل من الآمن إتاحة ComfyUI على الإنترنت العام؟
لا. لا يوفر ComfyUI أي نوع من المصادقة، كما أن نظام custom-node فيه يثبّت شيفرة Python ويشغّلها من الواجهة، ولذلك فإن فتح المنفذ يتيح تنفيذ شيفرة عن بُعد على خادمك. اربطه بـ127.0.0.1، ثم اتصل به عبر نفق SSH باستخدام ssh -N -L 8188:127.0.0.1:8188 you@your-server، وضع reverse proxy يتطلب المصادقة أمامه إذا احتاج أكثر من شخص إلى الوصول إليه.
لماذا أُوقِف إنشاء الصورة لدي من دون ظهور رسالة خطأ؟
اختفاء العملية مع Killed في dmesg من دون ظهور Python traceback يعني أن Linux استخدم قاتل نفاد الذاكرة، وليس أن هناك خطأ في ComfyUI. في الخادم الذي يعمل بالـCPU فقط، توجد الأوزان في RAM النظام، ولذلك يحتاج SDXL إلى نحو 16 GB ويحتاج SD 1.5 إلى نحو 8 GB، إضافة إلى مساحة العمل. أضف RAM، أو أضف swap، أو استخدم نموذجاً أصغر ودقة أقل.