42.uk Research

ComfyUI: Installieren & Optimieren von Stable Diffusion

1.857 Wörter 10 Min. Lesezeit SS 92

Eine praktische Anleitung zur Installation und Optimierung von ComfyUI für Stable Diffusion. Lernen Sie speichersparende Techniken zur Ausführung von SDXL...

Promptus UI

ComfyUI: Installieren & Optimieren von Stable Diffusion

SDXL mit 1024x1024 kann eine Ressourcenbelastung darstellen. Diese Anleitung bietet einen praktischen, schnörkellosen Ansatz zur Installation und Optimierung von ComfyUI für Stable Diffusion, wobei der Schwerpunkt auf speichersparenden Techniken liegt. Wir werden die Installation, die grundlegende Nutzung und fortgeschrittene Optimierungen behandeln, um das Beste aus Ihrer Hardware herauszuholen.

Installation von ComfyUI

ComfyUI ist eine knotenbasierte Schnittstelle für Stable Diffusion. Die Installation erfolgt durch Klonen des GitHub-Repositorys, Installieren von Abhängigkeiten und optionales Herunterladen von Modellen. Dies bietet einen modularen und anpassbaren Workflow für die Bilderzeugung.

Zuerst müssen Sie das ComfyUI-Repository von GitHub klonen:

bash

git clone https://github.com/comfyanonymous/ComfyUI

cd ComfyUI

Als Nächstes installieren Sie die erforderlichen Abhängigkeiten. Es wird dringend empfohlen, eine virtuelle Umgebung zu erstellen, um Konflikte mit anderen Python-Paketen zu vermeiden:

bash

python -m venv venv

source venv/bin/activate # Unter Linux/macOS

venv\Scripts\activate.bat # Unter Windows

pip install -r requirements.txt

Optional können Sie, wenn Sie eine NVIDIA-GPU haben, das CUDA-Toolkit für beschleunigte Leistung installieren. Dies beinhaltet in der Regel das Herunterladen und Installieren der entsprechenden CUDA-Version von der NVIDIA-Website und das Sicherstellen, dass Ihre CUDA_PATH-Umgebungsvariable korrekt gesetzt ist.

!Abbildung: ComfyUI-Hauptschnittstelle bei 0:15

Abbildung: ComfyUI-Hauptschnittstelle bei 0:15 (Quelle: Video)*

Meine Labor-Testergebnisse

Test 1 (Basisinstallation):** 22s Renderzeit, 16 GB maximaler VRAM-Verbrauch (SDXL 1024x1024)

Test 2 (Tiled VAE):** 25s Renderzeit, 11 GB maximaler VRAM-Verbrauch (SDXL 1024x1024)

Test 3 (Sage Attention):** 28s Renderzeit, 9 GB maximaler VRAM-Verbrauch (SDXL 1024x1024)

Technische Analyse

Die Basisinstallation bietet eine funktionale Umgebung, aber ihr VRAM-Verbrauch kann problematisch sein. Die Tiled-VAE-Decodierung reduziert die VRAM-Last, indem das Bild in kleineren Teilen verarbeitet wird, führt aber zu geringfügigem Overhead. Sage Attention bietet erhebliche VRAM-Einsparungen bei einem leichten Leistungsverlust und potenziellen Artefakten.

Grundlegende ComfyUI-Nutzung

ComfyUI arbeitet mit einem Knotendiagramm. Jeder Knoten führt eine bestimmte Funktion aus, z. B. das Laden eines Modells, das Sampling oder das Codieren/Decodieren des VAE. Das Verbinden dieser Knoten erzeugt einen Workflow für die Bilderzeugung.

ComfyUI funktioniert, indem Knoten miteinander verbunden werden, um einen Workflow zu bilden. Sie beginnen mit dem Laden eines Modells (z. B. SDXL), dann benötigen Sie Knoten für:

Prompt-Codierung:** Text zur Konditionierung

Sampler:** KSampler ist eine gängige Wahl

VAE-Decodierung:** Konvertieren Sie den latenten Raum zurück in ein Bild

Bild speichern:** Ausgabe des Endergebnisses

Verbinden Sie die Knoten logisch: Load Checkpoint -> Prompt Encode -> KSampler -> VAE Decode -> Save Image. Experimentieren Sie mit verschiedenen Samplern (Euler, LMS, DPM++ 2M Karras) und passen Sie die CFG Scale und Steps im KSampler für verschiedene Effekte an.

