Stellen Sie die Stable Diffusion-Webbenutzeroberfläche auf dem GPU-Cloud-Server bereit

1. Einleitung

Kürzlich habe ich recherchiert, wie ich die feinkörnige Controlnet-Steuerung von Stable Diffusion verwenden kann, um zufriedenstellende Bilder zu erzeugen, aber meine lokale Grafikkarte hat nur 6 GB Videospeicher, und die Openpose-Funktion von Controlnet erfordert mehr als 10 GB Videospeicher, um Bilder normal zu produzieren. Wir können also nur einen GPU-Cloud-Server mieten und das SD-Modell auf dem Server bereitstellen und dann über einen lokalen Browser darauf zugreifen.

2. Über die Wahl des Cloud-Servers

Empfehlen Sie diesen Artikel: GPU-Cloud-Server-Plattformen im Vergleich! Welche ist die empfehlenswerteste?
Ich verwende AutoDL selbst, aber ich habe kein eigenes Stable Diffusion-Modell verwendet, also habe ich es von Grund auf neu bereitgestellt. Ich empfehle diese nicht, denn wenn Sie Pay-as-you-go verwenden , sind nach dem Shutdown oft keine Karten mehr verfügbar, insbesondere die beliebte Karte 3090.

3. Über die Maschinenauswahl

Am Beispiel von AutoDL gehen Sie nach Abschluss der Registrierung zur folgenden Schnittstelle, um die Maschine auszuwählen:

Bildbeschreibung hier einfügen
Im Allgemeinen ist 3090 zu diesem Zeitpunkt die bessere Wahl in Bezug auf Preis und Speichergröße und ist natürlich oft ausverkauft.

In Bezug auf die Abrechnungsmethode wird nur Pay-as-you-go empfohlen , und viele Plattformen mit Rabatten können 3090-Grafikkarten für 1 bis 2 Yuan/Stunde mieten. Es sei denn, Sie müssen ein großes Modell trainieren, wenn Sie es nur selbst verwenden, wird nicht empfohlen, den Tag / die Woche / den Monat zu packen, und der Preis wird in einem Jahr für Sie selbst zu kaufen sein. Der Nachteil von Pay-as-you-go ist, dass es nach dem Herunterfahren aufgrund von nicht genügend freien Grafikkarten möglicherweise nicht normal booten kann.

Bildbeschreibung hier einfügen

AutoDL wird mit NovelAI geliefert, aber bei der tatsächlichen Verwendung können verschiedene Fehler auftreten, von denen die meisten Probleme mit der Python-Version sind . Zu diesem Zeitpunkt sind alle mit Python 3.8 auf ihren Maschinen ausgestattet, aber die neueste Version von Stable-Diffusion erfordert eine 3.10-Umgebung, daher wird nicht empfohlen, das integrierte Python 3.8 zu verwenden, sondern die folgende Konfiguration zu wählen:

Bildbeschreibung hier einfügen
Es muss hier erwähnt werden, dass einige Grafikkarten, die früher erschienen sind, möglicherweise die Verwendung von CUDA11.8-Umgebungen (z. B. RTX3080) nicht zulassen, daher wird empfohlen, 3090- und neuere Grafikkarten zu verwenden.

4. Bereitstellen von Stable Diffusion

Python und CUDA

GPU-Server sind in der Regel bereits mit Python und Grafikkartentreibern ausgestattet, es empfiehlt sich, die vom Serverhersteller bereitgestellten zu verwenden, da sonst später viele Probleme auftreten.

Überprüfen Sie die Pip-Quelle

Dieser Schritt ist sehr wichtig. Die Aktualisierungsgeschwindigkeit von Stable Diffusion ist sehr schnell, aber die von einigen Herstellern verwendete Pip-Quelle wird nicht rechtzeitig aktualisiert, und es gibt keine neueste Version einiger Abhängigkeiten, die von SD benötigt werden, was zu ständigen Fehlermeldungen führt.

