Wymagania sprzętowe dla Stable Diffusion i ComfyUI
Poznaj realne wymagania sprzętowe dla Stable Diffusion. Sprawdź, dlaczego model SDXL wymaga 6.94 GB VRAM i ile czasu zajmuje generowanie obrazu na serwerze VPS bez karty GPU.
Czego faktycznie wymaga samodzielnie hostowany generator obrazów AI
Samodzielnie hostowany generator obrazów AI składa się z jednej aplikacji internetowej oraz jednego pliku modelu. Aplikacja to ComfyUI, która działa na dowolnej maszynie z systemem Linux. To model decyduje o wymaganiach sprzętowych. Punkt kontrolny (checkpoint) klasy SDXL to pojedynczy plik o rozmiarze 6.94 GB, który musi znajdować się w pamięci GPU. Ten jeden fakt determinuje cały budżet, dlatego przed wynajęciem jakiegokolwiek zasobu należy zapoznać się z poniższą hierarchią sprzętową.
Szczere podsumowanie: VPS oparty wyłącznie na CPU może zainstalować i obsługiwać to oprogramowanie, generując obrazy w rozdzielczości 512x512 przy użyciu starszego modelu Stable Diffusion 1.5 w czasie od minuty do dwóch na obraz. Ta sama maszyna generująca obraz SDXL w rozdzielczości 1024x1024 potrzebuje od dziesięciu do dwudziestu minut na jeden obraz. Nie jest to awaria konfiguracji. To czysta arytmetyka, którą wyjaśnia ten przewodnik.
Dlaczego rozmiar modelu determinuje wymagania sprzętowe
Generowanie obrazu opiera się na pętli odszumiania. Renderowanie w 30 krokach oznacza, że pełny model przetwarza obraz 30 razy, a każde przejście odczytuje wszystkie wagi. Model SDXL w precyzji połówkowej zajmuje około 6.9 GB wag, więc renderowanie 30-krokowe przesyła w pamięci około 200 GB danych, zanim obraz zostanie wyświetlony.
Procesor graficzny z 24 GB pamięci wideo (VRAM, pamięć przylutowana obok układu graficznego) odczytuje dane z prędkością setek gigabajtów na sekundę i mieści całe 6.9 GB w pamięci jednocześnie. Serwer VPS oparty na procesorze CPU odczytuje pamięć RAM z prędkością dziesiątek gigabajtów na sekundę i nie posiada sprzętowych jednostek macierzowych do operacji splotowych, przez co ta sama pętla wykonuje się od jednego do dwóch rzędów wielkości wolniej. Jest to ten sam argument dotyczący przepustowości pamięci, który odnosi się do modeli tekstowych i warto go przeczytać w powiązaniu z kiedy serwer VPS z GPU jest faktycznie opłacalny.
Generowanie obrazu różni się od generowania tekstu pod jednym istotnym względem. Model czatowy przesyła tokeny strumieniowo, więc wolna maszyna nadal wydaje się użyteczna, ponieważ słowa pojawiają się w trakcie czytania. Obraz pojawia się dopiero po zakończeniu ostatniego kroku. Wolne działanie oznacza wpatrywanie się w pasek postępu.
Drabina sprzętowa z rzeczywistymi wartościami
Poniższy blok zawiera typowe dane dla jednego obrazu SDXL w rozdzielczości 1024x1024, 30 krokach, z samplerem Euler, według stanu na lipiec 2026. Należy traktować je jako rząd wielkości. Zmiana samplera, liczby kroków oraz rozdzielczości wpływa na te wartości.
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
}
]Wiersz CPU to 780 sekund, czyli około trzynaście minut. Karta 24 GB potrzebuje 9 sekund. To jest różnica, za którą płacisz.
Drabinę należy interpretować w następujący sposób. Poniżej 8 GB VRAM, SDXL nadal działa, ponieważ ComfyUI automatycznie przenosi warstwy do pamięci RAM systemu i obsłuży kartę nawet z 1 GB pamięci. Przenoszenie danych kosztuje czas na każdym kroku, więc karta 6 GB generuje obraz w czasie bliższym minucie niż trzydziestu sekundom. Przy 8 GB model bazowy mieści się w pamięci, a renderowanie jest komfortowe. Przy 12 GB można przechowywać ControlNet lub dwa obok checkpointu bez konieczności przenoszenia danych. Przy 24 GB można uruchomić SDXL wraz z refinerem oraz upscalingiem w jednym workflow, a także rozpocząć trenowanie adapterów LoRA, co wymaga znacznie więcej pamięci niż samo generowanie.
Możliwości i ograniczenia serwera VPS typu CPU
Serwer VPS typu CPU oferuje więcej, niż można oczekiwać, ale mniej, niż sugerują materiały marketingowe. Należy precyzyjnie określić granice jego wydajności.
Serwer VPS typu CPU pozwala na instalację ComfyUI, obsługę interfejsu WWW, przechowywanie biblioteki modeli, zarządzanie kolejką oraz generowanie obrazów bez obecności jednostki GPU. W przypadku Stable Diffusion 1.5 przy rozdzielczości 512x512 i 20 krokach, czas generowania jednego obrazu wynosi od około 60 do 150 sekund na 8 nowoczesnych vCPU z 16 GB pamięci RAM. W przypadku zadań wsadowych uruchamianych w nocy lub punktów końcowych o niskim natężeniu ruchu, jest to rozwiązanie w pełni akceptowalne.
Serwer VPS typu CPU nie nadaje się do pracy interaktywnej. Iteracja promptów wymaga wykonania dwudziestu renderów w ciągu godziny, a przy czasie trwania trzynastu minut na obraz, możliwe jest uzyskanie jedynie czterech. Nie umożliwia on również trenowania modeli. Dostrajanie LoRA na CPU mierzone jest w dniach, a nie w godzinach, dlatego należy uznać tę funkcjonalność za niedostępną.
Zasada dotycząca pamięci w środowisku wyłącznie CPU różni się od tej dla GPU. Wagi modelu ładowane są do pamięci RAM systemu, więc wymagana jest pojemność równa rozmiarowi modelu powiększona o przestrzeń roboczą: około 16 GB RAM dla SDXL oraz około 8 GB dla SD 1.5. Maszyna z 4 GB RAM uruchomi ComfyUI, ale zostanie przerwana przez mechanizm out-of-memory killer w trakcie pierwszego renderowania, co objawia się nagłym zniknięciem procesu z kodem Killed w dmesg, bez wygenerowania śladu stosu (traceback) języka Python.
Instalacja ComfyUI na maszynie z GPU
Poniżej znajdują się polecenia dla wersji upstream. Należy rozpocząć od czystej instalacji Ubuntu 24.04 z już zainstalowanym sterownikiem NVIDIA. Najpierw należy zweryfikować sterownik, ponieważ każda późniejsza awaria wygląda tak samo bez tego sprawdzenia.
nvidia-smiPolecenie to musi wyświetlić tabelę z kartą graficzną oraz wersją CUDA. command not found lub NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver oznacza brak sterownika lub niezaładowanie modułu jądra po aktualizacji. Należy to naprawić przed kontynuowaniem, ponieważ ComfyUI po cichu przełączy się na CPU, a użytkownik błędnie uzna to za problem z oprogramowaniem.
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Środowisko wirtualne nie jest opcjonalną poradą. PyTorch pobiera rozbudowane drzewo zależności, a instalacja go w systemie, na którym działają inne usługi, prowadzi do konfliktów. Przed przejściem dalej należy zweryfikować, czy PyTorch widzi kartę graficzną.
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"True wraz z nazwą karty oznacza, że stos działa poprawnie. False oznacza, że zainstalowany pakiet wheel nie pasuje do sterownika, zazwyczaj z powodu użycia wersji torch przeznaczonej tylko dla CPU pobranej z pamięci podręcznej. Należy przeprowadzić ponowną instalację, używając powyższego adresu URL indeksu.
Pobranie modelu i planowanie przestrzeni dyskowej
ComfyUI jest dostarczany bez wag. Punkty kontrolne (checkpoints) należy umieszczać w models/checkpoints, pliki VAE w models/vae, a adaptery LoRA w models/loras.
cd ~/ComfyUI/models/checkpoints
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensorsZawsze należy preferować format .safetensors zamiast .ckpt. Plik .ckpt to spakowany obiekt Python, którego wczytanie powoduje wykonanie kodu dostarczonego przez autora pliku. Format safetensors zawiera wyłącznie tensory, dzięki czemu złośliwy plik nie może uruchomić żadnego kodu.
Pamięć masowa to koszt, o którym często się zapomina. Jeden punkt kontrolny SDXL base zajmuje 6.94 GB. Model refiner to kolejne 6 GB. Pojedynczy model ControlNet zajmuje od 1.4 do 2.5 GB, upscaler od 60 do 350 MB, a LoRA od 20 do 400 MB. Użytkownicy zazwyczaj pobierają drugi i trzeci model bazowy w ciągu tygodnia. Należy zaplanować 100 GB miejsca na dysku dla działającej instalacji i monitorować katalog wyjściowy: pliki PNG w rozdzielczości 1024x1024 zajmują od 1 do 2 MB każdy, a niekontrolowane przetwarzanie wsadowe szybko zapełni mały dysk. Katalogi models/ oraz output/ należy umieścić na wolumenie z możliwością rozszerzenia, a pliki JSON z przepływami pracy (workflows) zabezpieczyć za pomocą szyfrowanych przyrostowych kopii zapasowych do pamięci obiektowej. Wagi można pobrać ponownie. Skonfigurowanych przepływów pracy nie można odtworzyć.
Uruchomienie i bezpieczny dostęp
cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188ComfyUI działa na porcie 8188. Na maszynie wyposażonej wyłącznie w procesor CPU należy dodać flagę --cpu, która wymusza ścieżkę obliczeniową CPU zamiast przerywać działanie z powodu braku urządzenia CUDA.
Powiąż usługę z adresem 127.0.0.1, a nie 0.0.0.0. ComfyUI nie posiada ekranu logowania ani kont użytkowników. Każdy podmiot, który uzyska dostęp do tego portu, może kolejkować zadania, odczytywać wszystkie wygenerowane obrazy oraz instalować własne węzły (custom nodes), co oznacza możliwość wykonania dowolnego kodu na serwerze. Zamiast tego należy uzyskać dostęp poprzez tunel SSH z lokalnego komputera.
ssh -N -L 8188:127.0.0.1:8188 you@your-serverNastępnie otwórz adres http://127.0.0.1:8188 w lokalnej przeglądarce. Jeśli wymagany jest dostęp dla wielu użytkowników, należy umieścić przed usługą reverse proxy z uwierzytelnianiem, utrzymując aplikację powiązaną z localhost. Ta sama zasada dotyczy każdej nieuwierzytelnionej usługi hostowanej samodzielnie i stanowi standardowy wzorzec w wdrożeniach Docker Compose na VPS.
Utrzymywanie procesu w działaniu za pomocą systemd
Kolejka zadań, która kończy działanie po zamknięciu sesji SSH, nie jest usługą. Należy utworzyć plik /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) oraz wpis w dzienniku o treści To see the GUI go to: http://127.0.0.1:8188 oznaczają, że usługa działa. Należy zauważyć, że ExecStart wskazuje bezpośrednio na interpreter wewnątrz środowiska wirtualnego, ponieważ systemd nie ładuje profilu powłoki użytkownika i activate nigdy nie następuje.
Pragmatyczne zalecenia budżetowe
Jeśli chcesz przetestować generowanie obrazów, a koszt jest ważniejszy od szybkości, wybierz VPS z procesorem CPU i 16 GB pamięci RAM, uruchom SD 1.5 w rozdzielczości 512x512 i zaakceptuj czas generowania rzędu minuty lub dwóch na obraz. Jest to uczciwy punkt wejścia, kosztujący ułamek ceny dowolnego rozwiązania z kartą GPU. To także odpowiednie miejsce na przechowywanie biblioteki modeli i przepływów pracy na etapie podejmowania decyzji.
Jeśli codziennie pracujesz nad promptami, wynajmuj godzinowo GPU z co najmniej 12 GB pamięci VRAM w chmurze GPU i wyłączaj instancję po zakończeniu pracy. Generowanie obrazów to zadanie o charakterze skokowym, a bezczynne GPU rozliczane miesięcznie to najczęstsza przyczyna niepotrzebnych wydatków. Przechowuj pliki checkpoint na taniej pamięci masowej typu block storage i montuj je w razie potrzeby.
Jeśli udostępniasz usługi innym osobom lub trenujesz adaptery LoRA, potrzebujesz 24 GB pamięci VRAM i własnej maszyny. Na tym etapie ten sam serwer zazwyczaj zarabia na swoje utrzymanie, obsługując również lokalny model językowy, co stanowi konfigurację opisaną w samodzielne hostowanie LLM za pomocą Ollama.
Niezależnie od wybranego poziomu, przetestuj własną maszynę, zanim uwierzysz w jakiekolwiek opublikowane dane. Uruchom ten sam prompt pięć razy i odczytaj czas na iterację, który ComfyUI wyświetla w konsoli. Ta liczba określa Twoją rzeczywistą pozycję w hierarchii wydajności.
FAQ
Czy można uruchomić Stable Diffusion bez GPU?
Tak. ComfyUI działa z python main.py --cpu i generuje obrazy bez obecności karty graficznej. Należy spodziewać się czasu rzędu 60 do 150 sekund na obraz dla Stable Diffusion 1.5 w rozdzielczości 512x512 oraz od dziesięciu do dwudziestu minut dla SDXL w 1024x1024 przy użyciu 8 nowoczesnych vCPU. Jest to rozwiązanie akceptowalne dla zadań wsadowych wykonywanych w nocy oraz punktów końcowych o niskim natężeniu ruchu. Nie sprawdza się ono w przypadku iteracyjnego tworzenia promptów, a trenowanie modeli jest całkowicie nieosiągalne.
Ile pamięci VRAM potrzeba dla SDXL?
8 GB pozwala na komfortową pracę z SDXL w rozdzielczości 1024x1024. Poniżej tej wartości ComfyUI automatycznie przenosi warstwy do pamięci RAM systemu i nadal działa, nawet przy około 1 GB VRAM, jednak każdy przeniesiony krok wydłuża czas przetwarzania. 12 GB pozwala na jednoczesne użycie ControlNet wraz z punktem kontrolnym (checkpoint), a 24 GB wystarcza na obsługę modelu bazowego, modelu typu refiner oraz skalowanie w jednym przepływie pracy; jest to również praktyczne minimum dla trenowania adapterów LoRA.
Ile miejsca na dysku wymagają modele?
Sam bazowy punkt kontrolny SDXL zajmuje 6.94 GB, a model refiner dodaje około 6 GB. Modele ControlNet zajmują od 1.4 do 2.5 GB każdy, adaptery LoRA od 20 do 400 MB, a modele do skalowania (upscalers) do 350 MB. Należy zaplanować 100 GB na działającą instalację z kilkoma modelami bazowymi oraz monitorować katalog wyjściowy, ponieważ pliki PNG w rozdzielczości 1024x1024 zajmują od 1 do 2 MB każdy.
Czy udostępnianie ComfyUI w publicznym Internecie jest bezpieczne?
Nie. ComfyUI nie posiada żadnego mechanizmu uwierzytelniania, a system niestandardowych węzłów (custom nodes) instaluje i uruchamia kod Python z poziomu interfejsu, więc otwarty port oznacza możliwość zdalnego wykonania kodu na serwerze. Należy powiązać usługę z 127.0.0.1, uzyskiwać do niej dostęp przez tunel SSH za pomocą ssh -N -L 8188:127.0.0.1:8188 you@your-server i umieścić przed nią uwierzytelniający reverse proxy, jeśli dostęp ma mieć więcej niż jedna osoba.
Dlaczego renderowanie zostało przerwane bez komunikatu o błędzie?
Zniknięcie procesu z kodem Killed w dmesg przy braku śladu stosu (traceback) w Pythonie oznacza działanie mechanizmu Linux out-of-memory killer, a nie błąd w ComfyUI. Na maszynie działającej wyłącznie na CPU wagi modeli znajdują się w pamięci RAM systemu, więc SDXL wymaga około 16 GB, a SD 1.5 około 8 GB pamięci, plus przestrzeń robocza. Należy zwiększyć ilość pamięci RAM, dodać przestrzeń wymiany (swap) lub przejść na mniejszy model i niższą rozdzielczość.