SSD Nodes Learn Hosting plans →
Anleitungen Matt ConnorVon Matt Connor

KI-Bildgenerator selbst hosten: Hardware und Kosten

Erfahren Sie, was ein CPU-VPS wirklich schafft: SD 1.5 in 1 bis 2 Minuten, SDXL in 10 bis 20 Minuten, plus 6,94 GB Modell und ComfyUI-Befehle.

Was ein selbst gehosteter KI-Bildgenerator tatsächlich benötigt

Ein selbst gehosteter KI-Bildgenerator besteht aus einer Webanwendung und einer Modelldatei. Die Anwendung ist ComfyUI und läuft auf jedem Linux-Rechner. Das Modell bestimmt die erforderliche Hardware. Ein Checkpoint der SDXL-Klasse ist eine einzelne Datei mit 6.94 GB und sollte im GPU-Speicher liegen. Diese Tatsache bestimmt das gesamte Budget. Lesen Sie deshalb die folgende Hardware-Abstufung, bevor Sie etwas mieten.

Die ehrliche Zusammenfassung: Ein VPS ohne GPU kann die Software installieren und bereitstellen. Mit einem älteren Stable-Diffusion-1.5-Modell kann er Bilder mit 512x512 in ein bis zwei Minuten pro Bild erzeugen. Derselbe Rechner benötigt für SDXL mit 1024x1024 zehn bis zwanzig Minuten pro Bild. Das ist keine fehlerhafte Konfiguration. Es ist eine Rechenfrage. Dieser Leitfaden erklärt die Gründe.

Warum die Modellgröße die Maschine bestimmt

Die Bildgenerierung läuft in einer Entrauschungsschleife. Bei einem Rendering mit 30 Schritten führt der Denoiser, das UNet von SDXL, diese Berechnung 30-mal über das Bild aus. Bei jedem Durchlauf werden alle UNet-Gewichte gelesen. Die beiden Text-Encoder laufen einmal vor der Schleife, und der VAE dekodiert einmal danach. Sie tragen daher nicht zu den Kosten pro Schritt bei. Das UNet von SDXL belegt bei halber Genauigkeit 5.14 GB für die Gewichte. In dieser vereinfachten Betrachtung werden bei einem Rendering mit 30 Schritten also ungefähr 154 GB an Gewichten durch den Speicher bewegt, bevor ein Bild sichtbar wird. Die Zwischentensoren kommen zusätzlich hinzu.

Eine GPU mit 24 GB Videospeicher (VRAM, der direkt neben dem Grafikchip verlötete Speicher) liest mit mehreren hundert Gigabyte pro Sekunde und hält alle 6.9 GB gleichzeitig. Ein CPU-VPS liest den Arbeitsspeicher mit einigen zehn Gigabyte pro Sekunde. Außerdem verfügt er nicht über spezielle Matrix-Hardware für die Faltungen. Deshalb läuft dieselbe Schleife um ein bis zwei Größenordnungen langsamer. Das ist dasselbe Argument zur Speicherbandbreite, das auch Textmodelle bestimmt. Es lohnt sich, dazu wann sich ein VPS mit GPU tatsächlich lohnt zu lesen.

Die Bildgenerierung unterscheidet sich in einem wichtigen Punkt von der Textgenerierung. Ein Chatmodell gibt Tokens fortlaufend aus. Deshalb bleibt eine langsame Maschine nutzbar, weil während des Lesens bereits Wörter erscheinen. Ein Bild wird erst angezeigt, wenn der letzte Schritt abgeschlossen ist. Langsam bedeutet, dass Sie auf einen Fortschrittsbalken starren.

Die Hardware-Leiter mit realen Zahlen

Der folgende Block enthält typische Werte für ein SDXL-Bild mit 1024x1024, 30 Schritten und dem Euler-Sampler, Stand Juli 2026. Betrachten Sie diese Werte als Größenordnung. Ihr Sampler, die Schrittzahl und die Auflösung verändern sie.

DiagrammOne SDXL image, 1024x1024, 30 steps (typical, July 2026)
Die Daten hinter diesem Diagramm
[
  {
    "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
  }
]

Die CPU-Zeile liegt bei 780 Sekunden, also bei etwa dreizehn Minuten. Die Karte mit 24 GB benötigt 9 Sekunden. Das ist der Abstand, den Sie mit zusätzlicher Hardware verkürzen.