Am Beispiel von autodl verwendet mein Computer standardmäßig die Huawei-Quelle.Als Ergebnis konnte ich die neueste Version von facexlib und numpy nicht finden, als ich später Abhängigkeiten installierte.Schließlich wechselte ich zu Ali-Quelle, um das Problem erfolgreich zu lösen. Denken Sie gleichzeitig daran, es zu aktualisieren, nachdem Sie die Quellversion von pip geändert haben.

Für die spezifische Betriebsmethode siehe: Pip Change Source - Pip Change Domestic Mirror Source

Laden Sie die Web-Benutzeroberfläche von Stable Diffusion herunter

Geben Sie im Terminal den folgenden Befehl ein: Es empfiehlt sich, ihn auf der Datenplatte statt auf der Systemplatte bereitzustellen , da später verschiedene Modelle heruntergeladen werden müssen, was viel Speicherplatz beansprucht.

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

Wenn die Verbindung abbricht, empfiehlt es sich, es noch ein paar Mal zu versuchen, da die Git-Verbindung manchmal sehr instabil ist.

Versuchen Sie, Stable Diffusion auszuführen

Nachdem der Download abgeschlossen ist, geben Sie das Projektstammverzeichnis ein und führen Sie den Befehl aus:

cd stable-diffusion-webui
COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py

Unter ihnen ist launch.py ​​​​das Ausführungsskript, medvram und always-batch-cond-uncond sind die Parameter der Videospeicheroptimierung;

Port 6006 gibt an, dass der Prozess auf Port 6006 der Maschine ausgeführt wird. Da autodl mit einem extern exponierten Dienst geliefert wird, ist die Portnummer 6006, also ist sie so eingestellt. Natürlich gibt es noch andere Methoden, die später erklärt werden;

Die letzte REQS_FILE ist die zum Ausführen erforderliche Abhängigkeit, und die Abhängigkeit wird automatisch installiert, nachdem der Befehl ausgeführt wurde.

Laden Sie Abhängigkeiten manuell mit dem Befehl herunter

Wenn Sie einen Cloud-Server mit einem inländischen Knoten mieten, ist die Wahrscheinlichkeit hoch, dass Sie auf verschiedene Verbindungsausfälle und Zeitüberschreitungsprobleme stoßen werden. Zum Beispiel:

The TLS connection was non-properly terminated

Wenn dieses Problem auftritt, wird ein manueller Download empfohlen.

Basismodell

Erstellen Sie zuerst das Repositories-Verzeichnis unter dem Hauptverzeichnis:

mkdir repositories

Stable Diffusion Web UI hat vier Abhängigkeitsmodelle, die separat heruntergeladen werden müssen.

Stabile Diffusion:

git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion

Zähmungstransformatoren:

git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers

CodeFormer:

git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer

BLIP:

git clone https://github.com/salesforce/BLIP.git repositories/BLIP

Führen Sie den Befehl nach Abschluss der Installation erneut aus, und die verbleibenden Abhängigkeiten werden automatisch installiert.Natürlich kann später aufgrund von Verbindungszeitüberschreitung ein Fehler gemeldet werden:

COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py

Abhängigkeiten der Python-Bibliothek

Beim Installieren von Abhängigkeiten kann es auch aufgrund des Netzwerks hängen bleiben, insbesondere der gfpgan- Bibliothek. Zu diesem Zeitpunkt wird empfohlen, den Befehl pip install zu verwenden, um Abhängigkeiten manuell zu installieren. Wenn Sie eine Fehlermeldung erhalten wie:

No matching distribution found for facexlib>=0.2.5

Dies liegt daran, dass die neueste Version der Bibliothek nicht von pip bezogen werden kann. Es wird empfohlen, pip zu aktualisieren und zu prüfen, ob die pip-Quelle seit längerer Zeit nicht aktualisiert wurde.

