Zadanie Generator obrazu MediaPipe umożliwia generowanie obrazów na podstawie promptu tekstowego. W tym zadaniu model zamiany tekstu na obraz służy do generowania obrazów za pomocą technik dyfuzji.
Zadanie przyjmuje jako dane wejściowe prompt tekstowy oraz opcjonalny obraz warunkowy, który model może rozszerzyć i wykorzystać jako odniesienie do wygenerowania obrazu. Więcej informacji o dyfuzji tekstu na obraz znajdziesz w artykule Przydatne w dyfuzji tekstu na obraz wtyczki na urządzeniu.
Generator obrazów może też generować obrazy na podstawie konkretnych koncepcji dostarczonych modelowi podczas szkolenia lub ponownego szkolenia. Więcej informacji znajdziesz w artykule Dostosowywanie za pomocą LoRa.
Rozpocznij
Aby zacząć korzystać z tego zadania, postępuj zgodnie z jednym z tych przewodników dotyczących wdrażania na platformie docelowej. Te przewodniki dotyczące poszczególnych platform zawierają podstawowe informacje o wdrażaniu tego zadania, a także przykłady kodu, które korzystają z modelu domyślnego i zalecanych opcji konfiguracji:
- Android – przykład kodu – przewodnik
- Dostosowywanie za pomocą LoRA – przykład kodu – Colab
Szczegóły działania
W tej sekcji opisano możliwości, dane wejściowe, dane wyjściowe i opcje konfiguracji tego zadania.
Funkcje
Generatora obrazów możesz używać do:
- Generowanie obrazu na podstawie tekstu – generowanie obrazów na podstawie promptu tekstowego.
- Generowanie obrazów z obrazami warunkowymi – generowanie obrazów na podstawie promptu tekstowego i obrazu referencyjnego. Generator obrazów używa obrazów warunków w sposób podobny do ControlNet.
- Generowanie obrazów za pomocą wag LoRA – generowanie obrazów konkretnych osób, obiektów i stylów za pomocą promptu tekstowego z wykorzystaniem niestandardowych wag modelu.
Dane wejściowe zadania | Dane wyjściowe |
---|---|
Generator obrazów akceptuje te dane wejściowe:
|
Generator obrazów generuje te wyniki:
|
Opcje konfiguracji
To zadanie ma te opcje konfiguracji:
Nazwa opcji | Opis | Zakres wartości |
---|---|---|
imageGeneratorModelDirectory |
Katalog modelu generatora obrazów, w którym są przechowywane wagi modelu. | PATH |
loraWeightsFilePath |
Ustawia ścieżkę do pliku wag LoRA. Opcjonalne i dotyczy tylko modeli dostosowanych za pomocą LoRA. | PATH |
errorListener |
Ustawia opcjonalny odbiornik błędów. | N/A |
Zadanie obsługuje też modele wtyczek, co pozwala użytkownikom uwzględniać w danych wejściowych zadania obrazy warunków, które model podstawowy może rozszerzać i wykorzystywać jako odniesienie do generowania. Te obrazy mogą zawierać punkty orientacyjne twarzy, kontury krawędzi i szacunki głębi, które model wykorzystuje jako dodatkowy kontekst i informacje do generowania obrazów.
Podczas dodawania modelu wtyczki do modelu podstawowego skonfiguruj też opcje wtyczki. Wtyczka punktów orientacyjnych twarzy używa faceConditionOptions
, wtyczka Canny Edge używa edgeConditionOptions
, a wtyczka Depth używa depthConditionOptions
.
Opcje Canny
Skonfiguruj te opcje na stronie edgeConditionOptions
.
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
threshold1 |
Pierwszy próg dla procedury histerezy. | Float |
100 |
threshold2 |
Drugi próg procedury histerezy. | Float |
200 |
apertureSize |
Rozmiar otworu przysłony dla operatora Sobel. Typowy zakres to 3–7. | Integer |
3 |
l2Gradient |
Określa, czy do obliczenia wielkości gradientu obrazu ma być używana norma L2, a nie domyślna norma L1. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu wtyczki. |
BaseOptions obiekt |
N/A |
Więcej informacji o tym, jak działają te opcje konfiguracji, znajdziesz w artykule Canny edge detector.
Opcje punktów charakterystycznych twarzy
Skonfiguruj te opcje na stronie faceConditionOptions
.
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
minFaceDetectionConfidence |
Minimalny wynik ufności dla wykrywania twarzy, aby uznać go za udany. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Minimalny wynik ufności wykrywania obecności twarzy w detekcji punktów orientacyjnych twarzy. | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu tworzenia obrazu warunku. |
BaseOptions obiekt |
N/A |
FacePluginModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu wtyczki. |
BaseOptions obiekt |
N/A |
Więcej informacji o tym, jak działają te opcje konfiguracji, znajdziesz w zadaniu dotyczącym usługi Face Landmarker.
Opcje głębi
Skonfiguruj te opcje na stronie depthConditionOptions
.
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
depthModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu tworzenia obrazu warunku. |
BaseOptions obiekt |
N/A |
depthPluginModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu wtyczki. |
BaseOptions obiekt |
N/A |
Modele
Generator obrazów wymaga modelu podstawowego, czyli modelu AI do konwersji tekstu na obraz, który do generowania nowych obrazów wykorzystuje techniki dyfuzji. Modele podstawowe wymienione w tej sekcji to lekkie modele zoptymalizowane pod kątem działania na zaawansowanych smartfonach.
Modele wtyczek są opcjonalne i uzupełniają modele podstawowe. Umożliwiają użytkownikom dodanie dodatkowego obrazu wraz z promptem tekstowym, aby uzyskać bardziej szczegółowe obrazy. Dostosowywanie modeli podstawowych za pomocą wag LoRA to opcja, która uczy model podstawowy o konkretnym pojęciu, takim jak obiekt, osoba lub styl, i wprowadza je do wygenerowanych obrazów.
Modele podstawowe
Modele podstawowe to ukryte modele dyfuzji tekstu na obraz, które generują obrazy na podstawie promptu tekstowego. Generator obrazów wymaga, aby model podstawowy był zgodny z formatem modelu runwayml/stable-diffusion-v1-5 EMA-only
na podstawie tego modelu:
Z Generatorem obrazów są też zgodne te modele podstawy:
Po pobraniu modelu podstawowego użyj narzędzia image_generator_converter, aby przekonwertować model do odpowiedniego formatu na potrzeby Image Generator.
Zainstaluj niezbędne zależności:
$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py
Uruchom skrypt convert.py
:
$ 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ą Image Generator przyjmowanie jako danych wejściowych obrazu warunku wraz z promptem tekstowym, co pozwala kontrolować strukturę generowanych obrazów. Modele wtyczek zapewniają funkcje podobne do ControlNet, ale z nowatorską architekturą przeznaczoną do dyfuzji na urządzeniu.
Modele wtyczki muszą być określone w opcjach podstawowych i mogą wymagać pobrania dodatkowych plików modeli. Każdy wtyczka ma unikalne wymagania dotyczące obrazu stanu, który może być generowany przez Generator obrazów.
Wtyczka Canny do Edge
Wtyczka Canny Edge akceptuje obraz warunku, który określa zamierzone krawędzie wygenerowanego obrazu. Model podstawowy wykorzystuje krawędzie zadane przez obraz warunku i generuje nowy obraz na podstawie promptu tekstowego. Generator obrazów zawiera wbudowane funkcje do tworzenia obrazów stanu i wymaga tylko pobrania modelu wtyczki.
Wtyczka Canny Edge zawiera te opcje konfiguracji:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
threshold1 |
Pierwszy próg dla procedury histerezy. | Float |
100 |
threshold2 |
Drugi próg procedury histerezy. | Float |
200 |
apertureSize |
Rozmiar otworu przysłony dla operatora Sobel. Typowy zakres to 3–7. | Integer |
3 |
l2Gradient |
Określa, czy do obliczenia wielkości gradientu obrazu ma być używana norma L2, a nie domyślna norma L1. | BOOLEAN |
False |
EdgePluginModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu wtyczki. |
BaseOptions obiekt |
N/A |
Więcej informacji o tym, jak działają te opcje konfiguracji, znajdziesz w artykule Canny edge detector.
Wtyczka punktów orientacyjnych twarzy
Wtyczka punktów orientacyjnych twarzy przyjmuje jako obraz warunku dane wyjściowe z MediaPipe Face Landmark. Punkt orientacyjny twarzy zapewnia szczegółową siatkę twarzy, która mapuje obecność i położenie cech twarzy. Model podstawowy korzysta z mapowania twarzy sugerowanego przez obraz stanu i generuje nową twarz na siatce.
Pobierz wtyczkę punktów orientacyjnych twarzy
Aby utworzyć obraz warunku, wtyczka do wykrywania punktów orientacyjnych twarzy wymaga też paczki modeli usługi Face Landmarker. Ten pakiet modeli to ten sam pakiet, który jest używany przez zadanie Face Landmarker.
Pobierz pakiet modeli punktów orientacyjnych twarzy
Wtyczka punktów orientacyjnych twarzy zawiera te opcje konfiguracji:
Nazwa opcji | Opis | Zakres wartości | Wartość domyślna |
---|---|---|---|
minFaceDetectionConfidence |
Minimalny wynik ufności dla wykrywania twarzy, aby uznać go za udany. | Float [0.0,1.0] |
0.5 |
minFacePresenceConfidence |
Minimalny wynik ufności wykrywania obecności twarzy w detekcji punktów orientacyjnych twarzy. | Float [0.0,1.0] |
0.5 |
faceModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu tworzenia obrazu warunku. |
BaseOptions obiekt |
N/A |
FacePluginModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu wtyczki. |
BaseOptions obiekt |
N/A |
Więcej informacji o tym, jak działają te opcje konfiguracji, znajdziesz w zadaniu dotyczącym usługi Face Landmarker.
Wtyczka Depth
Wtyczka Depth akceptuje obraz warunku, który określa monokularną głębię obiektu. Model podstawowy wykorzystuje obraz warunku do wnioskowania o rozmiarze i głębi generowanego obiektu, a następnie generuje nowy obraz na podstawie tekstu promptu.
Aby utworzyć warunek dotyczący obrazu, potrzebujesz też modelu oszacowania głębi.
Pobierz model oszacowania 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ę do modelu tworzenia obrazu warunku. |
BaseOptions obiekt |
N/A |
depthPluginModelBaseOptions |
Obiekt BaseOptions , który ustawia ścieżkę do modelu wtyczki. |
BaseOptions obiekt |
N/A |
Dostosowywanie za pomocą LoRA
Dostosowanie modelu za pomocą LoRA może umożliwić Generatorowi obrazów generowanie obrazów na podstawie konkretnych pojęć, które są identyfikowane przez unikalne tokeny podczas treningu. Dzięki nowym wagom LoRA po przeszkoleniu model może generować obrazy nowej koncepcji, gdy w promptach tekstowych jest określony odpowiedni token.
Tworzenie wag LoRA wymaga wytrenowania modelu podstawowego na podstawie obrazów przedstawiających konkretny obiekt, osobę lub styl, co umożliwia modelowi rozpoznanie nowego pojęcia i zastosowanie go podczas generowania obrazów. Jeśli tworzysz wagi LoRa, aby generować obrazy konkretnych osób i twarzy, używaj tego rozwiązania tylko w przypadku siebie lub osób, które wyraziły na to zgodę.
Poniżej znajduje się dane wyjściowe z dostosowywanego modelu wytrenowanego na podstawie obrazów czajników ze zbioru danych DreamBooth, przy użyciu tokena „monadikos czajnik”:
Prompt: dzbanek monadikos obok lustra
Dostosowany model otrzymał token w promptzie i wstrzyknął czajnik, który nauczył się przedstawiać na podstawie wag LoRA, a następnie umieścił go na obrazie obok lustra zgodnie z promptem.
Więcej informacji znajdziesz w przewodniku dotyczącym dostosowywania modeli za pomocą bazy modeli w Vertex AI, która umożliwia dostosowanie modelu przez zastosowanie wag LoRA do modelu podstawowego.