Lesen Sie die Leiter so: Unter 8 GB VRAM läuft SDXL weiterhin, weil ComfyUI VRAM und Systemspeicher gemeinsam verwaltet und Modellgewichte automatisch auslagert. Stand Oktober 2026 nennt die README des Projekts als Mindestanforderung 4 GB VRAM plus 8 GB Systemspeicher, wenn das asynchrone Streaming von Gewichten verwendet wird. Das Auslagern kostet bei jedem Schritt Zeit. Eine Karte mit 6 GB benötigt daher eher eine Minute pro Bild als dreißig Sekunden. Mit 8 GB passt das Basismodell in den Speicher, und das Rendern läuft komfortabel. Mit 12 GB können Sie zusätzlich zum Checkpoint ein ControlNet oder zwei Modelle im Speicher halten, ohne auszulagern. Mit 24 GB können Sie SDXL, den Refiner und Upscaling in einem Workflow ausführen und haben noch ausreichend Reserven für das Training von LoRA-Adaptern. Das Training ist auch mit weniger Speicher möglich: Der SDXL-Trainingsleitfaden für den Trainer kohya-ss sd-scripts nennt 8 GB GPU-Speicher als ausreichend für das LoRA-Training und empfiehlt 10 GB. Dafür sollen Sie nur den U-Net trainieren, Gradient Checkpointing aktivieren, die Ausgaben des Text-Encoders und die Latents zwischenspeichern, einen 8-Bit-Optimierer oder Adafactor verwenden und die LoRA-Dimension auf einer Karte mit 8 GB auf 4 bis 8 reduzieren. Der LoRA-Leitfaden für die GUI kohya_ss, die diese Skripte kapselt, ist vorsichtiger. Er empfiehlt für das LoRA-Training eine GPU mit mindestens 12 GB Speicher.

Was ein CPU-VPS kann und was nicht

Er kann mehr, als viele erwarten, und weniger, als das Marketing verspricht. Legen Sie diese Grenze konkret fest.

Auf einem CPU-VPS können Sie ComfyUI installieren, die Weboberfläche bereitstellen, Ihre Modellsammlung speichern, die Warteschlange ausführen und Bilder ganz ohne GPU generieren. Bei Stable Diffusion 1.5 mit 512x512 und 20 Schritten müssen Sie auf 8 modernen vCPUs mit 16 GB RAM mit etwa 60 bis 150 Sekunden pro Bild rechnen. Für einen Batch-Job, der über Nacht läuft, oder einen Bild-Endpunkt mit geringem Aufkommen hinter einer Warteschlange ist das durchaus geeignet.

Ein CPU-VPS eignet sich nicht für interaktives Arbeiten. Bei der Prompt-Iteration entstehen 20 Renderings pro Stunde. Bei 13 Minuten pro Bild erhalten Sie davon 4. Auch Training ist nicht möglich. Das LoRA-Fine-Tuning auf der CPU dauert Tage statt Stunden. Betrachten Sie es daher als nicht verfügbar.

Die Speicherregel für den reinen CPU-Betrieb unterscheidet sich von der GPU-Regel. Die Gewichte werden in den System-RAM geladen. Sie benötigen daher neben der Modellgröße zusätzlichen Arbeitsspeicher: etwa 16 GB RAM für SDXL und etwa 8 GB für SD 1.5. Ein System mit 4 GB startet ComfyUI und wird dann während des ersten Renderings vom Out-of-Memory-Killer beendet. Der Prozess verschwindet dabei mit Killed in dmesg, ohne Python-Traceback.

ComfyUI auf einer GPU-Maschine installieren

Dies sind die Befehle des Upstream-Projekts. Verwenden Sie eine saubere Ubuntu-24.04-Installation, auf der der NVIDIA-Treiber bereits vorhanden ist. Prüfen Sie den Treiber zuerst. Ohne diese Prüfung sehen alle späteren Fehler gleich aus.

nvidia-smi

Der Befehl muss eine Tabelle mit Ihrer Karte und einer CUDA-Version ausgeben. command not found oder NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver bedeutet, dass der Treiber fehlt oder das Kernelmodul nach einem Upgrade nicht geladen wurde. Beheben Sie das, bevor Sie fortfahren. Andernfalls fällt ComfyUI still auf die CPU zurück, und Sie machen die Software dafür verantwortlich.

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