Lokale Download-Abhängigkeiten und Upload auf den Server

Wenn das Netzwerk wirklich nicht verfügbar ist, können Sie diese Maschine nur verwenden, um das Modell herunterzuladen und auf den Server hochzuladen.

In den Abhängigkeiten von Stable Diffusion gibt es ein v1-5-pruned-emaonly.safetensors -Modell, das von der huggingface- Website heruntergeladen werden muss , aber die Download-Geschwindigkeit des Terminals ist extrem langsam. Pay-as-you-go ist jede Minute und jede Sekunde Geld, daher wird empfohlen, es lokal herunterzuladen und direkt auf den Server hochzuladen. Hier nehmen wir den autodl-Server als Beispiel .

Modell herunterladen

URL:

https://huggingface.co/runwayml/stable-diffusion-v1-5/blob/main/v1-5-pruned-emaonly.safetensors

Upload-Server

Generell kann Xshell verwendet werden, Details entnehmen Sie bitte dem Dokument: AutoDL-Daten-Upload

Hier stelle ich den Server vor, der über Alibaba Cloud Disk auf autodl hochgeladen wurde (weil es keine Geschwindigkeitsbegrenzung gibt).

  1. Das Modell wird auf die Alibaba Cloud Disk hochgeladen. Wenn Sie kein Konto haben, müssen Sie sich zuerst registrieren.
    Bildbeschreibung hier einfügen

  2. Öffnen Sie auf der Konsolenschnittstelle (eingeschalteter Zustand) AutoPanel :

Bildbeschreibung hier einfügen

  1. Öffnen Sie die öffentliche Netzwerkfestplatte , wählen Sie Alibaba Cloud Disk, ein QR-Code wird unten angezeigt, Sie müssen die App von Alibaba Cloud Disk auf Ihr Mobiltelefon herunterladen, scannen und autorisieren.

Bildbeschreibung hier einfügen

  1. Klicken Sie auf Herunterladen, um das Modell mithilfe des Servers von der Cloud-Festplatte herunterzuladen:

Bitte fügen Sie eine Bildbeschreibung hinzu

Die heruntergeladenen Dateien werden im Stammverzeichnis der Datenfestplatte gespeichert.Nach Eingabe des Ordners, in dem die Daten gespeichert sind, verschieben Sie das Modell in das Hauptverzeichnis des Projekts:

mv v1-5-pruned-emaonly.safetensors stable-diffusion-webui/

Nachfolgende andere Modelle können auf diese Weise auf den Server hochgeladen werden.

5. laufen

Nachdem alle vorherigen Abhängigkeiten installiert sind, führen Sie den Befehl erneut im Hauptverzeichnis des Projekts aus:

COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py

Der Vorgang ist erfolgreich, wenn die folgende Ausgabe erscheint:

Bildbeschreibung hier einfügen

Wenn Sie autodl verwenden, klicken Sie in der Konsole auf den benutzerdefinierten Dienst:

Bildbeschreibung hier einfügen

Es wird später eine Aufforderung geben, nach dem Klarnamen zu fragen, da die Überwachung weiter verschärft wird, wenn man den Klarnamen nicht möchte, empfiehlt es sich, auf andere Serverhersteller auszuweichen. Nachdem Sie den richtigen Namen eingegeben haben, können Sie Stable Diffusion verwenden, um im lokalen Browser zu zeichnen.

Bildbeschreibung hier einfügen
Die Schnittstelle ist wie folgt:

Bildbeschreibung hier einfügen

Controlnet wird erfolgreich eingesetzt!

Bildbeschreibung hier einfügen

6. Referenz

  • https://zhuanlan.zhihu.com/p/386821676
  • https://zhuanlan.zhihu.com/p/574200991

Supongo que te gusta

Origin blog.csdn.net/weixin_45943887/article/details/129817062
Recomendado
Clasificación