Przewodnik po generowaniu obrazów

Zadanie Generatora obrazów MediaPipe pozwala generować obrazy na podstawie promptu tekstowego. Ten korzysta z modelu „tekst na obraz” do generowania obrazów przy użyciu technik dyfuzji.

Zadanie akceptuje prompt tekstowy jako dane wejściowe oraz opcjonalny obraz warunku który model może rozszerzyć i wykorzystać jako wzorzec do generowania. Więcej informacji: uwarunkowanego generowania tekstu na obraz. Przeczytaj artykuł o wtyczkach dyfuzyjnych na urządzeniu do uwarunkowany tekst na obraz .

Generator obrazów może też generować obrazy na podstawie określonych koncepcji podanych modelowi i przekształcanie. Więcej informacji znajdziesz w artykule na temat dostosowywania za pomocą: (LoRA).

Rozpocznij

Aby zacząć z niego korzystać, postępuj zgodnie z jednym z tych przewodników po implementacji platformy docelowej. Te przewodniki dotyczące konkretnych platform przeprowadzą Cię przez wraz z przykładami kodu z modelem domyślnym i modelem zalecane opcje konfiguracji:

Szczegóły zadania

W tej sekcji opisujemy możliwości, dane wejściowe, wyjściowe i konfigurację. aby wykonać tę czynność.

Funkcje

Możesz użyć Generatora obrazów, aby zaimplementować takie elementy:

  1. Generowanie tekstu na obraz – twórz obrazy na podstawie prompta tekstowego.
  2. Generowanie obrazów z obrazami warunków – generowanie obrazów z tekstem i obraz referencyjny. Generator obrazów wykorzystuje obrazy warunkowe w sposób podobny do ControlNet.
  3. Generowanie obrazów z wagami LoRA – generuj obrazy konkretnych osób, obiektów i stylów za pomocą promptów tekstowych z wykorzystaniem niestandardowych wag modelu.
Dane wejściowe zadania Wyniki zadania
Generator obrazów akceptuje te dane wejściowe:
  • Prompt tekstowy
  • Nasiona
  • Liczba iteracji generatywnych
  • Opcjonalnie: obraz warunku
Generator obrazów generuje te wyniki:
  • Obraz wygenerowany na podstawie danych wejściowych.
  • Opcjonalnie: iteracyjne zrzuty wygenerowanego obrazu.

Opcje konfiguracji

To zadanie zawiera te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości
imageGeneratorModelDirectory Katalog modeli generatora obrazów, w którym są przechowywane wagi modelu. PATH
loraWeightsFilePath Ustawia ścieżkę do pliku z wagami LoRA. Opcjonalny i ma zastosowanie tylko wtedy, model został dostosowany przy użyciu LoRA. PATH
errorListener Ustawia opcjonalny detektor błędów. N/A

Zadanie obsługuje też modele wtyczek, które pozwalają użytkownikom dołączać obrazy warunków w danych wejściowych zadania, które model podstawowy może rozszerzać i wykorzystywać jako odwołanie. z pokolenia na pokolenie. Mogą to być punkty orientacyjne, kontury krawędzi szczegółowe oszacowania, które model wykorzystuje jako dodatkowy kontekst i informacje w celu do generowania obrazów.

Podczas dodawania modelu wtyczki do modelu podstawowego skonfiguruj też wtyczkę . Wtyczka do punktów orientacyjnych twarzy korzysta z krawędzi Canny (faceConditionOptions) Wtyczka używa edgeConditionOptions, a wtyczka Depth – depthConditionOptions

Opcje Canny Edge

Skonfiguruj następujące opcje na stronie edgeConditionOptions.

Nazwa opcji Opis Zakres wartości Wartość domyślna
threshold1 Pierwszy próg procedury histerezy. Float 100
threshold2 Drugi próg procedury histerezy. Float 200
apertureSize Rozmiar przysłony operatora Sobela. Typowy zakres to 3–7. Integer 3
l2Gradient Czy norma L2 jest używana do obliczania wielkości gradientu obrazu, zamiast domyślnej normy L1. BOOLEAN False
EdgePluginModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu wtyczki. BaseOptions obiekt N/A

