Wstęp
W poprzednim wpisie (szybki test narzędzia Fooocus) sprawdziliśmy, czy narzędzie potrafi generować popularne obiekty takie jak buty czy też twarze ludzi, używając prostych poleceń. Wyniki były zadowalające, ale trzeba przyznać że generowanie dość losowych obrazów może być niezbyt przydatne. Na razie wstrzymamy się z pisaniem złożonych poleceń i skupimy się na jednej z bardzo ciekawych opcji – przemalowywaniu obiektów na już istniejącym obrazie.
Ważną opcją w tym narzędziu jest możliwość edycji już istniejących obrazów. Pozwala to na poprawianie, dodawanie lub usuwanie fragmentów obrazu. Tym sposobem możemy do naszego zdjęcia z wakacji dodać dzikie zwierzę, zmienić kolor morza czy też usunąć przypadkowego przechodnia. Dziś skupimy się na domalowaniu czegoś, czyli opcji „inpaint”.
Domalowanie palmy na zdjęciu
Na pierwszy ogień weźmy zdjęcie „z wakacji” i dodajmy tam coś ekstra. W tym celu zaznaczamy pole „Input image” a następnie przechodzimy do zakładki „Inpaint or Outpaint”. Wybieramy zdjęcie.
Na widocznym zdjęciu możemy zamalować obszar (lub obszary) które mają zostać zmodyfikowane. Przypomina to dodawanie maski w programie graficznym. Wybieramy metodę „Modify content”. W polu „Inpaint additional prompt” wpisujemy co chcemy dodać („palm tree”). Standardowe pole polecenia możemy zostawić puste. Ustawiłem 3 warianty do wygenerowania w rozdzielczości 1024×1024. Nie zmieniałem domyślnie wybranych styli.
Klikamy „Generate”. Narzędzie zwraca nam następujące obrazy:
Wygląda to naprawdę dobrze, choć widać że narzędzie próbuje się do czegoś „przyczepić”, więc w każdym z trzech przypadków generowanie zaczyna się gdzieś przy kłodzie na której siedzi mężczyzna, a nie na obszarze zaznaczonym na zdjęciu.
Spróbujmy zmienić miejsce w którym ma pojawić się palma i ponówmy próbę generowania obrazu. Oto widok z poprawionym obrazem wejściowym:
Tym razem wygenerowałem 9 wariantów – możliwe że musimy „wstrzelić się” w szansę domalowania palmy. Oto wyniki:
Brak sukcesu 😉 Wygląda na to że granica pomiędzy piaskiem a wodą jest bardzo mocnym sygnałem „tu zaczyna się zwykle palma”.
Domalowanie żółwia na zdjęciu
Ok, dajmy palmom spokój i spróbujmy dodać egzotyczne zwierzę, które raczej nie zapozuje nam do zdjęcia tak łatwo – żółw. Zaznaczam obszar:
Po kilku dłuższych chwilach otrzymałem takie dwa zdjęcia:
Żółw jaki jest, każdy widzi. Niestety widać również, że piasek pod żółwiem niezbyt pasuje do otoczenia. Sam żółw jest również bardzo wyraźny, a ta część zdjęcia jest rozmyta. Możliwe że można to poprawić – postaram się do tego wrócić w kolejnych wpisach.
Domalowanie modela do buta
Teraz coś bardziej komercyjnego. Mamy ładnego buta, ale nasz model nie stawił się na sesję 😉 Spróbujmy zatem zastąpić go siecią neuronową. Domalujmy na zdjęciu naszego buta maskę pod fragment nogi oraz nogawki:
Zobaczmy trzy pierwsze wyniki:
Przyznam że jestem pod wrażeniem. Oprócz zdjęcia środkowego – któremu w sumie się nie dziwię, bo polecenie „a shoe on feet” brzmi mało precyzyjnie i nawet pasuje do wyniku – to dwa pozostałe zdjęcia wyglądają super. Warto zwrócić uwagę że oba zdjęcia posiadają wygenerowany język buta, dopasowany do stopy. Cienie również wyglądają dobrze. Gdyby tylko domalowanie maski nie byłoby potrzebne…
Podsumowanie
Porównując do nakładu pracy, wyniki są więcej niż zadowalające. Widać „skłonności” sieci do powtarzania znanych zachowań (malowanie palmy od linii brzegu) czy częściowe przeniesienie piasku pod żółwiem z obrazów źródłowych. Myślę że jest to raczej powszechna cecha sieci generatywnych. Warto również zauważyć, że nadal nie pisaliśmy złożonych poleceń który mogłyby dokładniej wyjaśnić jaki efekt chcemy osiągnąć. Nie były zmieniane również żadne inne ustawienia, niż rozdzielczość i liczba wariantów.
Źródła
- Zdjęcie ludzi na plaży Patrick Beznoska / Unsplash
- Zdjęcie buta Wengang Zhai / Unsplash