Die virtuelle Umgebung ist keine optionale Empfehlung. PyTorch installiert eine große Menge an Abhängigkeiten. Wenn Sie es systemweit auf einem System installieren, auf dem andere Software läuft, können Sie dadurch diese andere Software beschädigen. Prüfen Sie, ob PyTorch die Karte erkennt, bevor Sie fortfahren.

python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"

True zusammen mit dem Namen Ihrer Karte bedeutet, dass der Software-Stack funktioniert. False bedeutet, dass das installierte Wheel nicht zum Treiber passt. Häufig war bereits ein CPU-only-Torch-Wheel im Cache vorhanden. Installieren Sie das Paket mit der oben angegebenen Index-URL neu.

Modelle beschaffen und den Speicherplatz planen

ComfyUI wird ohne Gewichte ausgeliefert. Checkpoints gehören in models/checkpoints, VAE-Dateien in models/vae und LoRA-Adapter 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.safetensors

Verwenden Sie immer .safetensors statt .ckpt. Eine .ckpt-Datei ist ein serialisiertes Python-Objekt. Beim Laden wird Code von der Person ausgeführt, die die Datei erstellt hat. Das safetensors-Format enthält ausschließlich Tensoren. Eine manipulierte Datei kann daher keinen Code ausführen.

Speicherplatz wird häufig unterschätzt. Ein SDXL-Basis-Checkpoint benötigt 6.94 GB. Der Refiner benötigt weitere 6 GB. Ein SDXL-ControlNet-Modell benötigt je nach Variante zwischen 320 MB für das kleine Canny-Modell und 2.5 GB für das vollständige Modell mit halber Präzision. Ein Upscaler ist klein: Das Standardmodell Real-ESRGAN x4plus benötigt 67 MB, sein Anime-Modell 17.9 MB und sein Anime-Video-Modell 2.5 MB. Ein LoRA benötigt je nach Modell einige Dutzend Megabyte bis zu 787 MB bei den Hyper-SDXL-Adaptern von ByteDance. Wer regelmäßig damit arbeitet, lädt innerhalb einer Woche ein zweites und drittes Basismodell herunter. Planen Sie für eine funktionierende Installation 100 GB Speicherplatz ein. Überwachen Sie auch das Ausgabeverzeichnis: PNG-Dateien mit 1024x1024 Pixeln sind jeweils 1 bis 2 MB groß, und ein unbeaufsichtigter Batch füllt einen kleinen Datenträger unbemerkt. Legen Sie models/ und output/ auf einem Volume ab, das sich vergrößern lässt. Sichern Sie Ihre Workflow-JSON-Dateien mit etwas wie verschlüsselten inkrementellen Backups in Object Storage. Die Gewichte können erneut heruntergeladen werden. Die von Ihnen abgestimmten Workflows nicht.

Starten Sie den Dienst und greifen Sie sicher darauf zu

cd ~/ComfyUI
. venv/bin/activate
python main.py --listen 127.0.0.1 --port 8188

ComfyUI stellt den Dienst auf Port 8188 bereit. Auf einem System ohne GPU ergänzen Sie --cpu. Dadurch wird der CPU-Pfad verwendet, statt wegen eines fehlenden CUDA-Geräts abzubrechen.

Binden Sie den Dienst an 127.0.0.1 und nicht an 0.0.0.0. ComfyUI unterstützt inzwischen zwar Benutzerkonten, aber keines davon schützt Ihren Server. Die Anmeldung unter Settings im Abschnitt User meldet Sie bei einem Comfy-Konto an. Sie funktioniert auch bei einer lokalen Installation. Die Comfy-Dokumentation nennt die Anmeldung per E-Mail, Google, GitHub und API key. Dort wird das Konto als Zugang zu Partner-Nodes und Comfy Cloud-Abonnements beschrieben. Nichts in der Dokumentation weist darauf hin, dass es zum Schutz Ihres eigenen Servers durch ein Passwort dient. Das Flag --multi-user aktiviert nur die Speicherung pro Benutzer. Stand Oktober 2026 übernimmt der Server den Benutzernamen aus einem comfy-user-Request-Header und prüft kein Passwort. Jeder, der den Port erreicht, kann Jobs in die Warteschlange einreihen und jedes von Ihnen erzeugte Bild lesen. Wenn Sie den Dienst mit --enable-manager gestartet haben, kann diese Person außerdem Custom Nodes installieren. Das ermöglicht die Ausführung beliebigen Codes auf Ihrem Server. Greifen Sie stattdessen über einen SSH-Tunnel von Ihrem Laptop darauf zu.

