Zmiana tła Waszego zdjęcia

Hej!

Robimy bardzo dużo zdjęć, a co za tym idzie – wiele z nich jest niechlujnych, z zabałagnionym tłem. Możemy jednak chcieć wykorzystać je do pochwalenia się naszym ryjkiem na jakimś publicznym profilu, gdyż np. naturalne, miękkie światło korzystnie eksponuje naszą facjatę. Podejścia mogą być dwa – albo zdecydujemy się na blur bądź zupełne usunięcie tła i zastąpienie go kolorem, lekkim gradientem, albo pokusimy się o wygenerowanie otoczenia za naszymi plecami, co z pewnością będzie zadaniem bardziej czasochłonnym, jeśli chcemy uzyskać satysfakcjonujące efekty.

Darmowe strony WWW z zaimplementowanym systemem do uploadu i podstawowej edycji zdjęć – w mojej osobistej ocenie – powinniśmy sobie darować. Mają szansę sprawdzić się przy prostych kształtach, fotografii przedmiotu który chcemy wystawić w ogłoszeniu, niekoniecznie chwaląc się hałdą prania na krześle. Prawdziwym wyzwaniem natomiast stają się portrety, ze szczególną uwagą skierowaną na element włosów.

Moje wypracowane, amatorskie workflow obejmuje dwa narzędzia: ComfyUI oraz Photoshopa. Posłużę się tutaj niepodpisanym zdjęciem znalezionym w internecie; przypadek nie ekstremalny, ale na pewno nie trywialny. Zadanie trwało kilka minut. Wymaga chwili uwagi, bo moim zdaniem nie ma obecnie narzędzia, które bez naszej ingerencji zapewni akceptowalną dokładność i realizm fotografiki.

Zacząć należy naturalnie od początku, zatem: Pobrać należy narzędzie ComfyUI. Sposób uruchomienia jak i cały manual dostępny oczywiście w linku. Do tego dołożyć musimy Rembg, który zassać możemy poprzez git clone do folderu custom nodes bądź używając Managera. Zdjęcie źródłowe uploaduje do pierwszego Node’a w interfejsie ComfyUI. 

Uruchamiając pierwszy raz GUI, nie będziecie widzieć takiego schematu. To, co pokazałem na screenie, to przykładowe workflow, które zwykłym drag&drop możecie przeciągnąć z folderu narzędzia w custom_nodes/ComfyUI-Inspyrenet-Rembg. Odwrócenie maski, które dodałem od siebie, nie będzie teraz potrzebne. W zasadzie wystarczy tylko kliknąć Queue Prompt, poczekać chwilę na wykonanie zadanie i prawym przyciskiem myszy pobrać zdjęcie z Node’a Save Image.

W tym miejscu przechodzę do Photoshopa – instalacji raczej nie muszę przytaczać, a osoby nie posiadające dostępu do Adobe CC z pewnością mogą posłużyć się 7 dniowym trialem. 

Otwieram zdjęcie źródłowe poprzez drag&drop, dzięki czemu nie muszę wymyślać rozdzielczości i innych parametrów projektu. Duplikuję warstwę (w prawym dolnym rogu) poprzez zaznaczenie Warstwa 1 i skrót CTRL+J. Klikając na zdjęcie w obszarze roboczym powinniśmy zobaczyć opcję Usuń tło

Jak nazwa wskazuje, po kliknięciu AI postara się jak najlepiej oddzielić temat główny naszej fotografii od nienajkorzystniejszego tła.

W tym miejscu, posługując się Odejmij od maski, możemy wymazać pobieżnie pędzlem elementy, które nie powinny znaleźć się w finalnym zdjęciu – w moim przykładzie było to oparcie krzesła. 

Ponownie używam CTRL+J, tym razem na już wcześniej skopiowanej warstwie. Robię to po to, by móc wrócić do każdego etapu pracy, jeśli potem coś pójdzie nie tak i efekt będzie niesatysfakcjonujący. 

Dalej klikamy LPM na masce aktualnej warstwy

I wybieramy opcję Odwróć.

Tym razem klikamy PPM na masce aktualnej warstwy, aby wybrać Dodaj maskę do zaznaczenia. Powinniście zobaczyć przerywaną linię, oddzielającą tło i wasz obiekt na obszarze roboczym. Sporo już zrobione, także nie poddawać się moi drodzy. Na górnej belce klikamy Zaznaczenie Zmień Rozszerzanie. Domyślnie wpisuję wartość 5px, choć przy kiepskich rezultatach można ją zmodyfikować w obie strony. 

Teraz gwóźdź programu, czyli Wypełnienie generatywne i nasze nowe tło. Tutaj hamuje Was już tylko fantazja i ewentualna cenzura od Adobe. Frazy mogą być różne: Forest, Blurred forest, blurred forest with warm colors etc. Jeżeli 3 pierwsze propozycje Wam się nie spodobają, możecie generować kolejne wariacje.

Efekt powinien wyglądać co najmniej nienajgorzej, choć mogą zdarzać się artefakty, np. przy dłoniach. Tutaj następuje już freestyle i kreatywność, używanie masek i pędzelka, zmiana wcześniej wspomnianego Rozszerzenia… 

Natomiast zauważyć można, że elementy naszej postaci, zwłaszcza włosy, nie wyglądają tak ładnie i dokładnie jak w oryginale.

