4.4 Budowa datasetu: etap, który decyduje o wszystkim
Wszystko w rozdziale 4.5 jest mechaniczne. Dataset nie jest. Trening z przeciętnymi parametrami na znakomitym datasecie daje tożsamość, której można użyć. Trening z idealnymi parametrami na wąskim datasecie daje Mały adapter niskiego rzędu, od kilkudziesięciu do dwustu megabajtów, który popycha bazę w stronę jednej twarzy., która potrafi zrobić tylko jedno zdjęcie jednej osoby.
Oto zmiana ramy, która ma znaczenie w przypadku persony syntetycznej, bo odwraca standardową radę: tego datasetu nie zbierasz, ten dataset projektujesz. Poradniki dla prawdziwych ludzi traktują pozyskanie materiału jako trudną część — dwadzieścia pięć dobrych fotografii kogoś, kto nie jest modelką ani modelem. Ty masz nieograniczony zapas kandydatów, bo możesz je generować. Twoją trudną częścią jest selekcja: zbudowanie zbioru dość różnorodnego, żeby nauczyć model, co się zmienia, i dość spójnego, żeby przez cały czas była to ta sama osoba.
Ile ich naprawdę
Praktyka zbiega się na 20 do 50 zdjęć, a samo ujęcie jest istotne: to zakres, nie cel. Przy mniej niż około 15 zdjęciach model nie widział twarzy wystarczająco dużo. Powyżej około 50 dokładasz głównie redundancję, co uczy model twojej redundancji, a nie twojego zakresu.
Proces, który daje właściwą liczbę:
- Wygeneruj dużą pulę — setki kandydatów, z wielu szablonów promptów, używając adaptera albo ścieżki referencyjnej z 4.3.
- Oceń pod kątem tożsamości względem reference plate, odrzucając wszystko, co nie wygląda jak persona.
- Oceń pozostałe pod kątem pokrycia względem listy kontrolnej poniżej.
- Zatrzymaj 20 do 30 i przestań. Oprzyj się pokusie zatrzymania 80, bo były dobre.
Te dwa wyniki odpowiadają na różne pytania. Sto zdjęć, które wszystkie przechodzą test tożsamości i wszystkie są frontalnymi portretami z tym samym uśmiechem, to gorszy dataset niż dwadzieścia pięć, które pokrywają całą listę kontrolną. Zmienną jest pokrycie, nie liczba.
Lista kontrolna pokrycia
Każdy wymiar poniżej powinien wystąpić co najmniej dwa razy, a oznaczone wiersze są obowiązkowe.
| Wymiar | Co uwzględnić | Dlaczego |
|---|---|---|
| Obrót | Frontalnie, ~15° w każdą stronę, 3/4 w każdą stronę, niemal profil w każdą stronę | Tu najpierw ujawnia się dryf w produkcji |
| Pochylenie | Poziom, lekko w górę, lekko w dół | Kąty, które naprawdę będziesz fotografować |
| Ekspresja | Neutralna, uśmiech, mówienie, śmiech, powaga | Zapobiega echom mimiki (4.3) |
| Oświetlenie | Światło z okna, cień na zewnątrz, softbox, jedna klatka z twardym światłem | Uczy skóry, a nie jednego zestawu świateł |
| Odległość | Zbliżenie, plan średni, co najmniej jedno pełne ciało | Proporcje ciała są częścią tożsamości |
| Ubranie | Cztery albo pięć różnych strojów | Zapobiega pułapce ubrania opisanej niżej |
| Włosy | Spięte w kok, rozpuszczone i co najmniej jedno mokre albo związane do tyłu | Linia włosów jest częścią tożsamości |
| Tło | Kilka różnych miejsc | Nie pozwala modelowi nauczyć się pomieszczenia |
| Akcesoria | Z okularami i bez nich, jeśli persona je nosi | Akcesoria muszą być zdejmowalne |
Kąty 3/4 to najczęstsza przyczyna dryfu w produkcji i najczęstsze pominięcie w pierwszych datasetach. Zdjęcia frontalne generuje się najłatwiej i najtrudniej na ich podstawie uogólniać. Jeśli twój dataset jest cały frontalny, model nie ma żadnej informacji o tym, jak ta twarz zachowuje się, gdy się obraca, więc każde generowanie inne niż frontalne jest świeżą próbką — a to dokładnie ten dryf, który opisał rozdział 4.1.
Jedno ujęcie całej sylwetki to minimum dla proporcji. Bez niego model widział twarz twojej persony, ale nie jej ciało, a stosunek głowy do ciała staje się losową zmienną w całym feedzie.
Twarde reguły selekcji
Żadnych zasłoniętych twarzy. Żadnych dłoni na policzkach, żadnych włosów na oku, żadnych okularów przeciwsłonecznych w zbiorze podstawowym, żadnych szalików przy linii żuchwy. Model nie nauczy się tego, czego nie widzi, więc zasłonięte obszary zostają wypełnione ogólnymi priorami modelu bazowego — a dokładnie tam twarz się zmienia. Jeśli persona nosi okulary, zrób osobny podzbiór z akcesoriami albo przyjmij, że będzie je nosić zawsze.
Spójne renderowanie skóry, nie spójne oświetlenie. Różnorodne oświetlenie jest pożądane; skrajnie różna temperatura barwowa nie. LoRA uczy się odcienia skóry, a jeśli połowa datasetu to ciepłe wnętrze z żarówką wolframową, a połowa to błękitne zachmurzenie, ten odcień staje się zależny od sceny. Trzymaj stały balans bieli i używaj miękkich, rozproszonych źródeł w większości zbioru, z jedną albo dwiema klatkami twardego światła dla pokrycia.
Natywna rozdzielczość, nigdy nie upscalowana. Upscaler wymyśla wysokoczęstotliwościową teksturę — pory, włosy, splot materiału — której nie było w źródle. LoRA trenowana na upscalowanych wejściach uczy się wyobrażenia skóry upscalera jako części tożsamości, a wynik ma charakterystyczną twardość, której nie usunie żadna praca nad promptem. [UNVERIFIED] Co gorsza, wymyślony detal jest niespójny między zdjęciami, więc model widzi twarz, której tekstura zmienia się z klatki na klatkę. Generuj w rozdzielczości treningowej, zamiast upscalować do niej.
Ostre, nie przetworzone. Żadnego agresywnego odszumiania, żadnego filtrowania urody, żadnego mocnego wyostrzania. Pominięte detale i nadmierne przetwarzanie to artefakty, które LoRA wiernie zapamięta.
Pułapka ubrania
To pułapka, która kosztuje ludzi weekend, i jest niewidoczna aż do momentu po treningu.
Jeśli ta sama kurtka pojawia się na dwudziestu z dwudziestu pięciu zdjęć, model nie ma jak wiedzieć, że kurtka nie jest częścią osoby. Skojarzenie zostaje wypieczone w Token aktywujący adapter i zarazem token, który wchłania wszystko, co dataset błędnie kojarzy z twarzą.. Wynik: twarz twojej persony zmienia się, gdy zmieniasz jej ubranie, czyli dokładnie odwrotnie, a diagnoza doprowadza do szału, bo LoRA wypada znakomicie w testach — na tej samej kurtce.
Trzy zabezpieczenia, użyj wszystkich trzech:
- Różnorodność strojów w datasecie. Cztery albo pięć różnych strojów, w tym co najmniej dwa gładkie, bez marek.
- Opisz ubranie w captionie. Rozdział 4.5 omawia Nazywanie tekstem tego, co obraz zawiera; to, co nazwiesz, oddziela się od trigger worda.; istotna reguła tutaj jest taka, że to, co nazwiesz w captionie, model potrafi oddzielić od trigger word.
- Neutralny punkt odniesienia. Kilka zdjęć na gładkim tle i w prostym ubraniu, żeby twarz miała kanoniczną reprezentację niezależną od sceny.
Przygotowanie
Ostatni etap przed treningiem i ten, na którym drobny błąd marnuje wielogodzinny przebieg.
Kadruj świadomie. Kwadrat albo proporcje, których oczekuje trainer, z twarzą kadrowaną spójnie — mniej więcej ten sam stosunek głowy do kadru w całym zbiorze. Skrajnie różne skale kadru uczą model, że skala jest częścią tożsamości.
Dopasuj rozdzielczość treningową. Taką, jakiej oczekuje trainer. Wrzucanie zdjęć 4K do trainera, który pracuje na 1024, marnuje czas i grozi artefaktami resamplingu.
Spójna obróbka koloru w całym zbiorze. Jeden pipeline koloru, zastosowany do wszystkich. Wymieszane korekcje barwne stają się częścią twarzy.
Proste, kolejne nazwy plików. Wiele trainerów oczekuje numerowanej sekwencji w folderze nazwanym od konceptu. Nazwa pliku nie musi być sprytna; musi się sortować.
Rozdziel koncepty, jeśli trainer to obsługuje. Wiele trainerów pozwala umieścić zdjęcia ciała we własnym podfolderze z liczbą powtórzeń. To pozwala trenować proporcje osobno od twarzy i jest właściwą strukturą dla persony, której ciało i twarz są tożsamością. [UNTESTED]
Odłóż pięć zdjęć. Odstaw pięć swoich najlepszych, które nigdy nie trafią do treningu. To twój zbiór testowy do 4.6 i różnica między mierzeniem generalizacji a mierzeniem zapamiętywania. LoRA testowana na własnych zdjęciach treningowych wypadnie dobrze i nie powie ci nic.
Skąd biorą się kandydaci
Trzy źródła, a dobry dataset czerpie z wszystkich trzech.
Wynik adaptera. Gdy masz reference plate, adapter bez treningu z 4.3 potrafi generować kandydatów masowo. To najszybsze źródło i to ze znanym sufitem: każdy kandydat dziedziczy charakterystyczną miękkość adaptera i jego obciążenie ekspresją. Selekcjonuj pod tym kątem i nie pozwól, żeby zbiór stał się monokulturą jednego wyglądu z adaptera.
Wariacje na plate. Przepuść sam reference plate przez model edycyjny sterowany instrukcją i zmieniaj jeden wymiar naraz — obróć głowę, zmień światło, zmień strój. To daje zdjęcia najbardziej zgodne z tożsamością i najmniej naturalnej zmienności, bo każda klatka prowadzi z powrotem do tych samych pikseli źródłowych.
Wybory z produkcji. Najmocniejsze źródło i najwolniejsze. W miarę publikowania zatrzymuj klatki, które najbardziej wyglądały jak persona, i dodawaj je do rosnącego zapasu. Przez kilka miesięcy daje to zbiór z twojego realnego pipeline'u, czyli rozkład, na którym naprawdę ci zależy. Rejestr z rozdziału 4.6 jest miejscem, w którym te klatki się oznacza.
Zapas jest powodem, dla którego dataset nigdy nie jest skończony. Persona w szóstym miesiącu ma lepszy dostępny dataset niż w pierwszym, a ponowny trening to normalna czynność utrzymaniowa, a nie jednorazowa akcja.
Zgoda, pochodzenie i model release, którego możesz nie mieć
Jeden krok administracyjny, który należy do datasetu, a nie po nim.
Jeśli twoja persona jest w całości wygenerowana — twarz powstała z modelu i nigdy nie była konkretną prawdziwą osobą — zapisz ten fakt oraz historię generowania. To rekord pochodzenia, a rozdział 11.5 chce go do celów ujawnienia.
Jeśli personę zaseedowałeś ze zdjęcia prawdziwej osoby, ze zdjęcia stockowego albo z wynajętej modelki czy modela, sytuacja jest inna i rządzi nią rozdział 11.4. Dokumentacja zgody podróżuje razem z datasetem, w tym samym folderze, w tej samej kontroli wersji. Dwa powody: trening jest nieodwracalny, więc zapis tego, na czym był prowadzony, musi istnieć przed przebiegiem, a nie po nim; a dataset bez pochodzenia to dataset, którego nie użyjesz komercyjnie z pewnością siebie, choćby LoRA wyszła znakomicie.
Trzymaj to razem ze zdjęciami. Drzewo folderów z rozdziału 3.6 ma już na to miejsce.
Gdzie to się psuje
Generowanie całego zbioru z trzech szablonów promptów. Zbudowałeś 25 niemal identycznych zdjęć i wytrenujesz LoRA, która potrafi zrobić dokładnie jeden obraz.
Żadnych kątów 3/4. Największa pojedyncza przyczyna dryfu w produkcji i najłatwiejsze pominięcie.
Zasłonięte twarze, okulary przeciwsłoneczne, dłonie na policzkach. Model wypełnia lukę twarzą kogoś innego.
Upscalowane wejścia. Nauczyłeś LoRA halucynowanej skóry swojego upscalera.
Jeden strój. Pułapka ubrania, która objawi się jako zagadkowe niepowodzenie tożsamości.
Testowanie na zdjęciach treningowych. Zapamiętywanie to nie tożsamość.
Zatrzymywanie wszystkiego, co przeszło filtr tożsamości. Kryterium jest pokrycie, a redundancja to koszt.
Gonienie za 100 zdjęciami. Powyżej około 50 dokładasz pracę, a nie informację.
Bramka
Wypełnij tabelę pokrycia liczbami z własnego datasetu. Każdy obowiązkowy wiersz potrzebuje co najmniej dwóch zdjęć, wiersze 3/4 potrzebują czterech, a w zbiorze musi być co najmniej jedna klatka całej sylwetki.
Potem odpowiedz:
- Ile kandydatów wygenerowałeś i ile przetrwało?
- Które obowiązkowe wiersze pokrycia są nadal puste?
- Ile różnych strojów jest reprezentowanych?
- Czy w zbiorze zostały jeszcze zasłonięte twarze?
- Które pięć zdjęć jest odłożonych i nigdy nie trafi do treningu?
Z czym wychodzisz
Zmiana ramy, w której dataset persony syntetycznej projektuje się, a nie zbiera, uczciwy zakres liczbowy i proces selekcji na dwóch ocenach, lista kontrolna pokrycia z kątami 3/4 oznaczonymi jako obowiązkowe, cztery twarde reguły selekcji, pułapka ubrania i jej trzy zabezpieczenia, rutyna przygotowania oraz odłożony zbiór, dzięki któremu test jakości z rozdziału 4.6 coś znaczy.