Więcej informacji o tym, jak działają te opcje konfiguracji, znajdziesz w artykule Detektor krawędzi Canny.

Opcje punktu orientacyjnego twarzy

Skonfiguruj następujące opcje na stronie faceConditionOptions.

Nazwa opcji Opis Zakres wartości Wartość domyślna
minFaceDetectionConfidence Minimalny poziom ufności wymagany do wykrywania twarzy została uznana za udaną. Float [0.0,1.0] 0.5
minFacePresenceConfidence Minimalny wskaźnik ufności obecności twarzy punkty w wykrywaniu punktów orientacyjnych twarzy. Float [0.0,1.0] 0.5
faceModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu, który tworzy obraz warunku. BaseOptions obiekt N/A
FacePluginModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu wtyczki. BaseOptions obiekt N/A

Więcej informacji o działaniu tych opcji konfiguracji znajdziesz tutaj: Zadanie oznaczenia twarzy.

Opcje głębi

Skonfiguruj następujące opcje na stronie depthConditionOptions.

Nazwa opcji Opis Zakres wartości Wartość domyślna
depthModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu, który tworzy obraz warunku. BaseOptions obiekt N/A
depthPluginModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu wtyczki. BaseOptions obiekt N/A

Modele

Generator obrazów wymaga modelu podstawowego, czyli modelu AI „tekst na obraz” wykorzystujące techniki dyfuzyjne do generowania nowych obrazów. Modele podstawowe W tej sekcji przedstawiamy lekkie modele zoptymalizowane pod kątem uruchamiania na smartfonach.

Modele wtyczek są opcjonalne i uzupełniają podstawowe modele, dzięki czemu użytkownik może dodać obraz dotyczący warunku wraz z promptem tekstowym, bardziej precyzyjne generowanie obrazów. Dostosowywanie modeli podstawowych za pomocą LoRA wagi to opcja, dzięki której model podstawowy może poznać określoną koncepcję, takich jak obiekt, osoba czy styl, i wstawiać je do wygenerowanych obrazów.

Modele podstawowe

Modele podstawowe to utajone modele dyfuzji tekstu na obraz, które generują obrazów w prompcie tekstowym. Generator obrazów wymaga, aby model podstawowy pasują do formatu modelu runwayml/stable-diffusion-v1-5 EMA-only na podstawie ten model:

Z generatorem obrazów są też zgodne te modele podstawowe:

Po pobraniu modelu podstawowego skorzystaj z funkcji image_generator_converter skonwertowanie modelu do formatu odpowiedniego Generator obrazów.

Zainstaluj niezbędne zależności:

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

Użycie convert.py skrypt:

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

Modele wtyczek

Modele wtyczek w tej sekcji zostały opracowane przez Google i muszą być używane w połączeniu z modelem podstawowym. Modele wtyczek umożliwiają generatorowi obrazów zaakceptować obraz warunku wraz z promptem tekstowym jako dane wejściowe. Pozwala to i kontrolować strukturę generowanych obrazów. Modele wtyczek zapewniają funkcji podobnych do ControlNet oraz nowatorską architekturę specjalnie pod kątem rozproszenie danych na urządzeniu.

Modele wtyczek muszą być określone w opcjach podstawowych i mogą wymagać pobrać dodatkowe pliki modelu. Każda wtyczka ma unikalne wymagania dotyczące obrazu warunku, który można wygenerować za pomocą Generatora obrazów.

Wtyczka Canny Edge

Wtyczka Canny Edge akceptuje obraz warunku, który wyznacza zamierzone krawędzie wygenerowanego obrazu. Model podstawowy wykorzystuje krawędzie sugerowane przez funkcję warunku i na podstawie promptu tekstowego generuje nowy obraz. Generator obrazów ma wbudowane funkcje tworzenia obrazów warunków. wymaga tylko pobrania modelu wtyczki.

Pobierz wtyczkę Canny Edge .

Wtyczka Canny Edge zawiera te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości Wartość domyślna
threshold1 Pierwszy próg procedury histerezy. Float 100
threshold2 Drugi próg procedury histerezy. Float 200
apertureSize Rozmiar przysłony operatora Sobela. Typowy zakres to 3–7. Integer 3
l2Gradient Czy norma L2 jest używana do obliczania wielkości gradientu obrazu, zamiast domyślnej normy L1. BOOLEAN False
EdgePluginModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu wtyczki. BaseOptions obiekt N/A