W tym momencie, znów przez drag&drop, przywołuję pobrane wcześniej zdjęcie z ComfyUI. Nałożone jako najwyższa warstwa, wykorzysta tło wygenerowane w Photoshopie (z uwzględnieniem postaci, dlatego te maski i duplikowanie warstw, tak więc nie powinno być zupełnie odstrzelone od pierwszego planu) i jednocześnie dokładniejszą, moim zdaniem, separację tła od obiektu z ComfyUI.

W tym momencie ostatni punkt programu, dla osób mających z tym styczność po raz pierwszy, pewnie najgorszy i najbardziej żmudny: poprawienie niedoskonałości i obiektów, które nie powinny były być uwzględnione przez algorytmy.

Jak widać na moim przykładzie, jest to krzesło. Mając wybraną najnowszą warstwę, dodajemy jej maskę klikając tutaj:

Wybieramy maskę naszej warstwy, żeby rysować pędzlem po niej, a nie po obrazie:

Wybieramy pędzel (skrót klawiszowy B), wybieramy PPM gdzieś na obrazie i dostosowujemy rozmiar oraz twardość pędzla: twardy kiedy chcemy rozpocząć i wymazać jak najwięcej, odciąć wyraźnie krawędzie, miękki natomiast kiedy chcemy coś pomazać np. w okolicy włosów. Na górze mamy także opcję Przepływ, która odpowiada za intensywność nacisku pędzla (więcej przejazdów, aby osiągnąć takie same krycie). Wybierając czarny kolor pędzla usuwamy, biały – przywracamy,

Oto finalny efekt, jaki udało mi się osiągnąć w kilka minut i nie pochylając się nad kadrem więcej niż przeciętny użytkownik (mimo że potrafiłem obrabiać jedno zdjęcie 12 godzin 🤣), posiadając oczywiście pewne obycie z Photoshopem:

Łokieć nie jest idealny, ale i takie były dane wejściowe. Zaznaczając narzędziem Lasso albo zwykłym Zaznaczeniem prostokątnym, możecie obrysować np. dany łokieć i wówczas wybrać wypełnienie generatywne. Nie podając niczego w prompcie, AI spróbuje odgadnąć i poprawić efekt, krawędź itp. Można też użyć tego, by usunąć zagniecenia na sukience, rozwiane włosy czy inne defekty.

Myślę, że efekt końcowy jest wart poświęcenia paru chwil, porównując uzyskany efekt z gotowymi narzędziami online czy nawet tymi implementowanymi dziś przez producentów bezpośrednio w telefonach. Oczywiście im lepsze zdjęcie oryginalne; ostrość, rozdzielczość, jakość światła, tym lepszy efekt możemy uzyskać.

Pozdrawiam!

Zobacz także:

  • Piotr Szymański

    Kategoria:

    Hejka! Zapraszam na skrót z minionych dwóch tygodni, który przyswoić możecie przy ciepłej herbatce w te mroczne, szare dni. W opublikowanym przez Google 14 listopada ostrzeżeniu wskazano kilka najważniejszych rodzajów oszustw internetowych. Uwagę zwrócono między na niebezpieczne techniki ataków typu cloaking, które nabierają nowego wymiaru dzięki wykorzystaniu sztucznej inteligencji. Cloaking polega na ukrywaniu przed użytkownikiem […]
  • Piotr Szymański

    Kategoria:

    Hejka po dłuższej przerwie! Zaczynamy świeżym tematem. Raptem kilkanaście godzin temu do użytkowników trafiła, zapowiedziana 25 lipca, funkcja SearchGPT od OpenAI, umożliwiająca, w przeciwieństwie do tradycyjnych modeli językowych, na integrację z internetem w czasie rzeczywistym. SearchGPT ma dostęp do aktualnych informacji z sieci, co pozwala na udzielanie odpowiedzi opartych na najnowszych danych. Ponadto SearchGPT dostarcza […]
  • Piotr Szymański

    Kategoria:

    Hejson! Dzisiejsza konsumpcja mediów ma to do siebie, że odbywa się na 5-6 calowym ekranie telefonu. Ma też to do siebie, że zanim zdjęcie dotrze do Ciebie, to przejdzie przez 6 konwersacji na jedynym słusznym messengerze, zatem zostanie 6-cio krotnie skompresowane. W międzyczasie, jak będziecie mieli pecha, to jakiś wujek zrobi screena, zamiast zapisać zdjęcie […]
  • Piotr Szymański

    Kategoria:

    Strzałeczka. Nvidia przejęła OctoAI, startup specjalizujący się w optymalizacji modeli uczenia maszynowego. To już piąta akwizycja Nvidii w 2024 roku, co czyni aktualnie nam panujący rok rekordowym pod względem liczby przejęć. OctoAI, założone w 2019 roku przez Luisa Ceze, skupiło się na tworzeniu oprogramowania zwiększającego wydajność modeli uczenia maszynowego na różnych platformach sprzętowych. Oprogramowanie OctoAI […]
  • Piotr Szymański

    Kategoria:

    Cześć i czołem! Przejdźmy od razu do rzeczy najistotniejszych, poważnych i brzemiennych w skutkach dla Nas wszystkich. Roblox właśnie pokazał nowe narzędzie AI, ubogacające możliwości platformy mocno stawiającej na sztuczną inteligencję. Zmiany mają zmienić sposób tworzenia gier i map, pozwalając na generowanie światów na bieżąco, bez potrzeby skomplikowanego programowania w języku Lua. Generatywna sztuczna inteligencja, […]