ssh -N -L 8188:127.0.0.1:8188 you@your-server

Öffnen Sie anschließend http://127.0.0.1:8188 lokal. Wenn Sie echten Zugriff für mehrere Benutzer benötigen, schalten Sie einen Reverse Proxy mit Authentifizierung davor und binden Sie die Anwendung weiterhin an localhost. Dasselbe gilt für jeden nicht authentifizierten Self-Hosted-Dienst. Dies ist das übliche Muster bei Docker-Compose-Bereitstellungen auf einem VPS.

Unter systemd dauerhaft ausführen

Eine Render-Warteschlange, die beim Schließen Ihrer SSH-Sitzung beendet wird, ist kein Dienst. Führen Sie sie als Benutzer comfy ohne Login aus, nicht als Ihr eigenes Benutzerkonto: Benutzerdefinierte Nodes sind Code, und dieser Code sollte keinen Zugriff auf Ihr Home-Verzeichnis haben. Erstellen Sie den Benutzer und verschieben Sie die Installation in dessen Home-Verzeichnis:

sudo useradd --system --create-home --home-dir /home/comfy --shell /usr/sbin/nologin comfy
sudo mv ~/ComfyUI /home/comfy/
sudo chown -R comfy:comfy /home/comfy/ComfyUI

Die virtuelle Umgebung funktioniert nach dem Verschieben weiterhin, weil die Unit python direkt aufruft. Erstellen Sie anschließend /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.target
sudo systemctl daemon-reload
sudo systemctl enable --now comfyui
systemctl status comfyui

active (running) und eine Logzeile mit To see the GUI go to: http://127.0.0.1:8188 zeigen an, dass der Dienst läuft. Beachten Sie, dass ExecStart den Interpreter innerhalb der virtuellen Umgebung direkt angibt, weil systemd Ihr Shell-Profil nicht ausführt und activate nie ausgeführt wird.

Die pragmatische Empfehlung je nach Budget

Wenn Sie die Bildgenerierung ausprobieren möchten und die Kosten wichtiger sind als die Geschwindigkeit, wählen Sie einen CPU-VPS mit 16 GB RAM, führen Sie SD 1.5 mit 512x512 aus und nehmen Sie ein bis zwei Minuten pro Bild in Kauf. Das ist der realistische Einstieg und kostet nur einen Bruchteil eines Systems mit GPU. Außerdem können Sie dort zunächst die Modellbibliothek und die Workflows hosten, während Sie Ihre Entscheidung treffen.

Wenn Sie täglich mit Prompts iterieren, mieten Sie stundenweise eine GPU mit mindestens 12 GB VRAM bei einem GPU-Cloud-Anbieter und schalten Sie sie ab, sobald Sie sie nicht mehr benötigen. Bildgenerierung erfolgt in Schüben. Eine ungenutzte GPU mit monatlicher Abrechnung ist daher die häufigste Ursache für unnötig hohe Kosten. Speichern Sie die Checkpoints auf günstigem Block-Storage und binden Sie diesen ein.

Wenn Sie andere Personen versorgen oder regelmäßig LoRA-Adapter trainieren, planen Sie 24 GB VRAM und eine dauerhaft betriebene Maschine ein. Der SDXL-Leitfaden von sd-scripts gibt an, dass sich das LoRA-Training bei Verwendung der Einstellungen zur Speichereinsparung mit 8 GB durchführen lässt, und empfiehlt unter Verwendung dieser Einstellungen 10 GB. Der LoRA-Leitfaden der kohya_ss GUI verlangt mindestens 12 GB. Die Angabe von 24 GB im Leitfaden von sd-scripts bezieht sich auf vollständiges SDXL-Fine-Tuning mit Batchgröße 1. Eine 24-GB-Karte deckt daher LoRA-Arbeiten ab und ermöglicht weiterhin Fine-Tuning. Ab diesem Punkt lohnt sich dieselbe Maschine in der Regel auch für den Betrieb eines lokalen Sprachmodells. Diese Konfiguration wird unter Self-Hosting eines LLM mit Ollama beschrieben.

Unabhängig davon, für welche Stufe Sie sich entscheiden, messen Sie Ihre eigene Maschine, bevor Sie veröffentlichten Angaben vertrauen. Stellen Sie denselben Prompt fünfmal in die Warteschlange und lesen Sie die von ComfyUI in der Konsole ausgegebene Dauer pro Iteration in Sekunden ab. Diese Zahl zeigt Ihre tatsächliche Position auf der Leistungsskala.

