Leitfaden zur Bildgenerierung

Mit der Aufgabe „MediaPipe-Bild-Generator“ können Sie Bilder basierend auf einem Text-Prompt generieren. Bei dieser Aufgabe wird ein Text-zu-Bild-Modell verwendet, um Bilder mithilfe von Diffusionstechniken zu generieren.

Die Aufgabe akzeptiert eine Text-Prompts sowie ein optionales Bedingungsbild, das das Modell erweitern und als Referenz für die Generierung verwenden kann. Weitere Informationen zur konditionierten Text-zu-Bild-Generierung finden Sie unter On-Device-Diffusion-Plug-ins für konditionierte Text-zu-Bild-Generierung.

Image Generator kann auch Bilder basierend auf bestimmten Konzepten generieren, die dem Modell während des Trainings oder des erneuten Trainings zur Verfügung gestellt werden. Weitere Informationen findest du unter Mit LoRA anpassen.

Jetzt starten

Beginnen Sie mit dieser Aufgabe, indem Sie einem dieser Implementierungsleitfäden für Ihre Zielplattform folgen. Diese plattformspezifischen Leitfäden führen Sie durch eine grundlegende Implementierung dieser Aufgabe. Sie enthalten Codebeispiele, die ein Standardmodell und die empfohlenen Konfigurationsoptionen verwenden:

Taskdetails

In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfigurationsoptionen dieser Aufgabe beschrieben.

Funktionen

Mit dem Image-Generator können Sie Folgendes implementieren:

  1. Text-zu-Bild-Generierung: Generieren Sie Bilder mit einem Text-Prompt.
  2. Bildgenerierung mit Bedingungsbildern: Generieren Sie Bilder mit einer Text-Prompts und einem Referenzbild. Der Image-Generator verwendet Bedingungsbilder auf ähnliche Weise wie ControlNet.
  3. Bildgenerierung mit LoRA-Gewichtungen – Mit benutzerdefinierten Modellgewichtungen lassen sich über einen Text-Prompt Bilder von bestimmten Personen, Objekten und Stilen generieren.
Aufgabeneingaben Aufgabenausgaben
Der Image Generator akzeptiert die folgenden Eingaben:
  • Text-Prompt
  • Seed
  • Anzahl der generativen Iterationen
  • Optional: Zustandsbild
Der Image Generator gibt folgende Ergebnisse aus:
  • Anhand der Eingaben wurde das Bild generiert.
  • Optional: Iterative Momentaufnahmen des generierten Bildes

Konfigurationsoptionen

Diese Aufgabe hat die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich
imageGeneratorModelDirectory Im Modellverzeichnis des Bildgenerators, in dem die Modellgewichtungen gespeichert sind PATH
loraWeightsFilePath Legt den Pfad zur LoRA-Gewichtungsdatei fest. Optional und nur anwendbar, wenn das Modell mit LoRA angepasst wurde. PATH
errorListener Legt einen optionalen Fehler-Listener fest. N/A

Die Aufgabe unterstützt auch Plug-in-Modelle, mit denen Nutzer Bedingungsbilder in die Aufgabeneingabe einfügen können, die das Foundation Model erweitern und als Referenz für die Generierung verwenden kann. Diese Zustandsbilder können Gesichtsmerkmale, Kantenumrisse und Tiefenschätzungen sein, die das Modell als zusätzlichen Kontext und als zusätzliche Informationen zum Generieren von Bildern verwendet.

Wenn Sie dem Foundation Model ein Plug-in-Modell hinzufügen, müssen Sie auch die Plug-in-Optionen konfigurieren. Für das Plug-in für Gesichtermarkierungen wird faceConditionOptions verwendet, für das Canny-Edge-Plug-in edgeConditionOptions und für das Tiefen-Plug-in depthConditionOptions.

Canny Edge-Optionen

Konfigurieren Sie die folgenden Optionen in edgeConditionOptions.

Option Beschreibung Wertebereich Standardwert
threshold1 Erster Schwellenwert für das Hystereseverfahren. Float 100
threshold2 Zweiter Schwellenwert für das Hystereseverfahren. Float 200
apertureSize Blende für den Sobel-Operator Der typische Bereich liegt zwischen 3 und 7. Integer 3
l2Gradient Gibt an, ob die L2-Norm verwendet wird, um die Größe des Farbverlaufs zu berechnen, und nicht die Standard-L1-Norm. BOOLEAN False
EdgePluginModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Plug-in-Modell festlegt. BaseOptions Objekt N/A

Weitere Informationen zu diesen Konfigurationsoptionen finden Sie unter Canny Edge Detector.

