Co to jest PuLID?
PuLID (Pure and Lightning ID customization) to nowa metoda dostosowywania tożsamości (ID) bez tuningu w modelach generowania obrazów z tekstu. Ma na celu osadzenie konkretnej tożsamości (np. twarzy osoby) w wstępnie wytrenowanym modelu tekst-na-obraz bez zakłócania pierwotnych możliwości modelu. Pozwala to na generowanie obrazów konkretnej osoby, jednocześnie umożliwiając modyfikowanie atrybutów, stylów, tła itp. za pomocą poleceń tekstowych.
PuLID obejmuje dwa kluczowe komponenty:
- Gałąź "Lightning T2I", która szybko generuje wysokiej jakości obrazy warunkowane na ID w zaledwie kilku krokach odszumiania, obok standardowej gałęzi dyfuzji. Umożliwia to obliczenie dokładnej straty ID w celu poprawy wierności wygenerowanej twarzy.
- Straty wyrównania kontrastowego między ścieżkami Lightning T2I z i bez warunkowania ID. Uczy to model, jak osadzać informacje o ID bez zanieczyszczania pierwotnych możliwości modelu w zakresie podążania za poleceniami i generowania obrazów.
Jak działa PuLID
Architektura PuLID składa się z konwencjonalnej gałęzi treningowej dyfuzji i nowej gałęzi Lightning T2I:
- W gałęzi dyfuzji PuLID podąża za standardowym procesem treningowym dyfuzji polegającym na iteracyjnym odszumianiu. Warunek ID jest wycinany z docelowego obrazu treningowego.
- Gałąź Lightning T2I wykorzystuje najnowsze metody szybkiego próbkowania do generowania wysokiej jakości obrazu warunkowanego na ID w zaledwie 4 krokach odszumiania, zaczynając od czystego szumu.
- W ramach gałęzi Lightning T2I konstruowane są dwie ścieżki - jedna warunkowana tylko na poleceniu tekstowym, druga warunkowana zarówno na ID, jak i poleceniu tekstowym. Cechy UNET tych ścieżek są wyrównywane za pomocą strat kontrastowych:
- Strata wyrównania semantycznego zapewnia, że odpowiedź modelu na polecenie tekstowe jest podobna z i bez warunkowania ID. Zachowuje to pierwotną zdolność modelu do podążania za poleceniami.
- Strata wyrównania układu utrzymuje spójność układu wygenerowanego obrazu przed i po wstawieniu ID.
- Gałąź Lightning T2I umożliwia obliczenie dokładnej straty ID między wygenerowanym osadzeniem twarzy a rzeczywistym osadzeniem ID, ponieważ produkuje czysty, odszumiony obraz twarzy. Poprawia to wierność wygenerowanego ID.
Jak korzystać z ComfyUI PuLID
Korzystanie z workflowu ComfyUI PuLID do zastosowania dostosowania ID do modelu obejmuje kilka kluczowych parametrów w węźle "Apply PuLID":
Wymagane wejścia "Apply PuLID":
- model: Podstawowy model dyfuzji tekst-na-obraz do dostosowania z konkretnym ID. Zazwyczaj jest to wstępnie wytrenowany model, taki jak Stable Diffusion.
- pulid: Załadowane wagi modelu PuLID, które definiują, jak informacje o ID są wstawiane do modelu podstawowego. Różne pliki wag PuLID mogą być trenowane w celu priorytetyzowania wierności ID lub zachowania pierwotnego stylu generowania modelu.
- eva_clip: Załadowany model Eva-CLIP do kodowania cech twarzy z referencyjnych obrazów ID. Eva-CLIP produkuje znaczące osadzenie cech twarzy.
- face_analysis: Załadowany model InsightFace do rozpoznawania i przycinania twarzy w referencyjnych obrazach ID. Zapewnia to kodowanie tylko istotnych cech twarzy.
- image: Obraz referencyjny lub obrazy przedstawiające konkretny ID do wstawienia do modelu. Można dostarczyć wiele obrazów tej samej tożsamości, aby poprawić osadzenie ID.
- method: Wybiera metodę wstawiania ID, z opcjami "fidelity", "style" i "neutral". "fidelity" priorytetyzuje maksymalne podobieństwo do referencyjnego ID, nawet jeśli jakość generowania się pogarsza. "style" koncentruje się na zachowaniu pierwotnych możliwości generowania modelu z niższą wiernością ID. "neutral" balansuje między tymi dwoma.
- weight: Kontroluje siłę wstawiania ID, od 0 (bez efektu) do 5 (bardzo silny). Domyślnie 1. Wyższa waga poprawia wierność ID, ale ryzykuje nadpisanie pierwotnych możliwości generowania modelu.
- start_at: Krok odszumiania (jako procent od 0 do 1), od którego zaczyna się stosowanie dostosowania ID PuLID. Domyślnie 0, rozpoczynając wstawianie ID od pierwszego kroku odszumiania. Można zwiększyć, aby zacząć wstawianie ID później w procesie odszumiania.
- end_at: Krok odszumiania (jako procent od 0 do 1), na którym kończy się stosowanie dostosowania ID PuLID. Domyślnie 1, stosując wstawianie ID do końca odszumiania. Można zmniejszyć, aby zakończyć wstawianie ID przed ostatnimi krokami odszumiania.
Opcjonalne wejścia "Apply PuLID":
- attn_mask: Opcjonalny obraz maski w skali szarości do przestrzennego kontrolowania, gdzie stosowane jest dostosowanie ID. Białe obszary maski otrzymują pełny efekt wstawiania ID, czarne obszary są niezmienione, szare obszary otrzymują częściowy efekt. Przydatne do lokalizacji ID tylko do obszaru twarzy.
Wyjścia "Apply PuLID":
- MODEL: Model wejściowy z zastosowanym dostosowaniem ID PuLID. Ten dostosowany model może być używany w innych węzłach ComfyUI do generowania obrazów. Wygenerowane obrazy będą przedstawiać ID, jednocześnie będąc kontrolowanymi za pomocą poleceń.
Dostosowanie tych parametrów pozwala na dokładne dostrojenie wstawiania ID PuLID, aby osiągnąć pożądany balans między wiernością ID a jakością generowania. Zazwyczaj waga 1 z metodą "neutral" zapewnia niezawodny punkt wyjścia, który można następnie dostosować na podstawie wyników. Parametry start_at i end_at zapewniają dalszą kontrolę nad tym, kiedy ID zaczyna działać w odszumianiu, z opcją lokalizacji efektu za pomocą attn_mask.
Więcej informacji można znaleźć na stronie