Więcej informacji o tym, jak działają te opcje konfiguracji, znajdziesz w artykule Detektor krawędzi Canny.

Wtyczka Face Places

Wtyczka Face Places akceptuje dane wyjściowe z MediaPipe Face Mapa odniesienia jako obraz stanu. Twarz Obiekt orientacyjny udostępnia szczegółową siatkę twarzy, która zawiera mapy obecność i umiejscowienie cech twarzy; Model podstawowy wykorzystuje twarz mapowane przez obraz warunku, i generuje nową płaszczyznę na siatce.

Pobierz wtyczkę do punktów orientacyjnych twarzy .

Wtyczka Face Attribution wymaga również modelu Face odniesienia pakiet, by utworzyć obraz warunku. Ten pakiet modeli jest tym samym pakietem używanym przez Zadanie punktu orientacyjnego twarzy.

Pobierz pakiet modeli punktów orientacyjnych twarzy .

Wtyczka Face Places zawiera te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości Wartość domyślna
minFaceDetectionConfidence Minimalny poziom ufności wymagany do wykrywania twarzy została uznana za udaną. Float [0.0,1.0] 0.5
minFacePresenceConfidence Minimalny wskaźnik ufności obecności twarzy punkty w wykrywaniu punktów orientacyjnych twarzy. Float [0.0,1.0] 0.5
faceModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu, który tworzy obraz warunku. BaseOptions obiekt N/A
FacePluginModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu wtyczki. BaseOptions obiekt N/A

Więcej informacji o działaniu tych opcji konfiguracji znajdziesz tutaj: Zadanie oznaczenia twarzy.

Wtyczka Depth

Wtyczka Depth akceptuje obraz warunku, który określa głębokość monokularną nad obiektem. Model podstawowy wykorzystuje obraz warunku do wywnioskowania rozmiaru i głębia obiektu do wygenerowania i generuje nowy obraz na podstawie tekstu. .

Pobierz wtyczkę Depth .

Wtyczka Depth wymaga też modelu szacowania głębokości, aby utworzyć warunek. .

Pobierz model szacowania głębi .

Wtyczka Depth zawiera te opcje konfiguracji:

Nazwa opcji Opis Zakres wartości Wartość domyślna
depthModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu, który tworzy obraz warunku. BaseOptions obiekt N/A
depthPluginModelBaseOptions Obiekt BaseOptions, który ustawia ścieżkę dla modelu wtyczki. BaseOptions obiekt N/A

Dostosowywanie przy użyciu LoRA

Dostosowanie modelu z wykorzystaniem LoRA może umożliwić Generator obrazów do generowania obrazów na podstawie określonych koncepcji, takich jak zidentyfikowanych przez unikalne tokeny podczas trenowania. Z nową wagą LoRA po trenowanie, model jest w stanie wygenerować obrazy nowej koncepcji, gdy token jest określony w prompcie tekstowym.

Tworzenie wag LoRA wymaga wytrenowania modelu podstawowego na obrazach konkretnego obiektu, osoby lub stylu, co umożliwia modelowi rozpoznanie i stosować je podczas generowania obrazów. Jeśli tworzysz wagi LoRa dla generowania obrazów konkretnych osób i twarzy, używaj tego rozwiązania tylko na twarzy lub twarzy osób, które wyraziły na to zgodę.

Poniżej znajdują się dane wyjściowe z niestandardowego modelu wytrenowanego na obrazach imbryki od zbioru danych DreamBooth, wykorzystując token „czajnik monadikos”:

Prompt: herbaciarnia Monadikos obok lustra.

Spersonalizowany model otrzymał token w prompcie i wstrzyknął czajnik, nauczył się przedstawiać go na podstawie wag LoRA i umieszcza go obok zgodnie z żądaniem w prompcie.

LoRA z Vertex AI .

Więcej informacji znajdziesz w artykule na temat dostosowywania przewodnik, który wykorzystuje Baza modeli w Vertex AI aby dostosować model przez zastosowanie wagi LoRA do modelu podstawowego.