Optionen für Gesichtsmarkierungen

Konfigurieren Sie die folgenden Optionen in faceConditionOptions.

Option Beschreibung Wertebereich Standardwert
minFaceDetectionConfidence Der minimale Konfidenzwert, damit die Gesichtserkennung als erfolgreich gilt. Float [0.0,1.0] 0.5
minFacePresenceConfidence Der minimale Konfidenzwert für die Gesichtserkennung bei der Erkennung von Sehenswürdigkeiten. Float [0.0,1.0] 0.5
faceModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Modell festlegt, das das Bedingungsbild erstellt. BaseOptions Objekt N/A
FacePluginModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Plug-in-Modell festlegt. BaseOptions Objekt N/A

Weitere Informationen zur Funktionsweise dieser Konfigurationsoptionen finden Sie unter Gesichtererkennung.

Tiefenoptionen

Konfigurieren Sie die folgenden Optionen in depthConditionOptions.

Option Beschreibung Wertebereich Standardwert
depthModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Modell festlegt, das das Bedingungsbild erstellt. BaseOptions Objekt N/A
depthPluginModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Plug-in-Modell festlegt. BaseOptions Objekt N/A

Modelle

Der Image Generator benötigt ein Foundation Model. Dabei handelt es sich um ein Text-zu-Bild-KI-Modell, das Diffusionstechniken verwendet, um neue Bilder zu generieren. Die in diesem Abschnitt aufgeführten Foundation Models sind einfache Modelle, die für High-End-Smartphones optimiert sind.

Plug-in-Modelle sind optional und ergänzen die Foundation Models. Nutzer können so ein zusätzliches Bedingungsbild zusammen mit einem Text-Prompt zur Verfügung stellen, um eine spezifischere Bildgenerierung zu ermöglichen. Das Anpassen der Foundation Models mithilfe von LoRA-Gewichten ist eine Option, die dem Foundation Model ein bestimmtes Konzept vermittelt, z. B. ein Objekt, eine Person oder einen Stil, und diese in generierte Bilder einfügt.

Basismodelle

Die Foundation Models sind latente Text-zu-Bild-Diffusionsmodelle, die Bilder aus einer Text-Prompt generieren. Für den Image Generator muss das Foundation Model auf Grundlage des folgenden Modells dem Modellformat runwayml/stable-diffusion-v1-5 EMA-only entsprechen:

Die folgenden Foundation Models sind auch mit dem Image Generator kompatibel:

Nachdem Sie ein Foundation Model heruntergeladen haben, verwenden Sie image_generator_converter, um das Modell in das entsprechende On-Device-Format für den Bildgenerator zu konvertieren.

Installieren Sie die erforderlichen Abhängigkeiten:

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

Führen Sie das convert.py-Skript aus:

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

Plug-in-Modelle

Die Plug-in-Modelle in diesem Abschnitt werden von Google entwickelt und müssen in Kombination mit einem Foundation Model verwendet werden. Mithilfe von Plug-in-Modellen kann Image Generator ein Bedingungsbild zusammen mit einer Text-Prompts als Eingabe akzeptieren, sodass Sie die Struktur der generierten Bilder steuern können. Die Plug-in-Modelle bieten ähnliche Funktionen wie ControlNet, mit einer neuartigen Architektur speziell für die On-Device-Diffusion.

Die Plug-in-Modelle müssen in den Basisoptionen angegeben werden. Möglicherweise müssen Sie zusätzliche Modelldateien herunterladen. Jedes Plug-in hat spezifische Anforderungen an das Bedingungsbild, das vom Image Generator generiert werden kann.

Canny Edge-Plug-in

Das Canny Edge-Plug-in akzeptiert ein Bedingungsbild, das die gewünschten Ränder des generierten Bildes umrandet. Das Foundation Model verwendet die durch das Bedingungsbild implizierten Kanten und generiert anhand des Text-Prompts ein neues Bild. Der Image-Generator enthält integrierte Funktionen zum Erstellen von Bedingungsbildern und erfordert nur das Herunterladen des Plug-in-Modells.

Canny Edge-Plug-in herunterladen

Das Canny Edge-Plug-in enthält die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich Standardwert
threshold1 Erster Schwellenwert für das Hystereseverfahren. Float 100
threshold2 Zweiter Schwellenwert für das Hystereseverfahren. Float 200
apertureSize Blende für den Sobel-Operator Der typische Bereich liegt zwischen 3 und 7. Integer 3
l2Gradient Gibt an, ob die L2-Norm verwendet wird, um die Größe des Farbverlaufs zu berechnen, und nicht die Standard-L1-Norm. BOOLEAN False
EdgePluginModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Plug-in-Modell festlegt. BaseOptions Objekt N/A

