Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Künstliche Intelligenz 11.06.2026 · 10 min Lesezeit

AUTOMATIC1111 Stable Diffusion WebUI mit Docker installieren: Meistgenutzte Web-Oberfläche für lokale KI-Bildgenerierung

AUTOMATIC1111 ist mit über 164.000 GitHub-Stars die meistgenutzte Stable-Diffusion-WebUI. Diese Anleitung zeigt, wie du sie über das ai-dock-Image plattformneutral per Docker Compose betreibst – mit GPU-Zugriff, persistenten Volumes und Verifikation nach jedem Schritt.

S EDV Grafik zu AUTOMATIC1111 Stable Diffusion WebUI mit Docker

AUTOMATIC1111 Stable Diffusion WebUI ist die meistgenutzte Browser-Oberfläche für lokale KI-Bildgenerierung. Ob txt2img, img2img, Inpainting, Upscaling oder LoRA-Training – alle wesentlichen Stable-Diffusion-Workflows laufen direkt im Browser, ohne Cloud-Anbindung und ohne monatliche Kosten. Mit über 164.000 GitHub-Stars und Hunderten von Community-Extensions (ControlNet, ADetailer, LoRA u.v.m.) ist sie der De-facto-Standard für alle, die Stable Diffusion selbst betreiben. Diese Anleitung zeigt dir, wie du die WebUI mit Docker Compose auf einem beliebigen Linux-Host, einer VM oder einem leistungsstarken NAS einrichtest – plattformneutral, reproduzierbar und mit persistenten Volumes für Modelle, Outputs und Extensions.

Voraussetzungen

  1. Docker Engine >= 24.0 mit Docker Compose V2 Plugin auf einem Linux-Host (Ubuntu 22.04 / 24.04 oder Debian 12 empfohlen). Falls noch nicht installiert, findest du die vollständige Einrichtung in unserer Grundlage: Docker und Docker Compose auf Linux installieren.
  2. NVIDIA Container Toolkit (nvidia-container-toolkit) für GPU-Betrieb, NVIDIA-Treiber >= 525 auf dem Host. Ohne das Toolkit wird der deploy-Block ignoriert und die WebUI läuft ohne GPU.
  3. NVIDIA-GPU mit mindestens 4 GB VRAM für sinnvollen Betrieb (empfohlen: 8 GB+ für SDXL). CPU-Betrieb ist möglich, aber 10–60× langsamer.
  4. Mindestens 50 GB freier Speicherplatz: Das Docker-Image belegt ca. 10–15 GB, ein SD-1.5-Modell ca. 2 GB, SDXL ca. 6 GB.
  5. Mindestens 16 GB RAM (empfohlen: 32 GB), x86_64/amd64-Architektur – kein ARM64/Apple-Silicon-Support.
  6. Ein Stable-Diffusion-Modell im .safetensors- oder .ckpt-Format (z. B. SD 1.5 kostenlos von HuggingFace).
  7. Optional: HuggingFace-Account + Token für gated Modelle (SD 3.x, FLUX), Civitai-Account + Token für Civitai-Modelle.

Schritt 1: Projektordner und Verzeichnisstruktur anlegen

Lege einen dedizierten Ordner für den Stack an. Alle Unterverzeichnisse für Modelle, Outputs und Extensions musst du vorab erstellen, da Docker sie sonst als root anlegt und Permission-Fehler entstehen können.

mkdir -p /opt/automatic1111
cd /opt/automatic1111
mkdir -p models/Stable-diffusion models/Lora models/VAE models/ControlNet outputs extensions

Die Verzeichnisstruktur sieht danach so aus:

/opt/automatic1111/
├── compose.yaml
├── .env
├── models/
│   ├── Stable-diffusion/   # .safetensors-Modelle
│   ├── Lora/
│   ├── VAE/
│   └── ControlNet/
├── outputs/                # generierte Bilder
└── extensions/             # installierte WebUI-Extensions

Verifizieren: Prüfe die Ordnerstruktur mit ls -la /opt/automatic1111/ – alle sechs Unterverzeichnisse sollten als Verzeichnisse (nicht Dateien) mit deinem User als Eigentümer erscheinen.

Schritt 2: .env-Datei mit Konfiguration anlegen

Alle variablen Einstellungen gehören in die .env-Datei, die im gleichen Verzeichnis wie compose.yaml liegt. Passe insbesondere WEB_PASSWORD an – der Standard password ist ein Sicherheitsrisiko, sobald Port 7860 im Netzwerk erreichbar ist.

