Trainieren eines stabilen Diffusionsmodells mit Textinversion unter Verwendung von Diffusoren / Sudo Null IT News

Beim Durchsuchen des Internets nach interessanten Technologien im Bereich der neuronalen Netze und verschiedener Künste bin ich auf einen Beitrag auf Twitter gestoßen, in dem Suraj Patil kündigte die Möglichkeit an, das Stable Diffusion-Modell der Textinversion mit nur 3-5 Bildern zu trainieren.

Diese Nachricht verbreitete sich sehr schnell in den Weiten der englischsprachigen Community (obwohl nicht jeder weiß, was es ist), aber in den Weiten der ru-Community wurde dies selbst mehrere Tage lang nicht ein einziges Mal erwähnt. Daher habe ich beschlossen, darüber zu sprechen und Code bereitzustellen, den Sie selbst testen können. Einige Fragen können am Ende des Artikels beantwortet werden.

Was ist Textinversion?

Ich werde versuchen, es in einer verständlicheren Sprache zu erklären.

Die Textinversion ermöglicht es Ihnen, ein Modell eines neuen “Konzepts” zu trainieren, das Sie mit einem “Wort” verknüpfen können, ohne die Gewichtungen zu ändern, anstatt die Texteinbettungsvektoren zu optimieren.

Also habe ich zum Beispiel ein paar Fotos von einem Plüschpinguin hinzugefügt. Ich konnte das Modell dann bitten, zum Beispiel eine Zeichnung zu erstellen mein besonderer Plüschpinguin . Oder erstellen Sie ein Foto mein besonderer Plüschpinguin oben auf einem Berg sitzen. Ziel ist es, Ihnen zu ermöglichen, eine bestimmte Idee/ein bestimmtes Konzept aus Fotos/Bildern zu importieren, die nicht vom Modell generiert wurden, und zu lernen, wie man sie darstellt. Es kann auch verwendet werden, um Stile darzustellen. Angenommen, Sie haben eine Reihe von Zeichnungen eines bestimmten Künstlers hochgeladen, dann können Sie ihn bitten, Bilder in diesem bestimmten Stil zu erstellen.

Verwendung von Textumkehrung

Jetzt zeige ich, wie man Stable Diffusion mit Textinversion trainieren kann. Dieser Code ist auch in zu finden Github-Repositories oder verwenden Sie diese Zusammenarbeit.

Bevor Sie mit der Arbeit beginnen, rate ich Ihnen, sich anzumelden Umarmendes Gesicht und erhalten Sie Zugriffstoken mit der Zugriffseinstellung “schreiben“. Jetzt können Sie fortfahren.

In einem Colab befindet sich der Code in Zellen, die einzeln ausgeführt werden können, aber ich werde versuchen, die Hauptpunkte zu erklären, die häufig Probleme verursachen.

  • Zuerst müssen Sie die erforderlichen Bibliotheken installieren und zu HuggingFace gehen. Dazu benötigen wir ein Access Token. Wenn Sie sich bei HuggingFace anmelden, können Sie Ihr trainiertes Modell speichern und bei Bedarf mit der Stable Diffusion-Inhaltsbibliothek teilen.

  • Im Kapitel “Einstellungen zum Unterrichten Ihres neuen Konzepts” Sie müssen einen Kontrollpunkt auswählen, an dem das gesamte Training gebunden ist. Standardmäßig gibt es einen Kontrollpunkt “CompVis/stable-diffusion-v1-4“. Sie können auch andere angeben

  • Als nächstes beginnt die Arbeit mit dem Datensatz. Das offizielle Colab zur Textinversion ermöglicht die Verwendung direkter Links zu Bildern, aber für mein Projekt mit der Vererbung des Stils des Künstlers Ilya Kuvshinov habe ich eine Google-Festplatte verwendet, auf der ich ungefähr 1000 Bilder von Kunstwerken dieses Künstlers habe (ich habe nur verwendet 30 Bilder). Dazu habe ich mich in mein Colab-Konto eingeloggt und mit dem Shutil-Modul den Ordner von meinem Google-Laufwerk kopiert:

