Po co mocny GPU do obróbki zdjęć?
Jeszcze kilka lat temu programy do obróbki zdjęć wykorzystywały moc GPU tylko w niewielkim stopniu, najczęściej do przyspieszenia wyświetlania podglądów, lub wcale. Wywoływanie zdjęć z formatu RAW równie było zadaniem, do którego wystarczała nawet prosta grafika zintegrowana. Sytuacja zaczęła ulegać zmianie, gdy producenci oprogramowania zaczęli automatyzować najbardziej żmudne czynności. Jedną z bardziej uciążliwych jest tworzenie masek, z reguły wymaga bowiem uciążliwego przygotowywania krawędzi maskowanych obiektów – o ile proste krawędzie robiło się dość prosto, to przy próbie wyizolowania np. długich, kręconych włosów, włosy mogły wyjść – obrabiającemu.
Nic zatem dziwnego, że zautomatyzowanie procesu maskowania było jednym z pierwszych zadań dla algorytmów AI, jakie trafiły do programów graficznych. Dziś w Lightroomie Classic mogę wybrać kilkoma kliknięciami obiekt główny, niebo, tło. Program rozpoznaje osoby, pozwala wybrać jedną lub więcej, a w ramach ludzkich sylwetek rozróżnia także elementy takie jak oczy, usta, skórę z podziałem na ciało i twarz, brwi, tęczówki, zęby.
Jeśli jakiś obiekt na zdjęciu nie zostanie wykryty automatycznie, to można go zamazać pędzlem, AI zrobi resztę i wykryje, o co nam chodzi, zaznaczając tylko obiekt. A ponieważ sztuczna inteligencja nie działa doskonale, czasem trzeba niewielkie błędy na szybko skorygować pędzlem. Przy bardziej skomplikowanych układach oszczędność czasu dzięki wykorzystaniu takiej automatyzacji może sięgać wielu minut na jedno zdjęcie.
Sztandarowym udoskonaleniem, które stało się praktyczne dzięki potędze wydajnych GPU NVIDII jest jednak odszumianie zdjęć z użyciem AI. Problem szumu jest nieodłączną częścią fotografii cyfrowej – większe sensory światłoczułe szumią mniej, mniejsze bardziej, ale zasada jest jedna: najmniejszy szum jest przy czułości bazowej, a każde podniesienie ISO skutkuje zwiększeniem zaszumienia. Każdy aparat ma praktyczną granicę, po której przekroczeniu uzyskane rezultaty nie nadają się już do użytku.
Standardowe algorytmy odszumiania są dość proste, więc także szybkie, ale ich skuteczność jest niewielka – przy wyższych czułościach redukcja szumu prowadzi do tak znacznej utraty detali na fotografii, że proces traci swój sens. Z pomocą przyszła AI – funkcja Denoise radzi sobie z szumem, z którym nie radzą sobie klasyczne algorytmy, przy czym do użytkownika należy decyzja, czy bardziej zależy mu na zachowaniu detali kosztem zachowania nieznacznego szumu, czy też może pozwolić sobie na wygładzenie zdjęcia.
Odszumianie AI w Lightroomie i Photoshopie przynosi znakomite rezultaty – ale jest niezwykle wymagające obliczeniowo. Używając wyłącznie CPU Intela lub AMD i zintegrowanego GPU przetworzenie pliku RAW 26 Mpix zająć może nawet kilka minut, a najmocniejsze układy robią to w minutę. NVIDIA GeForce RTX 4080 z 16 GB RAM przyspiesza proces tak, że przetworzenie zdjęcia widocznego powyżej zajmuje około 4 sekund, mniej niż podany przez program przybliżony czas. Jeśli do odszumienia jest większa liczba zdjęć w trybie wsadowym, przetwarzanie ich bez wsparcia mocnego GPU w ogóle traci sens – na Matebooku 2024, z którego okazyjnie korzystam także do obróbki zdjęć, przerobienie setki RAW-ów zajmie 3 godziny 45 minut, podczas gdy desktop z RTX 4080 poradzi sobie z tym samym zadaniem w niecałe 7 minut.
AI przydaje się także przy innych zadaniach – od roku Photoshop obsługuje generatywne tworzenie obrazu, przydatne zarówno do usuwania, jak i dodawania elementów na zdjęciach, do rozszerzania kadrów, a od niedawna generatywne usuwanie zanieczyszczeń i obiektów trafiło także do Lightrooma Classic i z miejsca udowodniło swoją skuteczność i przydatność w codziennej edycji – jest dużo dokładniejsze i mniej widoczne, niż ręczne opracowywanie detali za pomocą stemplowania i pędzla leczącego. Obliczenia do najbardziej zaawansowanych funkcji wykonywane są na serwerach w chmurze, ale selekcje i maski można przeprowadzić także nieco mniej dokładnie z pomocą lokalnego GPU.
Coś z niczego, tworzenie generatywne na własnym sprzęcie
Tworzenie grafiki na podstawie słownego opisu stało się powszechnie dostępne i dziś każdy może wypróbować swoich sił w takiej twórczości, korzystając z sieciowych rozwiązań takich jak Midjourney, DALL-E (który znajdziemy między innymi MS Copilot), Google Imagen (który z kolei znajdziemy w Gemini), czy Adobe Firefly. To świetny sposób, by zapoznać się z samą koncepcją i nauczyć się zasad, jest to też niezastąpiony sposób, by uzyskać szybki efekt.
Są tu jednak pewne ograniczenia – po pierwsze, Midjourney i Firefly nie są dostępne za darmo. Po drugie, nie zawsze chcemy dzielić się swoimi pracami na zewnątrz. Po trzecie, komercyjne rozwiązania mają narzucone ograniczenia – nie każdy prompt jest dozwolony, a uporczywe próby tworzenia zakazanych grafik mogą prowadzić nawet do permanentnego odcięcia dostępu do narzędzia – przy czym rozpoznawanie co jest zakazane, a co dozwolone działa bardzo różnie i czasami zupełnie niegroźne zadania są flagowane jako niedozwolone.
Alternatywą dla rozwiązań sieciowych jest użycie silników działających lokalnie. By móc sensownie myśleć o tym, potrzebny jest odpowiedni sprzęt – z wydajnym CPU, dużą ilością pamięci i przede wszystkim z mocnym GPU, na niego spadnie bowiem zadanie generowania obrazu – dostępne w tej chwili układy NPU są do tego zbyt słabe, choć mogą wspomagać inne aspekty pracy. O jakich różnicach mówimy? Wymagany do nowych maszyn CoPilot+ PC NPU musi mieć wydajność 50 TOPS, starsze generacje mają nawet mniej. Tymczasem najprostszy RTX 4050 oferuje ponad 200 TOPS, posiadany przeze mnie RTX 4080 ma około 800 TOPS, a najwydajniejsze układy RTX 4090 przekraczają 1300 TOPS.
Choć NPU nie pomoże sensownie w tworzeniu grafiki, ma swoje zalety – pobiera podczas pracy ułamek mocy GPU no i właściwie radzi sobie zupełnie dobrze z mniej wymagającymi zadaniami.
Choć nie jest to coś, co robię na co dzień, na potrzeby tego tekstu zainstalowałem u siebie program Stability Matrix, który służy jako program instalacyjny dla silników takich jak Fooocus, czy Stable Diffusion 3 i różnych modeli z nich korzystających. Proces nie jest oczywiście tak prosty, jak skorzystanie z usługi zarządzanej przez kogoś innego, ale jeśli przez niego przebrniemy, zyskujemy elastyczność niedostępną gdzie indziej – można eksperymentować z różnymi bazami modeli, w tym takimi o niezwykle wysokim poziomie realizmu, można edytować efekty, dodając lub usuwając elementy z obrazu, można wreszcie nauczyć silnik wzorców konkretnych twarzy, uzyskując niezbędną w wielu zastosowaniach profesjonalnych powtarzalność generowanych obrazów. Nie ma też ryzyka, że często zbyt czuły mechanizm eliminowania niedozwolonych poleceń utrudni normalną pracę.
Nie mając żadnego doświadczenia w korzystaniu z tego oprogramowania, w ciągu kilkudziesięciu minut zdołałem na swoim komputerze uzyskać w miarę realistyczne i ciekawe efekty. Czas generowania obrazu wynosił od kilku sekund do kilku minut. Zdaję sobie przy tym sprawę, że zaledwie prześlizgnąłem się po temacie, im bowiem głębiej zaglądałem, tym więcej możliwości ingerencji w proces tworzenia znalazłem. Prawdziwi mistrzowie są w ten sposób w stanie stworzyć wizualne perełki, korzystając wyłącznie z własnego sprzętu.
GeForce RTX i DaVinci Resolve – AI w zastosowaniach wideo
Sztuczna inteligencja w filmach to w zasadzie dwie osobne sprawy – po pierwsze, mamy coraz sprawniejsze, ale wciąż raczkujące silniki generatywnego wideo, które z graficznego, tekstowego albo mieszanego wsadu są w stanie stworzyć realistyczną animację. Po drugie, AI wspomaga montaż i przetwarzanie klasycznych materiałów wideo – z pomocą AI i GPU szybko stworzymy dynamiczne maski, możemy śledzić ruch kamery i obiektów, wykonamy automatyczne kadrowanie, zredukujemy zaszumienie materiału, dodamy w sposób zautomatyzowany napisy – możliwa jest nawet edycja pliku video poprzez wskazanie do wycięcia określonego zdania. Dodanie efektów flary, poświaty – to wszystko można było zrobić też i wcześniej, ale dzięki AI i GPU zrobimy to nie tylko dokładniej, ale także szybciej.
Szybkość GPU liczy się też podczas końcowego renderingu – to już nie tylko AI, które tworzy efekty, ale także kodowanie gotowego materiału do końcowej postaci. Karty NVIDIA GeForce RTX 4080 i 4090 są w stanie sprzętowo obsługiwać popularny kodek HEVC znacznie szybciej niż robiła to poprzednia generacja GPU, a do tego doszła obsługa nowoczesnego formatu AV1, który jest standardem przyszłości.
A po pracy zabawa
Praca pracą, ale nie samą pracą człowiek żyje. Choć GPU NVIDII znakomicie spisują się w zadaniach kreatywnych, to przecież powstały przede wszystkim z myślą o grach i graczach. Karty GeForce RTX serii 40 obsługują zaawansowane śledzenie promieni, śledzenie ścieżek, nadające niespotykany realizm oświetlenia w grach, a ponieważ są to bardzo wymagające efekty, dzięki wykorzystującej AI technice DLSS są w stanie tworzyć obraz w niższej rozdzielczości i skalować do wyższej z zachowaniem najwyższej jakości obrazu. Co więcej, z pomocą sztucznej inteligencji GPU jest w stanie sprawnie stworzyć klatki pośrednie, poprawiając płynność gry. I to także coś znaczy, tego rodzaju wspomaganie wymyślone przez NVIDIĘ stało się bowiem punktem odniesienia dla innych producentów sprzętu, którzy próbują gonić lidera.