# /opt/automatic1111/.env

# Netzwerk
WEBUI_PORT=7860

# WebUI-Startargumente
# --listen: PFLICHT für Netzwerkzugriff (Gradio bindet sonst nur 127.0.0.1)
# --api: aktiviert REST-API (erreichbar unter /docs)
# --xformers: reduziert VRAM-Bedarf (nur NVIDIA; für AMD/CPU weglassen)
WEBUI_ARGS=--xformers --api --listen

# Authentifizierung (im ai-dock-Image standardmäßig AKTIVIERT)
# Für lokalen Betrieb: false; für Netzwerkzugriff: true + sicheres Passwort!
WEB_ENABLE_AUTH=false
WEB_USER=admin
WEB_PASSWORD=sicheresPasswort123

# Modell-Tokens (optional, für gated Modelle)
CIVITAI_TOKEN=
HF_TOKEN=

# Auto-Update beim Containerstart (Standard: false)
AUTO_UPDATE=false

# Zeitzone
TZ=Europe/Berlin

Wichtig: Setze WEB_ENABLE_AUTH=true und ein starkes Passwort, sobald Port 7860 über das lokale Netzwerk oder das Internet erreichbar ist. Für externe HTTPS-Exposition empfiehlt sich zusätzlich ein Reverse Proxy – wie in unserer Anleitung zu Traefik als Docker-Reverse-Proxy mit automatischem HTTPS beschrieben.

Verifizieren: cat /opt/automatic1111/.env – alle Variablen müssen sichtbar sein, kein Syntaxfehler (keine Leerzeichen um =).

Schritt 3: compose.yaml erstellen

Das ai-dock-Image unterstützt drei Varianten: latest-cuda (NVIDIA), latest-rocm (AMD) und latest-cpu. Für Produktivbetrieb empfehlen sich versionierte Tags wie :v2-cuda-12.1.1-base-22.04 statt :latest-cuda, da latest-Tags sich ohne Vorwarnung ändern können. Die nachfolgende Konfiguration ist für NVIDIA optimiert – Abweichungen für AMD und CPU sind im Troubleshooting-Abschnitt dokumentiert.

ParameterWertHinweis
Image (NVIDIA)ghcr.io/ai-dock/stable-diffusion-webui:latest-cudaEmpfohlen; stabiler: :v2-cuda-12.1.1-base-22.04
Image (AMD)ghcr.io/ai-dock/stable-diffusion-webui:latest-rocmROCm 6.0: :v2-rocm-6.0-core-22.04
Image (CPU)ghcr.io/ai-dock/stable-diffusion-webui:latest-cpuSehr langsam, kein GPU-Block
WebUI-Port7860Gradio-Standard, über WEBUI_PORT änderbar
Interner Pfad/opt/stable-diffusion-webuiai-dock-spezifisch; andere Images weichen ab
LizenzAGPL-3.0Kommerzielle Nutzung erlaubt, Änderungen müssen veröffentlicht werden
# /opt/automatic1111/compose.yaml
services:
  automatic1111:
    image: ghcr.io/ai-dock/stable-diffusion-webui:latest-cuda
    container_name: automatic1111
    restart: unless-stopped
    ports:
      - "${WEBUI_PORT:-7860}:7860"
    volumes:
      - ./models/Stable-diffusion:/opt/stable-diffusion-webui/models/Stable-diffusion
      - ./models/Lora:/opt/stable-diffusion-webui/models/Lora
      - ./models/VAE:/opt/stable-diffusion-webui/models/VAE
      - ./models/ControlNet:/opt/stable-diffusion-webui/models/ControlNet
      - ./outputs:/opt/stable-diffusion-webui/outputs
      - ./extensions:/opt/stable-diffusion-webui/extensions
    environment:
      - WEBUI_ARGS=${WEBUI_ARGS:---xformers --api --listen}
      - WEB_ENABLE_AUTH=${WEB_ENABLE_AUTH:-false}
      - WEB_USER=${WEB_USER:-admin}
      - WEB_PASSWORD=${WEB_PASSWORD:-changeme}
      - CIVITAI_TOKEN=${CIVITAI_TOKEN:-}
      - HF_TOKEN=${HF_TOKEN:-}
      - AUTO_UPDATE=${AUTO_UPDATE:-false}
      - TZ=${TZ:-Europe/Berlin}
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