FAQ

Kann ich Stable Diffusion ohne GPU ausführen?

Ja. ComfyUI läuft mit python main.py --cpu und erzeugt auch ohne Grafikkarte echte Bilder. Rechnen Sie bei Stable Diffusion 1.5 mit 512x512 auf 8 modernen vCPUs mit etwa 60 bis 150 Sekunden pro Bild. Bei SDXL mit 1024x1024 dauert ein Bild etwa zehn bis zwanzig Minuten. Das reicht für Stapelverarbeitung über Nacht und Endpunkte mit geringem Volumen. Für die iterative Anpassung von Prompts ist das nicht geeignet. Training ist damit überhaupt nicht praktikabel.

Wie viel VRAM benötige ich für SDXL?

Mit 8 GB läuft SDXL bei 1024x1024 problemlos. Bei weniger VRAM lagert ComfyUI die Modellgewichte automatisch in den Arbeitsspeicher aus und funktioniert weiterhin. Im Oktober 2026 nennt die README mindestens 4 GB VRAM und 8 GB Arbeitsspeicher. Jeder ausgelagerte Verarbeitungsschritt kostet jedoch Zeit. Mit 12 GB können Sie zusätzlich zum Checkpoint ein ControlNet im VRAM halten. 24 GB reichen für Basismodell, Refiner und Upscaling in einem Workflow. Laut dem Leitfaden zu den kohya-ss sd-scripts ist SDXL-LoRA-Training mit 8 GB möglich, wenn Sie die Einstellungen zur Speichereinsparung verwenden; empfohlen werden 10 GB. Der LoRA-Leitfaden der kohya_ss GUI verlangt dagegen mindestens 12 GB. Vollständiges SDXL-Fine-Tuning benötigt bei Batchgröße 1 24 GB.

Wie viel Speicherplatz benötigen die Modelle?

Der SDXL-Basis-Checkpoint allein belegt 6.94 GB. Der Refiner benötigt zusätzlich etwa 6 GB. SDXL-ControlNet-Modelle belegen bei halber Genauigkeit jeweils 320 MB bis 2.5 GB. LoRA-Adapter benötigen einige Dutzend Megabyte bis 787 MB. Real-ESRGAN-Upscaler belegen 2.5 MB bis 67 MB. Planen Sie für eine funktionsfähige Installation mit einigen Basismodellen 100 GB ein. Überwachen Sie das Ausgabeverzeichnis separat, da 1024x1024-PNG-Dateien jeweils 1 bis 2 MB groß sind.

Ist es sicher, ComfyUI im öffentlichen Internet bereitzustellen?

Nein. Die Anmeldung beim Comfy-Konto in den Einstellungen von ComfyUI funktioniert auch bei einer lokalen Installation. Sie gewährt jedoch Zugriff auf die Partner-Nodes und Cloud-Abonnements von Comfy. In der Dokumentation von Comfy wird sie nicht als Schutz für Ihren Server beschrieben. Das Flag --multi-user trennt lediglich den Speicher pro Benutzer, ohne ein Passwort zu prüfen. Wenn ComfyUI-Manager aktiviert ist, installiert die Oberfläche Custom Nodes. Dabei handelt es sich um Python-Code, der auf Ihrem Server ausgeführt wird. Ein offener Port ermöglicht daher die Remote-Codeausführung. Binden Sie ComfyUI an 127.0.0.1. Greifen Sie über einen SSH-Tunnel mit ssh -N -L 8188:127.0.0.1:8188 you@your-server darauf zu. Wenn mehrere Personen Zugriff benötigen, schalten Sie einen Reverse Proxy mit Authentifizierung davor.

Warum wurde mein Rendering ohne Fehlermeldung beendet?

Wenn der Prozess mit Killed in dmesg verschwindet und kein Python-Traceback erscheint, war der Linux-Out-of-Memory-Killer die Ursache, nicht ein Fehler in ComfyUI. Auf einem System ohne GPU liegen die Gewichte im Arbeitsspeicher. SDXL benötigt daher etwa 16 GB und SD 1.5 etwa 8 GB, jeweils zuzüglich Arbeitsspeicher für die Verarbeitung. Erweitern Sie den Arbeitsspeicher, fügen Sie Swap hinzu oder verwenden Sie ein kleineres Modell mit niedrigerer Auflösung.

War dieser Artikel hilfreich?