IT Touch

Generowanie obrazów za pomocą AI

Artykuł opublikowano:

W ciągu ostatnich kilku lat technologia sztucznej inteligencji zrobiła ogromne postępy w dziedzinie generowania obrazów. Dzięki zaawansowanym algorytmom, takim jak modele dyfuzyjne, AI jest w stanie tworzyć szczegółowe, wysokiej jakości obrazy. Modele takie jak DALL-E czy Stable Diffusion umożliwiają generację obrazów na podstawie jedynie tekstowego opisu. Technologia ta pozwala wytworzenie wysokiej jakości wizualizacji osobom bez potrzeby posiadania dodatkowych umiejętności artystycznych.
Generowanie obrazów przez AI to nie tylko techniczna innowacja, ale także otwarcie nowych możliwości w designie, marketingu, edukacji i wielu innych dziedzinach. Ta technologia nie wzięła się znikąd. W artykule chcielibyśmy przedstawić parę modeli, które miały wpływ na rozwój generacji obrazów do teraz.

 

VAE

Variational Autoencoder (VAE) to typ generatywnej sieci neuronowej zaproponowany w 2013 roku, a formalnie opisany w artykule “Auto-Encoding Variational Bayes”, opublikowanym na początku 2014 roku. VAE stał się jednym z pierwszych skutecznych podejść do generowania realistycznych danych (np. obrazów) z rozkładów statystycznych.

VAE to rozszerzenie klasycznego autoenkodera, który uczy się mapować dane wejściowe (np. obrazy) do przestrzeni ukrytej – gdzie rozmiar danych jest zmniejszony i ważne cechy są zachowane – a następnie rekonstruować je z powrotem.

W przeciwieństwie do zwykłych autoenkoderów, które uczą się „sztywnych” kodów, VAE uczy się rozkładu prawdopodobieństwa nad przestrzenią ukrytą. Dzięki temu może generować nowe dane poprzez próbkowanie z tego rozkładu.

Model składa się z dwóch komponentów – enkodera i dekodera. Enkoder przekształca dane wejściowe (w tym przypadku obraz) do dwóch wektorów – średnich i odchyleń standardowych. Dekoder z kolei uczy się rekonstruować obrazy na podstawie tych średnich i odchyleń standardowych. 

Model uczy się na podstawie błędu rekonstrukcji i dywergencji KL, które stara się minimalizować:

  • błąd rekonstrukcji jest obliczany na podstawie różnic wartości pikseli pomiędzy obrazem wejściowym, a zrekonstruowanym przez VAE,
  • dywergencja KL bada różnicę pomiędzy rozkładem danych wyjściowych a rozkładem (zazwyczaj) normalnym.

Wytrenowany model umożliwia generowanie nowych danych z rozkładu poprzez przekazywanie losowego wektora z rozkładu normalnego do dekodera.

 

GAN

GAN to architektura sieci neuronowych stworzona do generowania danych, po raz pierwszy zaproponowana w 2014 roku w pracy pt. “Generative Adversarial Nets”.

To jeden z najważniejszych kamieni milowych w rozwoju sztucznej inteligencji — GAN-y umożliwiły generowanie niezwykle realistycznych obrazów, filmów, a nawet muzyki. 

GAN składa się z dwóch komponentów – sieci generatora i dyskryminatora. Zadaniem generatora jest tworzenie nowych przykładów z losowego szumu, a dyskryminator rozróżnia czy przykład jest prawdziwy, czy fałszywy.

Podczas uczenia, sieci generatora i dyskryminatora uczą się nawzajem – generator stara się wygenerować takie obrazy, by oszukać dyskryminator, który z kolei stara się z każdym krokiem uczenia coraz lepiej rozróżniać zdjęcia prawdziwe od wygenerowanych.