Der deploy-Block am Ende ist nur für NVIDIA relevant. AMD-Nutzer ersetzen ihn durch Device-Mounts (siehe Troubleshooting). CPU-Nutzer lassen den gesamten Block weg und entfernen --xformers aus den WEBUI_ARGS.

Verifizieren: Prüfe die YAML-Syntax mit docker compose config im Projektordner. Die Ausgabe zeigt die aufgelöste Konfiguration; Fehler wie falsche Einrückung oder ungültige Keys werden sofort gemeldet. Kein Fehler = Datei korrekt.

Schritt 4: Stable-Diffusion-Modell herunterladen

AUTOMATIC1111 liefert keine Modell-Gewichte mit – du musst mindestens eine .safetensors-Datei in ./models/Stable-diffusion/ ablegen. Ohne Modell startet die WebUI zwar, zeigt aber „No models found" an. Das Beispiel lädt SD 1.5 (~2 GB) von HuggingFace:

wget -P /opt/automatic1111/models/Stable-diffusion/ \
  "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"

Für SDXL-Modelle (~6 GB) oder geschützte Modelle (SD 3.x, FLUX) benötigst du einen HuggingFace-Account und trägst den Token als HF_TOKEN in die .env ein. Civitai-Modelle benötigen entsprechend einen CIVITAI_TOKEN.

Verifizieren: ls -lh /opt/automatic1111/models/Stable-diffusion/ – die .safetensors-Datei muss direkt im Verzeichnis liegen (nicht in einem Unterordner), mit einer Dateigröße im GB-Bereich. Ein Modell von wenigen KB deutet auf einen unterbrochenen Download hin.

Schritt 5: Container starten und ersten Start abwarten

Starte den Stack aus dem Projektordner heraus:

cd /opt/automatic1111
docker compose up -d

Beim ersten Start lädt das Image Python-Abhängigkeiten und PyTorch nach – das dauert je nach Internetgeschwindigkeit und Hardware 5–15 Minuten. Beobachte den Fortschritt mit:

docker compose logs -f automatic1111

Die WebUI ist bereit, wenn du in den Logs folgende Zeile siehst:

Running on local URL:  http://0.0.0.0:7860

Prüfe den Container-Status:

docker compose ps

Erwartete Ausgabe (gekürzt):

NAME             IMAGE                                           STATUS         PORTS
automatic1111    ghcr.io/ai-dock/stable-diffusion-webui:...     Up 3 minutes   0.0.0.0:7860->7860/tcp

Verifizieren: HTTP-Erreichbarkeit testen:

curl -I http://localhost:7860

Erwartete Antwort: HTTP/1.1 200 OK. Falls curl: (7) Failed to connect erscheint, sind die Abhängigkeiten noch nicht geladen – Logs weiter beobachten.

Schritt 6: WebUI im Browser einrichten

Öffne http://localhost:7860 (oder die IP deines Servers) im Browser. Falls WEB_ENABLE_AUTH=true gesetzt ist, erscheint ein Login-Dialog – melde dich mit den Werten aus WEB_USER und WEB_PASSWORD an.

