Zum Inhalt

ComfyUI mit AMD/ROCm

Lokale KI-Bildgenerierung auf einer AMD Radeon – kein NVIDIA, keine Cloud, keine laufenden Kosten. ComfyUI ist die flexibelste Oberfläche dafür (node-basiert). Hier über Docker mit ROCm, damit du dir die Treiber-Bastelei sparst.

Voraussetzungen

  • Linux mit installiertem AMD-Grafiktreiber und ROCm-fähiger GPU (RDNA2/RDNA3)
  • Docker
  • Ordentlich Plattenplatz – SDXL-Modelle sind je 6–7 GB groß

1. Ordner anlegen

mkdir -p comfyui/{models,output} && cd comfyui

2. Compose-Datei anlegen

compose.yaml:

services:
  comfyui:
    image: corundex/comfyui-rocm:latest
    container_name: comfyui
    restart: unless-stopped
    ports:
      - "8188:8188"
    devices:
      - /dev/kfd            # ROCm-Compute-Interface
      - /dev/dri            # GPU
    group_add:
      - video
      - render
    security_opt:
      - seccomp:unconfined
    environment:
      # Nur nötig, wenn ROCm deine Karte nicht offiziell kennt.
      # RX 7000 (RDNA3): 11.0.0  |  RX 6000 (RDNA2): 10.3.0
      - HSA_OVERRIDE_GFX_VERSION=11.0.0
    volumes:
      - ./models:/app/models
      - ./output:/app/output

3. Starten

docker compose up -d
docker compose logs -f

Sobald To see the GUI go to: http://0.0.0.0:8188 erscheint, ist alles bereit. Oberfläche öffnen: http://<server-ip>:8188.

Karte wird nicht erkannt?

Prüfe zuerst, ob die GPU im Container sichtbar ist:

docker exec -it comfyui rocminfo | grep -i "Marketing Name"

Kommt hier nichts, stimmt meist der HSA_OVERRIDE_GFX_VERSION nicht oder dein User ist nicht in den Gruppen video/render. Letzteres prüfst du mit id.

4. Ein Modell einbinden

Lade ein SDXL-Checkpoint (z. B. von einer Modell-Plattform deiner Wahl) und leg die .safetensors-Datei hier ab:

# Beispielpfad – Datei in den Checkpoints-Ordner kopieren
cp ~/Downloads/mein-modell.safetensors comfyui/models/checkpoints/

Danach in der Oberfläche im Load Checkpoint-Node oben rechts auf das Refresh-Symbol (oder R drücken) – das Modell taucht in der Auswahl auf.

5. Erstes Bild

Der Standard-Workflow ist beim Start schon geladen. Trag im CLIP Text Encode (Prompt)-Node oben deinen Prompt ein und klick auf Queue Prompt. Das fertige Bild landet unter output/.

Reproduzierbare Ergebnisse

Der KSampler-Node hat ein Feld seed. Steht es auf randomize, bekommst du jedes Mal ein anderes Bild. Willst du eins gezielt nachbauen, setz den Seed auf fixed und notier dir den Wert.

Fertig

Du hast jetzt eine lokale Bild-Pipeline, die nach dem Einrichten nichts mehr kostet außer Strom. Perfekte Basis, um später Workflows zu automatisieren oder in andere Dienste einzubinden.