Pod koniec treningu sieć generatora jest w stanie wytwarzać wysokiej jakości obrazy, które trudno odróżnić od prawdziwych. GANy oprócz zrewolucjonizowania generacji obrazów zostały wykorzystane do różnych innych zadań, takie jak transfer stylu (np. zamiana zdjęć tak, aby wyglądały jak obrazy Moneta), generowanie map ze zdjęć satelitarnych, zamiana obiektu na obrazie innym, zwiększanie rozdzielczości obrazu czy modyfikacja wieku osoby na zdjęciu.

Obraz kota wygenerowany przez GAN

 

Modele dyfuzyjne

Modele dyfuzyjne to potężna klasa generatywnych modeli probabilistycznych, które zdobyły ogromną popularność w ostatnich latach, zwłaszcza w zadaniach związanych z generowaniem obrazów. Ich współczesna forma została spopularyzowana dzięki pracy “Denoising Diffusion Probabilistic Models” (DDPM), opublikowanej w 2020 roku.

Model jest trenowany do przewidywania, jaki byłby mniej zaszumiony obraz na podstawie bardziej zaszumionego, minimalizując błąd (najczęściej błąd średniokwadratowy) pomiędzy przewidywanym szumem a faktycznie dodanym szumem.

Model DDPM wprowadził stabilny, efektywny i łatwy do trenowania model, który szybko stał się podstawą dla wielu zaawansowanych systemów generatywnych, takich jak Stable Diffusion, czy DALL-E.

W pracy “Denoising Diffusion Implicit Models” zaproponowano wariant (DDIM), który umożliwia szybszą generację obrazów bez pogorszenia ich jakości. W przeciwieństwie do klasycznego DDPM, który wymaga przejścia przez wszystkie (np. 1000) kroków odszumiania, pozwala na generowanie obrazów w znacznie mniejszej liczbie kroków, np. 50 lub 100.  

Obrazy kwiatów wygenerowane przez model dyfuzyjny

 

Latent Diffusion

Modele LDM (Latent Diffusion Models) to przełomowe podejście, które znacząco zmniejsza koszty obliczeniowe modeli dyfuzyjnych. Łączą one proces dyfuzji z przestrzenią ukrytą, wykorzystywaną w VAE.

Zamiast stosować dyfuzję bezpośrednio w przestrzeni pikseli (co jest kosztowne przy obrazach wysokiej rozdzielczości), LDM najpierw koduje obraz do ukrytej przestrzeni (np. za pomocą autoenkodera), a następnie przeprowadza dyfuzji na tej skompresowanej reprezentacji. Po zakończeniu odszumiania wynik dekodowany jest z powrotem do przestrzeni obrazów. Umożliwia to m.in generowanie obrazów w wyższej rozdzielczości, z mniejszym kosztem obliczeniowym. Architektura LDM jest wykorzystywana w modelach text-to-image – takich jak Stable Diffusion.

 

Obrazy wygenerowane przez model LDM i ich prompty tekstowe

 

Transformery

Architektura transformerowa została początkowo zaprezentowana w pracy “Attention Is All You Need”. Zrewolucjonizowała przetwarzanie języka naturalnego (NLP) i jest szeroko wykorzystywana w dużych modelach językowych, takich jak ChatGPT. Znalazły również zastosowanie w generowaniu grafiki. Choć początkowo były wykorzystywane głównie w zadaniach tekstowych, ich zdolność do modelowania odległych zależności sprawiła, że stały się również potężnym narzędziem w wizji komputerowej.

Transformery składają się z enkodera i dekodera, które z kolei są zbudowane z warstw mechanizmu atencji i wielowarstwowych perceptronów.

Doskonale radzą sobie z łączeniem np. tekstu i obrazu. W systemach takich jak DALL-E tekst jest kodowany za pomocą transformera, a następnie jego reprezentacja jest wykorzystywana jako warunek wejściowy do modelu generującego grafikę (np. dyfuzyjnego).

Transformery pełnią rolę mechanizmu rozumiejącego tekst i przekształcającego go w reprezentację, która następnie kieruje generacją obrazu.