from google.colab import drive drive.mount(‘/content/drive’) import shutdown shutdown.copytree(‘/content/drive/My Drive/ForSD/’, ‘/content/kuvshinov’)import glob path=”kuvshinov/ ” def download_image(filename): return Image.open(path+filename).convert(“RGB”) images = list(filter(None,[download_image(filename) for filename in os.listdir(path)])) save_path = “./my_concept” wenn nicht os.path.exists(save_path): os.mkdir(save_path)
[image.save(f”{save_path}/{i}.jpeg”) for i, image in enumerate(images)]

  • Jetzt können wir mit der Einrichtung des Modells fortfahren. Im Kapitel “was_zu_lehren” können Sie ein Objekt (erlaubt Ihnen, das Modell mit neuen Objekten zu trainieren) oder einen Stil (wie in meinem Fall den Stil der Bilder des Künstlers) auswählen. Im “placeholder_token“Sie müssen einen Namen angeben, unter dem Sie ihn später auf dem trainierten Modell verwenden können. Ich habe diesen . Im Kapitel “initializer_token“Sie müssen 1 Wort angeben, das zeigt, worum es in Ihrem Modell geht. Ich habe das hier Kuvshinov.

  • Jetzt können wir mit dem Training des Modells beginnen. Führen Sie dazu einfach die Zellen in diesem Abschnitt aus “Dem Modell ein neues Konzept beibringen (Feintuning mit textueller Inversion)“. Sie können dort auch sehen, welche Parameter verwendet werden, und bei Interesse sogar bearbeiten. initializer_token. Meistens wird dieser Fehler von einer und auch einer Zelle ausgelöst, sodass Sie einen unnötigen Code wie meinen auskommentieren können. Name dieser ZelleRufen Sie Token-IDs für unseren Platzhalter- und Initialisierungs-Token ab. Dieser Codeblock wird sich beschweren, wenn die Initialisierungszeichenfolge kein einzelnes Token ist“. Danach können Sie den Code weiter ausführen

token_ids = tokenizer.encode(initializer_token, add_special_tokens=False) # Prüfen, ob initializer_token ein einzelnes Token oder eine Folge von Token ist #if len(token_ids) > 1: # raise ValueError(“The initializer token must be a single token.”) initializer_token_id = token_ids[0]
placeholder_token_id = tokenizer.convert_tokens_to_ids(placeholder_token)

  • Das Modelltraining dauert durchschnittlich +/- 3 Stunden. Danach können Sie das resultierende Modell testen und es in der Stable Diffusion Content Library veröffentlichen

  • Um das Modell zu testen und zu veröffentlichen, müssen Sie zum “Führen Sie den Code mit Ihrem neu trainierten Modell aus“.in der Zelle”Speichern Sie Ihr neu erstelltes Konzept in der Konzeptbibliothek” Sie können den Namen Ihres Konzepts angeben und das Modell veröffentlichen oder nicht. Wenn Sie sich entscheiden, es zu veröffentlichen, dann in der Zeile hf_token_write Sie müssen das Zugriffstoken angeben, das Sie oben angegeben haben, wenn Sie sich bei HuggingFace anmelden. Überprüfen Sie unbedingt, welchen Zugriff dieser Token hat. Es gibt nur 2 davon: Lesen und Schreiben (Schreiben). Wir brauchen ein Schreibtoken.

  • Danach können Sie alle anderen Zellen nacheinander ausführen. In der letzten Zelle in der Zeile prompt Sie müssen Ihre Textaufforderung auf Englisch bereitstellen und Ihre angeben placeholder_token. Zum Beispiel: ein Graffiti in einer Wand mit einem darauf

Fragen und Antworten

  1. Wie viele Ressourcen werden benötigt, um das Modell zu trainieren?

    Um mein Modell zu trainieren, habe ich 30 1024×1024-Bilder verwendet, aber Sie können auch weniger Bilder verwenden. Die Entwickler dieser Technologie haben für ihre Tests 3 bis 5 Bilder ausgewählt

  2. Hängt die Lernrate von der Größe des Datensatzes ab?

    Nein, tut es nicht. Ich habe versucht, sowohl 5 als auch 30 Bilder zu verwenden, und im Durchschnitt blieb die Lernrate gleich

  3. “Um dieses Konzept zur Wiederverwendung zu speichern, laden Sie die Datei learned_embeds.bin herunter oder speichern Sie sie in der Konzeptbibliothek.” Bedeutet dies, dass ich dies auf meinem lokalen Diffusionsstall verwenden kann, den ich bereits betreibe? Wie mache ich das, wo wird diese .bin-Datei abgelegt und wie sage ich dem Programm, dass es sie verwenden soll?

    Ja, Sie können Ihr Modell auf Ihrem lokalen Computer ausführen, aber Sie müssen sicherstellen, dass Sie über genügend Videospeicher verfügen, denn das Herzstück von all dem ist das Stable Diffusion-Modell, das 8 GB Videospeicher benötigt. Verwenden Sie dies, um zu sehen, wie es funktioniert Zusammenarbeit

  4. Kann dies verwendet werden, um mehr/neue Popkultur-Sachen hinzuzufügen, um bessere Ergebnisse für Sachen zu erzielen, die mehr Daten im vorhandenen Satz benötigen, und auch um neue Sachen hinzuzufügen, die nicht im Datensatz enthalten sind, damit SD Daten zu den angegebenen Dingen ausgeben kann?

    Ja. dürfen

Vielen Dank für das Lesen dieses Artikels. Dies ist mein erster Beitrag, also urteilt nicht zu hart. Wenn Sie mehr darüber lesen möchten, schauen Sie sich den GitHub an Diffusoren und Notizbuch. Sie können mir auch einige Fragen stellen, obwohl ich kein qualifizierter Fachmann bin und Ihnen das nicht genau sagen kann, aber ich werde Ihnen bei etwas helfen.

Similar Posts

Leave a Reply

Your email address will not be published.