In der WebUI kannst du nun:

  1. Modell auswählen: Oben links im Dropdown „Stable Diffusion checkpoint" dein heruntergeladenes Modell wählen.
  2. txt2img testen: Einen Prompt eingeben (z. B. „a photorealistic mountain landscape at sunset") und auf „Generate" klicken. Das erste Bild dauert etwas länger, da PyTorch-Caches aufgebaut werden.
  3. Extensions installieren: Tab „Extensions" → „Install from URL" → Repository-URL von ControlNet oder ADetailer einfügen. Extensions sind persistent, weil der ./extensions-Volume-Mount gesetzt ist.
  4. REST-API nutzen: Die API-Dokumentation ist unter http://localhost:7860/docs erreichbar (Swagger UI). Endpunkt für Bildgenerierung: POST /sdapi/v1/txt2img. Die API muss über --api in WEBUI_ARGS aktiviert sein.

Verifizieren: Generiere ein Testbild mit Standardeinstellungen (512×512, 20 Steps). Die Datei erscheint in /opt/automatic1111/outputs/txt2img-images/ auf dem Host – prüfe mit ls -lt /opt/automatic1111/outputs/txt2img-images/, ob eine neue PNG-Datei vorhanden ist.

Schritt 7: Updates und Wartung

AUTOMATIC1111 kann auf zwei Wegen aktualisiert werden:

Option A – Auto-Update beim Containerstart (zieht den neuesten WebUI-Code, nicht das Image): AUTO_UPDATE=true in .env setzen und Container neu starten.

Option B – Neues ai-dock-Image ziehen (empfohlen für größere Updates):

cd /opt/automatic1111
docker compose pull
docker compose up -d

Für automatische Image-Updates ohne manuellen Eingriff eignet sich Watchtower – beachte dort die Hinweise zur Update-Strategie für Produktivumgebungen.

Container stoppen (ohne Datenverlust – alle Daten liegen in den Volumes auf dem Host):

docker compose down

Verifizieren: Nach docker compose pull zeigt docker compose images das neue Image-Datum. Nach docker compose up -d läuft der Container wieder mit docker compose ps.

Troubleshooting / Typische Fehler

  1. „RuntimeError: CUDA error: no kernel image" / GPU nicht erkannt: NVIDIA Container Toolkit nicht installiert oder Docker-Daemon nicht neu gestartet. Lösung: sudo apt install nvidia-container-toolkit && sudo systemctl restart docker. Test: docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi – zeigt die GPU-Info an.
  2. WebUI nur auf localhost erreichbar, kein Netzwerkzugriff: --listen fehlt in WEBUI_ARGS. Gradio bindet standardmäßig nur 127.0.0.1. Fix: WEBUI_ARGS=--xformers --api --listen in .env setzen, Container neu starten.
  3. „CUDA out of memory" / Out of shared memory: Zu wenig VRAM. Lösung: --medvram (für ~6 GB VRAM) oder --lowvram (für ~4 GB VRAM) zu WEBUI_ARGS hinzufügen. SDXL benötigt mindestens 8 GB.
  4. Container startet, aber WebUI lädt nach 10 Minuten noch nicht: Erster Start lädt Dependencies – langsame Internetverbindung verlängert das. docker compose logs -f automatic1111 beobachten; auf „Running on local URL" warten.
  5. „No models found" in der WebUI: Volume-Mount falsch oder Modelldatei im falschen Unterverzeichnis. Die .safetensors-Datei muss direkt in models/Stable-diffusion/ liegen. Container nach dem Verschieben neu starten.
  6. Permission denied auf Volume-Mounts (Linux): Container-Prozess läuft mit anderem UID als der Host-User. Lösung: chmod -R 777 /opt/automatic1111/models /opt/automatic1111/outputs /opt/automatic1111/extensions oder korrekten user:-Eintrag in compose.yaml setzen.
  7. „xformers is not installed" / ERROR: --xformers in WEBUI_ARGS gesetzt, aber ROCm- oder CPU-Variante verwendet. xformers ist NVIDIA-only. Für AMD: --precision full --no-half verwenden; --xformers entfernen.
  8. AMD ROCm – GPU-Konfiguration: Statt dem deploy-Block folgendes in compose.yaml verwenden: devices: [/dev/kfd:/dev/kfd, /dev/dri:/dev/dri], group_add: [video], ipc: host. Image-Tag: latest-rocm.
  9. Port 7860 bereits belegt: Fehlermeldung „Bind for 0.0.0.0:7860 failed: port is already allocated". Lösung: WEBUI_PORT=7861 in .env setzen.
  10. Extensions gehen nach Neustart verloren: ./extensions:/opt/stable-diffusion-webui/extensions nicht in compose.yaml eingetragen. Nach dem Hinzufügen: docker compose up -d --force-recreate.
  11. Standard-Passwort „password" aktiv: WEB_ENABLE_AUTH=true ist im ai-dock-Image Standard. Wenn Port 7860 im Netzwerk erreichbar ist, unbedingt WEB_PASSWORD in .env auf ein sicheres Passwort setzen.

Häufige Fragen

Welche Modelle sind kompatibel?

Alle Stable-Diffusion-Modelle im .safetensors- oder .ckpt-Format: SD 1.4, 1.5, 2.0, 2.1, SDXL 1.0, SDXL-Turbo, SD 3.x (mit HF_TOKEN). Modelle lädst du von HuggingFace oder Civitai herunter und legst sie in ./models/Stable-diffusion/ ab. LoRA-Adapter kommen nach ./models/Lora/, VAE-Dateien nach ./models/VAE/.

Wie aktiviere ich die REST-API für externe Tools?

--api muss in WEBUI_ARGS stehen (ist in der Beispiel-.env bereits enthalten). Die API-Dokumentation ist dann unter http://localhost:7860/docs erreichbar. Endpunkt für Bildgenerierung: POST /sdapi/v1/txt2img. Für KI-Workflows per n8n oder Python ist die API die zentrale Schnittstelle.

Wie installiere ich Extensions wie ControlNet oder ADetailer?

WebUI öffnen → Tab „Extensions" → „Install from URL" → Repository-URL einfügen → „Install" klicken → „Apply and restart UI". Extensions sind persistent, solange der ./extensions-Volume-Mount in compose.yaml gesetzt ist. Nach einem Container-Neustart sind sie sofort wieder verfügbar.

Funktioniert AUTOMATIC1111 ohne NVIDIA-GPU (AMD oder CPU)?

Ja: Für AMD das latest-rocm-Image verwenden und den NVIDIA-deploy-Block durch ROCm-Device-Mounts ersetzen (siehe Troubleshooting). Für CPU das latest-cpu-Image nehmen, den deploy-Block weglassen und WEBUI_ARGS=--skip-torch-cuda-test --use-cpu all --precision full --no-half --listen setzen. Ein 512×512-Bild dauert auf CPU ca. 5–30 Minuten – für Tests nutzbar, für regelmäßigen Betrieb kaum praktikabel.

Wie update ich AUTOMATIC1111 auf eine neue Version?

Einfachste Methode: AUTO_UPDATE=true in .env setzen und Container neu starten (docker compose restart). Für ein vollständiges Image-Update: docker compose pull && docker compose up -d. Einen bestimmten WebUI-Branch oder Commit pinnen: WEBUI_BRANCH=v1.10.1 in .env eintragen.

Wie viel Speicherplatz wird insgesamt benötigt?

Das Docker-Image belegt ca. 10–15 GB. Ein SD-1.5-Modell ca. 2 GB, SDXL ca. 6 GB, ControlNet-Modelle je 1–5 GB. Für einen vollständigen Setup mit mehreren Modellen, Extensions und wachsendem Outputs-Ordner sollten mindestens 50 GB freier Speicherplatz vorhanden sein.

Gibt es ein offizielles AUTOMATIC1111-Docker-Image?

Nein – das AUTOMATIC1111-Projekt selbst veröffentlicht kein Docker-Image. Viele Blog-Beiträge behaupten das fälschlicherweise. Die offizielle Wiki-Seite „Containers" verweist explizit auf externe Community-Projekte; empfohlen ist das ai-dock-Image von ghcr.io/ai-dock/stable-diffusion-webui, das aktiv gewartet wird.

Fazit

AUTOMATIC1111 ist nach wie vor die mächtigste und am weitesten verbreitete Web-Oberfläche für Stable Diffusion – und dank des ai-dock-Images lässt sie sich in wenigen Minuten als Docker-Stack aufsetzen. Der Weg über compose.yaml und .env ist reproduzierbar, plattformneutral und lässt sich problemlos auf jeden Linux-Host, eine Proxmox-VM oder ein leistungsstarkes NAS portieren. Die wichtigsten Stolpersteine – kein offizielles Image, --listen-Pflicht in WEBUI_ARGS, NVIDIA Container Toolkit als Voraussetzung und das Standard-Passwort im ai-dock-Image – sind in dieser Anleitung alle adressiert. Wer statt einer klassischen WebUI einen node-basierten Workflow-Editor bevorzugt, findet eine gute Alternative in unserer Anleitung zu ComfyUI mit Docker.

Weiterführende Anleitungen und Quellen

  1. Docker und Docker Compose auf Linux installieren – die Self-Hosting-Grundlage
  2. ComfyUI mit Docker: KI-Bildgenerierung mit Stable Diffusion (node-basierter Workflow-Editor)
  3. Ollama und Open WebUI mit Docker: eigenes lokales KI-Sprachmodell ohne Cloud betreiben
  4. Traefik als Docker-Reverse-Proxy mit automatischem HTTPS einrichten

Offizielle Quellen: AUTOMATIC1111/stable-diffusion-webui auf GitHub, AUTOMATIC1111 Wiki – Containers, ai-dock/stable-diffusion-webui (empfohlenes Community-Image).