W bardziej zaawansowanych systemach generatywnych, transformery działają w przestrzeni obrazów, operując na tzw. patchach — fragmentach obrazu podzielonych na siatkę (np. 16×16). Zamiast klasycznych sieci konwolucyjnych, sieci typu ViT (Vision Transformer) analizują i rekonstruują obrazy globalnie, uwzględniając zależności między odległymi fragmentami obrazu.

Transformery nie generują obrazów  tak jak GAN-y, VAE czy modele dyfuzyjne, lecz są wykorzystywane do:

  • przetwarzania obrazów jako sekwencji (piksele, fragmenty obrazu, tokeny),
  • uczestniczą w rozumieniu promptów tekstowych,
  • tworzą warstwę interpretacyjną w systemach typu text-to-image,
  • bywają częścią hybrydowych systemów z autoenkoderami i modelami dyfuzyjnymi.

Ich największą zaletą jest modelowanie złożonych zależności i uniwersalność – mogą łączyć wizję i tekst w jednym modelu.

 

CLIP – połączenie tekstu i obrazów

Jednym z przełomowych narzędzi, które znacząco wpłynęły na rozwój generatywnych modeli obrazów, jest CLIP (Contrastive Language–Image Pretraining), opracowany przez OpenAI. CLIP został zaprojektowany z myślą o lepszym zrozumieniu zależności między językiem naturalnym a obrazami. W uproszczeniu, model ten potrafi ocenić, jak dobrze dany opis tekstowy pasuje do konkretnego obrazu, ponieważ został wytrenowany na ogromnej liczbie par tekst–obraz dostępnych w internecie.

CLIP składa się z dwóch głównych komponentów: jednego przetwarzającego tekst (np. transformer) oraz drugiego przetwarzającego obrazy (np. CNN lub Vision Transformer). Oba komponenty kodują dane wejściowe do przestrzeni wektorowej, w której obraz i tekst mu odpowiadający mają zbliżone wartości, a obrazy i niezwiązane z nimi opisy są oddalone od siebie.

W kontekście generacji obrazów, CLIP ocenia, które obrazy najbardziej odpowiadają podanemu opisowi. To podejście zrewolucjonizowało generację text-to-image, ponieważ pozwalało na kierowanie procesem tworzenia grafiki w sposób bardziej precyzyjny i zgodny z intencją użytkownika. Przykładowo, modele takie jak  Stable Diffusion czy DALL-E wykorzystują CLIP do porównywania tekstowego promptu z generowanymi obrazami i wybierania tych, które najlepiej oddają zamysł.

Wpływ CLIP był ogromny – umożliwił tworzenie bardziej trafnych, złożonych i spójnych wizualnie ilustracji na podstawie tekstów, nawet bardzo abstrakcyjnych czy surrealistycznych.

CLIP Guided Diffusion – stworzona przez OpenAI implementacja modelu dyfuzyjnego, wykorzystująca model CLIP do sterowania procesem dyfuzji. W tej implementacji, CLIP jest wykorzystywany do wyszukiwania zestawu obrazków pasujących do podanego opisu, które służą jako wskazówki w procesie dyfuzji. Można też podać do modelu dodatkowe informacje dotyczące pożądanego obrazu, takie jak rozdzielczość czy paleta barw. Na każdym kroku odszumiania, CLIP ocenia, jak bardzo obecny obraz pasuje do podanego opisu. Ocena jest wykorzystywana w następnym kroku odszumiania, co kieruje generację tak, aby była zgodna z tekstem.

Obraz wygenerowany przez implementację CLIP Guided Diffusion. Prompt: Krajobraz przypominający kartę tarota Śmierć autorstwa Gerardo Dottori

 

Stable Diffusion

