Zelf AI-afbeeldingen genereren: hardware en kosten
Ontdek wat een CPU-VPS werkelijk kan, waarom SDXL 6,94 GB GPU-geheugen vereist, welke ComfyUI-commando's u nodig hebt en hoeveel schijfruimte u begroot.
Wat een zelfgehoste AI-afbeeldingengenerator echt nodig heeft
Een zelfgehoste AI-afbeeldingengenerator bestaat uit één webapplicatie en één modelbestand. De applicatie is ComfyUI en deze draait op elke Linux-server. Het model bepaalt welke hardware u nodig hebt. Een checkpoint uit de SDXL-klasse is één bestand van 6.94 GB en moet in het GPU-geheugen staan. Dat ene feit bepaalt het volledige budget. Lees daarom eerst de onderstaande hardwareladder voordat u iets huurt.
De eerlijke samenvatting: een VPS die alleen de CPU gebruikt, kan de software installeren en beschikbaar stellen. Met een ouder Stable Diffusion 1.5-model kan deze configuratie afbeeldingen van 512x512 genereren in één tot twee minuten per afbeelding. Op dezelfde server duurt het genereren van een afbeelding van 1024x1024 met SDXL tien tot twintig minuten. Dat betekent niet dat de configuratie defect is. Het is een rekenkundig gevolg. In deze handleiding wordt dit uitgelegd.
Waarom de modelgrootte de machine bepaalt
Beeldgeneratie voert een denoising-lus uit. Bij een render van 30 stappen wordt het volledige model 30 keer op de afbeelding toegepast. Elke stap leest alle gewichten. SDXL gebruikt in half precision ongeveer 6.9 GB aan gewichten. Een render van 30 stappen verplaatst daarom ongeveer 200 GB door het geheugen voordat u een afbeelding ziet.
Een GPU met 24 GB videogeheugen (VRAM, het geheugen dat naast de grafische chip op de printplaat is gesoldeerd) leest met honderden gigabytes per seconde en houdt alle 6.9 GB tegelijk vast. Een CPU VPS leest systeem-RAM met tientallen gigabytes per seconde. Daarnaast beschikt de CPU niet over matrixhardware voor de convoluties. Daardoor duurt dezelfde lus een tot twee ordes van grootte langer. Dit is hetzelfde argument op basis van geheugenbandbreedte dat ook voor tekstmodellen geldt. Het is daarom nuttig om dit samen te lezen met wanneer een VPS met een GPU de kosten werkelijk waard is.
Beeldgeneratie verschilt op één belangrijk punt van tekstgeneratie. Een chatmodel streamt tokens. Daardoor blijft een trage machine bruikbaar aanvoelen, omdat er woorden verschijnen terwijl u leest. Een afbeelding verschijnt pas wanneer de laatste stap is voltooid. Traag betekent dat u naar een voortgangsbalk kijkt.
De hardwareladder met concrete cijfers
Het onderstaande blok bevat gebruikelijke cijfers voor 1 SDXL-afbeelding op 1024x1024, met 30 stappen en de Euler-sampler, vanaf juli 2026. Beschouw deze cijfers als een indicatie van de orde van grootte. Uw sampler, aantal stappen en resolutie beïnvloeden de cijfers.
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
}
]De CPU-regel bedraagt 780 seconden, ongeveer dertien minuten. De kaart van 24 GB doet er 9 seconden over. Dat is het verschil waarvoor u betaalt.
Lees de ladder als volgt. Onder 8 GB VRAM draait SDXL nog steeds, omdat ComfyUI automatisch lagen naar het systeemgeheugen verplaatst en een kaart met slechts 1 GB kan gebruiken. Offloading kost bij elke stap tijd. Daarom doet een kaart van 6 GB eerder ongeveer een minuut per afbeelding dan dertig seconden. Bij 8 GB past het basismodel en verloopt het renderen zonder problemen. Bij 12 GB kunt u naast het checkpoint 1 of 2 ControlNet-modellen in het geheugen houden zonder offloading. Bij 24 GB kunt u SDXL, de refiner en upscaling in 1 workflow uitvoeren. U kunt dan ook beginnen met het trainen van LoRA-adapters. Daarvoor is veel meer geheugen nodig dan voor het genereren van afbeeldingen.
Wat een CPU VPS wel en niet kan
Het kan meer dan mensen verwachten en minder dan marketing suggereert. Wees specifiek over die grens.
Een CPU VPS kan ComfyUI installeren, de webinterface beschikbaar stellen, uw modellencollectie opslaan, de wachtrij uitvoeren en afbeeldingen genereren zonder enige GPU. Met Stable Diffusion 1.5 op 512x512 en 20 stappen duurt één afbeelding op 8 moderne vCPU's met 16 GB RAM ongeveer 60 tot 150 seconden. Voor een batchtaak die 's nachts wordt uitgevoerd of een image-endpoint met laag volume achter een wachtrij is dat in de praktijk prima.
Een CPU VPS is niet geschikt voor interactief werken. Promptiteratie betekent twintig renders per uur. Bij dertien minuten per render krijgt u er vier. Het systeem kan ook niet trainen. LoRA-finetuning op een CPU duurt dagen, geen uren. Beschouw dit daarom als niet beschikbaar.
De geheugenregel voor alleen CPU verschilt van de GPU-regel. De gewichten worden in het systeem-RAM geladen. U hebt daarom de modelgrootte plus werkruimte nodig: ongeveer 16 GB RAM voor SDXL en ongeveer 8 GB voor SD 1.5. Een systeem met 4 GB start ComfyUI en wordt vervolgens door de out-of-memory-killer beëindigd tijdens de eerste render. Het proces verdwijnt dan met Killed in dmesg, zonder Python-traceback.
ComfyUI installeren op een GPU-machine
Dit zijn de upstream-opdrachten. Begin met een schone installatie van Ubuntu 24.04 waarop het NVIDIA-stuurprogramma al aanwezig is. Controleer eerst het stuurprogramma, omdat elke latere fout er hetzelfde uitziet als u deze controle overslaat.
nvidia-smiDit moet een tabel met uw kaart en een CUDA-versie weergeven. command not found of NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver betekent dat het stuurprogramma ontbreekt of dat de kernelmodule na een upgrade niet is geladen. Los dat eerst op voordat u doorgaat, omdat ComfyUI anders stilzwijgend terugvalt op de CPU en u de software de schuld geeft.
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.txtDe virtuele omgeving is geen optioneel advies. PyTorch installeert een grote afhankelijkheidsstructuur. Als u die systeembreed installeert op een machine waarop nog andere software draait, kunt u die andere software defect maken. Controleer voordat u verdergaat of PyTorch de kaart kan detecteren.
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"True plus de naam van uw kaart betekent dat de stack werkt. False betekent dat de geïnstalleerde wheel niet overeenkomt met het stuurprogramma. Dit komt meestal doordat er al een CPU-only torch-wheel in de cache stond. Installeer opnieuw met de bovenstaande index-URL.
Download een model en plan voor de schijfruimte
ComfyUI wordt geleverd zonder gewichten. Plaats checkpoints in models/checkpoints, VAE-bestanden in models/vae en LoRA-adapters in models/loras.
cd ~/ComfyUI/models/checkpoints
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensorsGebruik altijd .safetensors in plaats van .ckpt. Een .ckpt-bestand is een gepickle'd Python-object. Bij het laden wordt code uitgevoerd van de partij die het bestand heeft gemaakt. Het safetensors-formaat bevat alleen tensors. Een kwaadaardig bestand kan daardoor niets uitvoeren.
Opslagruimte is een kostenpost die vaak wordt vergeten. Eén SDXL-basismodel neemt 6.94 GB in beslag. De refiner neemt nog eens 6 GB in beslag. Eén ControlNet-model neemt 1.4 tot 2.5 GB in beslag, een upscaler 60 tot 350 MB en een LoRA 20 tot 400 MB. Wie dit regelmatig gebruikt, downloadt binnen een week een tweede en derde basismodel. Reserveer 100 GB schijfruimte voor een werkende installatie. Controleer ook de uitvoermap: PNG-bestanden van 1024x1024 zijn 1 tot 2 MB groot. Een onbeheerde batch kan een kleine schijf ongemerkt vullen. Plaats models/ en output/ op een volume dat u kunt uitbreiden. Maak met iets als versleutelde incrementele back-ups naar object storage back-ups van uw workflow-JSON-bestanden. De gewichten kunt u opnieuw downloaden. De workflows die u hebt afgestemd, niet.
Start het programma en bereik het veilig
cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188ComfyUI gebruikt poort 8188. Voeg op een systeem dat alleen over een CPU beschikt --cpu toe. Hiermee wordt het CPU-pad geforceerd en wordt voorkomen dat het programma mislukt omdat er geen CUDA-apparaat beschikbaar is.
Bind aan 127.0.0.1, niet aan 0.0.0.0. ComfyUI heeft geen aanmeldscherm en geen gebruikersaccounts. Alles wat de poort kan bereiken, kan taken in de wachtrij plaatsen, alle gegenereerde afbeeldingen lezen en aangepaste nodes installeren. Dat betekent willekeurige code-uitvoering op uw server. Gebruik in plaats daarvan een SSH-tunnel vanaf uw laptop.
ssh -N -L 8188:127.0.0.1:8188 you@your-serverOpen vervolgens lokaal http://127.0.0.1:8188. Als u toegang voor meerdere gebruikers nodig hebt, plaatst u een reverse proxy met authenticatie ervoor en houdt u de toepassing gebonden aan localhost. Dezelfde redenering geldt voor elke niet-geauthenticeerde self-hosted service. Dit is het standaardpatroon in Docker Compose-implementaties op een VPS.
Laat het draaien onder systemd
Een renderwachtrij die stopt zodra uw SSH-sessie wordt gesloten, is geen service. Schrijf /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) en een logregel met To see the GUI go to: http://127.0.0.1:8188 betekenen dat de service actief is. ExecStart verwijst rechtstreeks naar de interpreter in de virtuele omgeving, omdat systemd uw shellprofiel niet uitvoert en activate nooit gebeurt.
De praktische aanbeveling per budget
Als u beeldgeneratie wilt uitproberen en kosten belangrijker zijn dan snelheid, kiest u een CPU VPS met 16 GB RAM, voert u SD 1.5 uit op 512x512 en accepteert u een tot twee minuten per afbeelding. Dit is het eerlijke instappunt en kost een fractie van een oplossing met een GPU. Dit is ook de juiste plek om de modellencollectie en workflows te hosten terwijl u een beslissing neemt.
Als u dagelijks prompts iteratief aanpast, huurt u per uur een GPU met ten minste 12 GB VRAM bij een GPU-cloud en schakelt u deze uit wanneer u stopt. Beeldgeneratie bestaat uit piekbelastingen. Een inactieve GPU waarvoor maandelijks wordt betaald, is hier de meest voorkomende oorzaak van te hoge uitgaven. Bewaar de checkpoints op goedkope block storage en mount deze.
Als u diensten aan andere mensen levert of LoRA-adapters traint, hebt u 24 GB VRAM nodig en een machine die u permanent gebruikt. Op dat moment verdient dezelfde machine zichzelf meestal terug door ook een lokaal taalmodel uit te voeren. Dit is de configuratie die wordt beschreven in zelf een LLM hosten met Ollama.
Welke optie u ook kiest, meet eerst uw eigen machine voordat u gepubliceerde cijfers vertrouwt. Plaats vijf keer dezelfde prompt in de wachtrij en lees het aantal seconden per iteratie dat ComfyUI in de console weergeeft. Dat getal bepaalt uw werkelijke positie op de prestatieladder.
FAQ
Kan ik Stable Diffusion uitvoeren zonder GPU?
Ja. ComfyUI wordt uitgevoerd met python main.py --cpu en genereert echte afbeeldingen zonder aanwezige grafische kaart. Reken op ongeveer 60 tot 150 seconden per afbeelding voor Stable Diffusion 1.5 op 512x512 en op tien tot twintig minuten voor SDXL op 1024x1024, met 8 moderne vCPU's. Dat is geschikt voor batches die 's nachts worden uitgevoerd en endpoints met een laag volume. Het is niet geschikt voor het itereren van prompts. Training is volledig buiten bereik.
Hoeveel VRAM heb ik nodig voor SDXL?
Met 8 GB kunt u SDXL probleemloos uitvoeren op 1024x1024. Daaronder verplaatst ComfyUI lagen automatisch naar het systeem-RAM en blijft het werken, tot ongeveer 1 GB VRAM. Elke verplaatste stap kost echter extra tijd. Met 12 GB kunt u naast het checkpoint ook een ControlNet laden. Met 24 GB kunt u het basismodel, de refiner en upscaling in één workflow gebruiken. Dat is ook praktisch het minimum voor het trainen van LoRA-adapters.
Hoeveel schijfruimte hebben de modellen nodig?
Alleen het SDXL-basischeckpoint is 6.94 GB groot. De refiner voegt daar ongeveer 6 GB aan toe. ControlNet-modellen zijn elk 1.4 tot 2.5 GB groot, LoRA-adapters 20 tot 400 MB en upscalers maximaal 350 MB. Reserveer 100 GB voor een werkende installatie met enkele basismodellen. Houd ook de uitvoermap afzonderlijk in de gaten, omdat PNG-bestanden van 1024x1024 elk 1 tot 2 MB groot zijn.
Is het veilig om ComfyUI beschikbaar te maken op het openbare internet?
Nee. ComfyUI heeft geen enkele vorm van authenticatie. Het systeem voor aangepaste nodes installeert en voert Python-code uit vanuit de interface. Een open poort betekent daarom uitvoering van externe code op uw server. Laat ComfyUI binden aan 127.0.0.1, benader het via een SSH-tunnel met ssh -N -L 8188:127.0.0.1:8188 you@your-server en plaats er een reverse proxy met authenticatie voor als meerdere personen toegang nodig hebben.
Waarom is mijn renderproces beëindigd zonder foutmelding?
Als het proces verdwijnt met Killed in dmesg en er geen Python-traceback is, is dit de Linux out-of-memory-killer en geen fout in ComfyUI. Op een CPU-only server staan de gewichten in het systeem-RAM. Daarom heeft SDXL ongeveer 16 GB nodig en SD 1.5 ongeveer 8 GB, naast extra werkruimte. Voeg RAM of swap toe, of gebruik een kleiner model en een lagere resolutie.