דרישות חומרה להרצת Stable Diffusion עצמית
מדריך טכני להרצת ComfyUI: גלו אילו מפרטים נדרשים עבור SDXL, כמה VRAM באמת צריך לרינדור מהיר, ומה המגבלות של שרת VPS מבוסס CPU לעומת כרטיס מסך ייעודי.
מה באמת נדרש עבור מחולל תמונות AI בהתארחות עצמית
מחולל תמונות AI בהתארחות עצמית מורכב מאפליקציית אינטרנט אחת וקובץ מודל אחד. האפליקציה היא ComfyUI, והיא פועלת על כל שרת Linux. המודל הוא הגורם הקובע את דרישות החומרה שלכם. נקודת ביקורת (checkpoint) מסוג SDXL היא קובץ יחיד בגודל 6.94 GB, והוא נדרש להיטען לזיכרון ה-GPU. עובדה אחת זו קובעת את כל התקציב, לכן קראו את מדרג החומרה להלן לפני שתשכרו שרת כלשהו.
הסיכום הכנה: שרת VPS מבוסס CPU בלבד יכול להתקין ולהריץ את התוכנה, והוא מסוגל ליצור תמונות ברזולוציה של 512x512 באמצעות מודל Stable Diffusion 1.5 ישן יותר בתוך דקה או שתיים לכל תמונה. אותה מכונה המריצה SDXL ברזולוציה של 1024x1024 תדרוש עשר עד עשרים דקות לכל תמונה. אין מדובר בהגדרה תקולה. זוהי אריתמטיקה פשוטה, ומדריך זה מסביר אותה.
מדוע גודל המודל קובע את בחירת המכונה
יצירת תמונה מפעילה לולאת ניקוי רעשים (denoising). רינדור של 30 שלבים מעביר את המודל המלא על התמונה 30 פעמים, וכל מעבר קורא את כל המשקולות. SDXL בדיוק חצי (half precision) הוא כ-6.9 GB של משקולות, לכן רינדור של 30 שלבים מעביר בערך 200 GB דרך הזיכרון לפני שניתן לראות תמונה.
מעבד גרפי (GPU) עם 24 GB של זיכרון וידאו (VRAM, הזיכרון המולחם לצד השבב הגרפי) קורא במהירות של מאות גיגה-בייט לשנייה, והוא מחזיק את כל ה-6.9 GB בבת אחת. שרת VPS מבוסס מעבד (CPU) קורא מזיכרון המערכת (RAM) במהירות של עשרות גיגה-בייט לשנייה, ואין לו חומרה מטריציונית עבור הקונבולוציות, לכן אותה לולאה רצה לאט בסדר גודל אחד עד שניים. זהו אותו טיעון של רוחב פס לזיכרון שקובע את הביצועים במודלי טקסט, וכדאי לקרוא אותו לצד מתי שרת VPS עם GPU באמת שווה את הכסף.
יצירת תמונה נבדלת מיצירת טקסט בדרך אחת משמעותית. מודל צ'אט מזרים אסימונים (tokens), לכן מכונה איטית עדיין מרגישה שמישה כי מילים מופיעות בזמן שאתה קורא. תמונה מופיעה רק כאשר השלב האחרון מסתיים. איטיות משמעותה בהייה בסרגל התקדמות.
סולם החומרה, עם מספרים אמיתיים
הבלוק להלן מכיל נתונים אופייניים עבור תמונה אחת ב-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 שניות. זהו הפער שאתה משלם עבורו.
קרא את הסולם באופן הבא. מתחת ל-8 GB של VRAM, SDXL עדיין פועל, כיוון ש-ComfyUI מעביר שכבות ל-RAM של המערכת באופן אוטומטי ויכול להפעיל כרטיס עם 1 GB בלבד. העברה זו גוזלת זמן בכל צעד, לכן כרטיס של 6 GB קרוב יותר לדקה לתמונה מאשר לשלושים שניות. ב-8 GB מודל הבסיס נכנס לזיכרון והרינדור נוח. ב-12 GB ניתן להחזיק ControlNet אחד או שניים לצד ה-checkpoint ללא צורך בהעברה. ב-24 GB ניתן להריץ SDXL בתוספת ה-refiner וביצוע upscaling בתהליך עבודה אחד, וניתן להתחיל לאמן מתאמי LoRA, פעולה הדורשת זיכרון רב בהרבה מאשר יצירת תמונות.
מה שרת CPU VPS יכול ומה הוא לא יכול לעשות
הוא מסוגל ליותר ממה שאנשים מצפים, ופחות ממה שהשיווק מרמז. חשוב להגדיר את הגבולות במדויק.
שרת CPU VPS יכול להתקין את ComfyUI, להגיש את ממשק האינטרנט, לאחסן את ספריית המודלים שלך, לנהל את התור ולהפיק תמונות ללא נוכחות של GPU כלל. עם Stable Diffusion 1.5 ברזולוציה של 512x512 ו-20 צעדים, צפה לזמן של בערך 60 עד 150 שניות לתמונה על 8 ליבות vCPU מודרניות עם 16 GB של RAM. עבור משימות אצווה (batch jobs) שרצות במהלך הלילה, או עבור נקודת קצה (endpoint) עם נפח תמונות נמוך מאחורי תור, זה בהחלט מספיק.
שרת CPU VPS לא יכול לספק עבודה אינטראקטיבית. איטרציות על פרומפטים דורשות עשרים רינדורים בשעה, ובקצב של שלוש-עשרה דקות לכל אחד, תקבל ארבעה בלבד. הוא גם לא יכול לבצע אימון. כוונון עדין (fine-tuning) של LoRA על גבי CPU נמדד בימים, לא בשעות, לכן יש להתייחס לכך כאל אפשרות שאינה זמינה.
כלל הזיכרון עבור עבודה מבוססת CPU בלבד שונה מכלל ה-GPU. המשקולות (weights) נטענות לתוך ה-RAM של המערכת, לכן נדרש נפח הזיכרון של המודל בתוספת מרחב עבודה: כ-16 GB של RAM עבור SDXL, וכ-8 GB עבור SD 1.5. שרת עם 4 GB יפעיל את ComfyUI אך יופסק על ידי ה-out-of-memory killer במהלך הרינדור הראשון, מה שיופיע כהיעלמות פתאומית של התהליך עם 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 בצירוף שם הכרטיס שלך משמעותם שהמחסנית (stack) עובדת. False משמעותו שה-wheel שהתקנת אינו תואם למנהל ההתקן, בדרך כלל כיוון ש-wheel של torch המיועד ל-CPU בלבד כבר היה שמור במטמון. התקן מחדש בעזרת ה-index URL שלעיל.
השגת מודל ותכנון שטח הדיסק
ComfyUI מופץ ללא משקולות (weights). יש להציב קבצי Checkpoint ב-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 שעבר סריאליזציה (pickled), וטעינתו מריצה קוד שנכתב על ידי יוצר הקובץ. פורמט safetensors מכיל טנזורים בלבד, ולכן קובץ זדוני אינו יכול להריץ דבר.
אחסון הוא העלות שאנשים נוטים לשכוח. קובץ Checkpoint בסיסי מסוג 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 כל אחד, וביצוע אצווה (batch) ללא השגחה ימלא דיסק קטן בשקט. מקמו את models/ ואת output/ על כרך (volume) שניתן להרחיב, וגבו את קבצי ה-JSON של תהליכי העבודה שלכם באמצעות כלי כמו גיבויים מצטברים מוצפנים לאחסון אובייקטים. את המשקולות ניתן להוריד מחדש. את תהליכי העבודה שכיולתם, לא ניתן לשחזר.
הרצה וגישה מאובטחת
cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188השירות ComfyUI מאזין בפורט 8188. בשרת המבוסס על CPU בלבד, יש להוסיף את הדגל --cpu, אשר מאלץ שימוש בנתיב ה-CPU במקום להיכשל עקב חוסר בהתקן CUDA.
יש לבצע Bind לכתובת 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 comfyuiactive (running) ושורת לוג המציגה את To see the GUI go to: http://127.0.0.1:8188 מעידים על כך שהשירות פעיל. שימו לב כי ExecStart מציין את המפרש בתוך סביבת ה-virtual environment באופן ישיר, כיוון ש-systemd אינו מריץ את פרופיל ה-shell שלכם ו-activate לעולם אינו מתרחש.
ההמלצה הפרגמטית לפי תקציב
אם ברצונך לנסות יצירת תמונות והעלות חשובה לך יותר ממהירות, בחר ב-VPS מבוסס CPU עם 16 GB של RAM, הרץ את SD 1.5 ברזולוציה של 512x512, והשלם עם זמן המתנה של דקה או שתיים לכל תמונה. זוהי נקודת הכניסה הכנה, והיא עולה שבריר מהמחיר של כל שרת עם GPU. זהו גם המקום הנכון לאחסן בו את ספריית המודלים ואת תהליכי העבודה בזמן שאתה מקבל החלטות.
אם אתה מבצע איטרציות על הנחיות (prompts) מדי יום, שכור GPU עם לפחות 12 GB של VRAM לפי שעה מספק ענן GPU, וכבה אותו כשאתה מסיים. יצירת תמונות היא עבודה מתפרצת, ו-GPU במצב סרק שמחויב בתשלום חודשי הוא הדרך הנפוצה ביותר לבזבז כסף בתחום זה. שמור את ה-checkpoints על אחסון בלוקים (block storage) זול וחבר אותם למערכת.
אם אתה מספק שירות לאחרים, או מאמן מתאמי LoRA, אתה זקוק ל-24 GB של VRAM ולמכונה שנמצאת בבעלותך. בנקודה זו, אותה מכונה בדרך כלל מצדיקה את עלותה גם בהרצת מודל שפה מקומי, וזהו המערך המתואר ב-אירוח עצמי של LLM עם Ollama.
באיזה שלב שלא תבחר, מדוד את המכונה שלך לפני שתסתמך על נתונים שפורסמו. הכנס את אותה הנחיה לתור חמש פעמים וקרא את מספר השניות לכל איטרציה ש-ComfyUI מציג במסוף שלו. המספר הזה הוא המיקום האמיתי שלך בסולם הביצועים.
FAQ
האם ניתן להריץ את Stable Diffusion ללא GPU?
כן. ComfyUI פועל עם python main.py --cpu ומייצר תמונות אמיתיות גם ללא כרטיס גרפי. יש לצפות לזמן עיבוד של כ-60 עד 150 שניות לתמונה עבור Stable Diffusion 1.5 ברזולוציית 512x512, ועשר עד עשרים דקות עבור SDXL ברזולוציית 1024x1024, על גבי 8 ליבות vCPU מודרניות. זה מתאים לעיבוד אצוות (batches) במהלך הלילה ולנקודות קצה בעלות נפח עבודה נמוך. זה אינו מתאים לניסוי מהיר של פרומפטים (prompt iteration), ואימון מודלים אינו אפשרי כלל.
כמה VRAM נדרש עבור SDXL?
8 GB מאפשרים להריץ את SDXL בנוחות ברזולוציית 1024x1024. מתחת לכמות זו, ComfyUI מעביר שכבות באופן אוטומטי ל-RAM של המערכת וממשיך לעבוד, עד לרמה של כ-1 GB של VRAM, אך כל שכבה שמועברת ל-RAM מאטה את זמן העיבוד. 12 GB מאפשרים להחזיק ControlNet לצד ה-checkpoint, ו-24 GB מכסים את המודל הבסיסי, את ה-refiner ואת תהליך ה-upscaling בתזרים עבודה אחד, ומהווים את הרף המעשי לאימון מתאמי LoRA.
כמה שטח דיסק נדרש עבור המודלים?
ה-checkpoint הבסיסי של SDXL לבדו שוקל 6.94 GB, וה-refiner מוסיף כ-6 GB נוספים. מודלי ControlNet שוקלים בין 1.4 ל-2.5 GB כל אחד, מתאמי LoRA שוקלים בין 20 ל-400 MB, ומודלי upscaler שוקלים עד 350 MB. יש להקצות 100 GB להתקנה פעילה עם מספר מודלי בסיס, ולנטר את ספריית הפלט בנפרד, שכן קבצי PNG ברזולוציית 1024x1024 תופסים בין 1 ל-2 MB כל אחד.
האם בטוח לחשוף את ComfyUI לאינטרנט הציבורי?
לא. ב-ComfyUI אין מנגנון אימות מכל סוג שהוא, ומערכת ה-custom-node שלו מתקינה ומריצה קוד Python מתוך הממשק, כך שפורט פתוח מהווה פרצת הרצת קוד מרחוק (RCE) בשרת שלך. יש להגדיר האזנה ל-127.0.0.1, לגשת אליו דרך מנהרת SSH עם ssh -N -L 8188:127.0.0.1:8188 you@your-server, ולהציב פרוקסי הפוך (reverse proxy) עם אימות לפניו אם נדרשת גישה ליותר מאדם אחד.
מדוע הרינדור שלי הופסק ללא הודעת שגיאה?
היעלמות התהליך עם Killed בתוך dmesg ללא traceback של Python מעידה על מנגנון ה-out-of-memory killer של Linux, ולא על באג ב-ComfyUI. בשרת מבוסס CPU בלבד, המשקולות (weights) נשמרות ב-RAM של המערכת, לכן SDXL דורש כ-16 GB ו-SD 1.5 דורש כ-8 GB, בנוסף לשטח עבודה פנוי. יש להוסיף RAM, להוסיף swap, או לעבור למודל קטן יותר ורזולוציה נמוכה יותר.