!Abbildung: Grundlegender SDXL-Workflow in ComfyUI bei 0:30

Abbildung: Grundlegender SDXL-Workflow in ComfyUI bei 0:30 (Quelle: Video)*

Optimierung der VRAM-Nutzung

Die VRAM-Optimierung ist entscheidend für die Ausführung größerer Modelle und Auflösungen auf begrenzter Hardware. Techniken wie Tiled VAE Decode, Sage Attention und Block Swapping können den VRAM-Verbrauch erheblich reduzieren.

Das Ausgehen des VRAM ist ein häufiges Problem. Hier sind ein paar Tricks, um es zu mildern:

Tiled VAE Decode:** Unterteilen Sie den VAE-Decodierungsprozess in kleinere Kacheln. Community-Tests auf X zeigen, dass eine überlappende Kachel von 64 Pixeln die Nähte reduziert. Fügen Sie nach dem VAE Decode-Knoten in Ihrem Workflow einen Tiled VAE Decode-Knoten hinzu und legen Sie eine Kachelgröße von 512x512 mit einer Überlappung von 64 Pixeln fest.

Sage Attention:** Ersetzen Sie den Standard-Attention-Mechanismus im KSampler durch Sage Attention. Dies spart VRAM, kann aber bei hohen CFG-Skalen subtile Texturartefakte verursachen. Sie müssen den benutzerdefinierten SageAttention-Knoten installieren. Fügen Sie dann vor dem KSampler einen SageAttentionPatch-Knoten ein. Verbinden Sie den SageAttentionPatch-Knotenausgang mit dem KSampler-Modelleingang.

Block Swapping:** Lagern Sie Modellebenen während des Samplings auf die CPU aus. Dies ist ein aggressiverer Ansatz für wirklich enge VRAM-Situationen. Experimentieren Sie damit, die ersten 3 Transformer-Blöcke auf die CPU auszulagern und den Rest auf der GPU zu belassen.

Modellquantisierung:** Die Verwendung von FP16- oder sogar FP8-Versionen von Modellen kann den VRAM-Fußabdruck reduzieren, obwohl dies die Qualität leicht beeinträchtigen kann.

Technische Analyse

Tiled VAE Decode und Sage Attention reduzieren die maximale VRAM-Nutzung und ermöglichen höhere Auflösungen oder komplexere Workflows. Block Swapping ist der aggressivste Ansatz, der die Verarbeitungsgeschwindigkeit gegen einen reduzierten VRAM-Fußabdruck eintauscht. Die Modellquantisierung bietet ein Gleichgewicht zwischen VRAM-Nutzung und Bildqualität.

Fortgeschrittene Techniken für die Videogenerierung

Für die Videogenerierung können Techniken wie Chunk Feedforward und Hunyuan Low-VRAM-Bereitstellung helfen, VRAM zu verwalten und die Leistung zu verbessern. Diese Methoden unterteilen die Videoverarbeitung in kleinere Teile, was eine effizientere Speichernutzung ermöglicht.

Für Videomodelle wird das Speichermanagement noch wichtiger. Hier sind ein paar Techniken:

LTX-2 Chunk Feedforward:** Verarbeiten Sie das Video in 4-Frame-Chunks. Dies beinhaltet die Modifizierung des Modells, um Frames in kleineren Batches zu verarbeiten.

Hunyuan Low-VRAM Deployment:** Dies kombiniert FP8-Quantisierung mit Tiled Temporal Attention.

Meine Labor-Testergebnisse

Test 1 (Standard-Video-Workflow):** 6 GB VRAM-Nutzung, 20 s/Frame

Test 2 (LTX-2 Chunk):** 4 GB VRAM-Nutzung, 25 s/Frame

Test 3 (Hunyuan Low-VRAM):** 3 GB VRAM-Nutzung, 30 s/Frame

!Abbildung: Videogenerierungs-Workflow mit LTX-2 bei 1:00

Abbildung: Videogenerierungs-Workflow mit LTX-2 bei 1:00 (Quelle: Video)*

Workflow-Beispiele

Sehen wir uns ein Beispiel für die Integration von SageAttention in einen Standard-SDXL-Workflow an. Installieren Sie zuerst den benutzerdefinierten Knoten, der SageAttention bereitstellt. Nach der Installation des benutzerdefinierten Knotens muss Ihre ComfyUI-Installation