Weitere Informationen zu diesen Konfigurationsoptionen finden Sie unter Canny Edge Detector.

Plug-in für Gesichtererkennung

Das Face Landmark-Plug-in akzeptiert die Ausgabe von Face Landmarker von MediaPipe als Bedingungsbild. Die Gesichts-Landmarkierung ist ein detailliertes Gesichtsnetz eines einzelnen Gesichts, das das Vorhandensein und die Position von Gesichtsmerkmalen abbildet. Das Foundation Model verwendet die Gesichtserkennungskarte, die im Zustandsbild angedeutet wird, und generiert ein neues Gesicht über dem Mesh-Netzwerk.

Plug-in für Gesichtsmarkierungen herunterladen

Für das Plug-in für Gesichtermarkierungen ist außerdem das Modell-Bundle für Face Landmarks erforderlich, um das Bedingungsbild zu erstellen. Dieses Modell-Bundle ist dasselbe Bundle, das von der Aufgabe Face Landmarker verwendet wird.

Bundle für Gesichtsmarkierungen herunterladen

Das Plug-in für Gesichterkarten enthält die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich Standardwert
minFaceDetectionConfidence Der minimale Konfidenzwert, damit die Gesichtserkennung als erfolgreich gilt. Float [0.0,1.0] 0.5
minFacePresenceConfidence Der minimale Konfidenzwert für die Gesichtserkennung bei der Erkennung von Sehenswürdigkeiten. Float [0.0,1.0] 0.5
faceModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Modell festlegt, das das Bedingungsbild erstellt. BaseOptions Objekt N/A
FacePluginModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Plug-in-Modell festlegt. BaseOptions Objekt N/A

Weitere Informationen zur Funktionsweise dieser Konfigurationsoptionen finden Sie unter Gesichtererkennung.

Depth-Plug-in

Das Depth-Plug-in akzeptiert ein Bedingungsbild, das die monokulare Tiefe eines Objekts angibt. Das Foundation Model verwendet das Bedingungsbild, um die Größe und Tiefe des zu generierenden Objekts abzuleiten, und generiert anhand der Text-Prompts ein neues Bild.

Depth-Plug-in herunterladen

Das Tiefen-Plug-in erfordert außerdem ein Tiefenschätzungsmodell, um das Bedingungsbild zu erstellen.

Modell zur Tiefenschätzung herunterladen

Das Depth-Plug-in enthält die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich Standardwert
depthModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Modell festlegt, das das Bedingungsbild erstellt. BaseOptions Objekt N/A
depthPluginModelBaseOptions Das BaseOptions-Objekt, das den Pfad für das Plug-in-Modell festlegt. BaseOptions Objekt N/A

Anpassung mit LoRA

Wenn Sie ein Modell mit LoRA anpassen, kann der Image-Generator basierend auf bestimmten Konzepten Images generieren, die während des Trainings durch eindeutige Tokens identifiziert werden. Mit den neuen LoRA-Gewichtungen nach dem Training kann das Modell Bilder des neuen Konzepts generieren, wenn das Token in der Text-Prompts angegeben ist.

Zum Erstellen von LoRA-Gewichtungen muss ein Foundation Model mit Bildern eines bestimmten Objekts, einer Person oder eines Stils trainiert werden. Dadurch kann das Modell das neue Konzept erkennen und beim Generieren von Bildern anwenden. Wenn Sie LoRa-Gewichtungen erstellen, um Bilder von bestimmten Personen und Gesichtern zu generieren, verwenden Sie diese Lösung nur für Ihr Gesicht oder für die Gesichter von Personen, die Ihnen die Berechtigung dazu erteilt haben.

Unten sehen Sie die Ausgabe eines benutzerdefinierten Modells, das mit Bildern von Teekannen aus dem DreamBooth-Dataset mit dem Token „monadikos Teapot“ trainiert wurde:

Prompt: eine Monadikos-Teekanne neben einem Spiegel

Das angepasste Modell hat das Token im Prompt erhalten und eine Teekanne eingeschleust, die es anhand der LoRA-Gewichtungen darstellen soll. Es platziert das Bild wie in der Prompt angefordert neben einen Spiegel.

LoRA mit Vertex AI

Weitere Informationen finden Sie im Anpassungsleitfaden. In diesem wird Model Garden in Vertex AI verwendet, um ein Modell durch Anwenden von LoRA-Gewichtungen auf ein Foundation Model anzupassen.