Stable Diffusion – potrafi tworzyć wysokiej jakości obrazy na podstawie opisu tekstowego. Składa się z 3 części – VAE, U-Net i enkoder tekstu. Enkoder VAE przetwarza obraz do przestrzeni ukrytej, w której przeprowadzany jest proces dyfuzji, podczas którego U-Net odszumia obraz. Na koniec dekoder VAE rekonstruuje obraz z reprezentacji ukrytej. Krok odszumiania może być warunkowany na podstawie obrazu lub tekstu – przez co model może być używany do zadań text-to-image i image-to-image. Warunki są dodawane do sieci U-Net poprzez mechanizm atencji. Do przekształcania tekstu wejściowego do przestrzeni wektorowej wykorzystano model CLIP ViT-L/14.

Model jest dość lekki – U-Net zawiera 860 milionów parametrów, a enkoder tekstu 123 miliony, przez co można go uruchamiać na konsumenckich GPU. 

Stable Diffusion 3.0 – w wersji 3.0 wykorzystano multimodalny transformer dyfuzyjny zamiast sieci U-Net. W blokach transformera zakodowany tekst i obraz mieszają się ze sobą. Oprócz wpływu tekstu na obraz, zakodowany obraz też wpływa na wektor tekstu.

Architektura Stable Diffusion jest open-source. Elastyczność modelu pozwala na dostrojenie go do własnych potrzeb – tworzenie wyspecjalizowanych modeli do generacji specyficznych obrazów i scen.

Innymi modelami text-to-image są DALL-E czy Midjourney. OpenAI udostępniło też możliwość generacji wysokiej jakości obrazów wewnątrz ChatGPT, natomiast nie udostępniło architektury modelu.

Wizualizacja procesu odszumiania w Stable Diffusion

 

Podsumowanie

 

W ostatnich latach technologia sztucznej inteligencji znacząco rozwinęła się w zakresie generowania obrazów, umożliwiając tworzenie realistycznych i wysokiej jakości wizualizacji na podstawie opisów tekstowych. Technologie takie jak modele dyfuzyjne, GAN-y, VAE, oraz systemy text-to-image, takie jak DALL-E i Stable Diffusion, stanowią fundament współczesnych systemów generatywnych.

VAE i GAN to wczesne podejścia do generacji obrazów, które kładły fundamenty pod nowoczesne techniki. Modele dyfuzyjne, szczególnie te oparte na DDPM, stały się popularne dzięki zdolności do generowania szczegółowych obrazów, choć wymagają większego czasu obliczeniowego. Latent Diffusion (LDM) oferuje bardziej wydajne podejście, zmniejszając koszty obliczeniowe, zachowując wysoką jakość obrazów. Transformery, choć początkowo stosowane głównie w NLP, znalazły także zastosowanie w generacji obrazów, szczególnie w połączeniu z CLIP, co umożliwiło dokładne kierowanie procesem generacji na podstawie tekstu.

CLIP zrewolucjonizował generowanie obrazów przez precyzyjne dopasowanie tekstów do wizualnych reprezentacji, co pozwala na tworzenie bardziej trafnych obrazów na podstawie skomplikowanych i abstrakcyjnych promptów. Stable Diffusion stał się jednym z najpopularniejszych modeli do generowania obrazów na podstawie tekstu, oferując elastyczność i open-source’ową architekturę, co umożliwia dostosowanie go do różnych potrzeb użytkowników.

Nowe modele generują coraz dokładniejsze obrazy, które są coraz trudniejsze do odróżnienia od prawdziwych. Oprócz tego są w stanie lepiej odwzorowywać prompty użytkowników.

Całość technologii AI w zakresie generacji obrazów otwiera nowe możliwości w medycynie, designie, edukacji i wielu innych dziedzinach, zmieniając sposób tworzenia wizualnych treści, a także stanowi znaczący krok w rozwoju sztucznej inteligencji. Technologie poznane przy syntezie obrazów znajdują zastosowanie w innych dziedzinach, takich jak przetwarzanie języka naturalnego.

Obraz wygenerowany wewnątrz GPT-4o. Prompt: A man looking in a mirror in his apartment, with a window and the Eiffel Tower visible in the reflection.