Widziałeś w jaki sposób działa i chcesz wiedzieć jak uruchomić DeepFakes dla swoich filmów? Dobrze trafiłeś, w tym tutorialu pokażę jak to zrobić krok po kroku!
DeepFakes – Czego potrzebuję?
Komputera! A najlepiej komputera z kartą graficzną Nvidia’i! A jeszcze lepiej gdy ta karta jest w miarę nowa. Dodatkowo jeśli używasz Linuxa (np. Ubuntu) będzie Ci znacznie prościej. Na Windowsie też się powinno udać, ale nie o tym tutaj. Jeżeli bardzo zależy Ci na Windowsie – daj znać w komentarzu.
Cierpliwości! To się przyda. Gdy uruchomimy DeepFakes na w miarę najnowszych GeForce’ach to trwa to jakieś 20-30 razy dłużej niż przetwarzany film.
Moja rekomendacja:
- Ubuntu 16.04 / 18.04
- Nvidia Geforce 1080
- CUDA 9.0 (dokładnie)
- CUDNN 7.0.4 dla CUDA 9.0 (te numery są bardzo ważne)
Krok 1: Pobierz kod DeepFakes z Githuba
Jeśli nie masz Gita to instalujemy, a następnie pobierzemy repozytorium i wejdziemy do katalogu faceswap:
sudo apt install git #Aby zainstalować gita sudo apt install build-essential cmake #dodatkowe zależności git clone https://github.com/deepfakes/faceswap.git cd faceswap
Krok 2: Przygotuj środowisko
Będę upychał jak najwięcej instrukcji w te bloki, by zmniejszyć ich ilość by w konsekwencji łatwiej się to kopiowało.
Gdy nie masz jeszcze zainstalowanego pythona – sugeruję python3 w Anacondzie. Oczywiście może być też natywnie (bez Anacondy czy Virtualenv), ale można się pogubić w wersjach bibliotek między innymi projektami. W przypadku natywnego uruchamiania wpisujemy python3 zamiast python, oraz sudo pip3 zamiast pip.
Teraz zainstalujemy tensorflow i pozostałem biblioteki niezbędne do uruchomienia projektu:
pip install tensorflow-gpu==1.8.0 #Ta wersja działa z CUDA 9.0 i CUDNN 7.0.4 pip install requirements.txt python setup.py
Od teraz powinno już się dać uruchomić skrypt faceswap.py oraz gui:
python faceswap.py -h #Tego nie musisz uruchamiać python faceswap.py gui
Krok 3: Dane i model
Oprogramowanie mamy już przygotowane – to jest dobra wiadomość! Natomiast teraz potrzebujemy modelu, który by nam zamieniał twarz. Na szczęście możemy pobrać gotowy model wytrenowany na parze Trump, Cage.
Pobieranie dla fanów klikania tu. Potem rozpakowujemy do katalogu faceswap.
Pobieranie dla fanów konsoli:
wget https://anonfile.com/p7w3m0d5be/face-swap.zip unzip face-swap.zip
Właśnie pobraliśmy model wraz z danymi treningowymi.
Krok 4: Jaki film zmieniamy?
Film musimy pobrać na komputer. Jeżeli jest to film z YouTube, z pomocą może przyjść youtube-dl. Przyjmijmy że materiał udało nam się pobrać lub sami nagraliśmy film.
Potrzebujemy teraz wyeksportować klatka po klatce wszystkie klatki filmu. Utworzymy katalog sample i do niego zapiszemy pliki .jpg wykorzystując ffmpeg.
mkdir sample cd sample ffmpeg -i ścieżka/do/naszego/pliku.mp4 image%08d.jpg cd ..
Krok 5: Zamieniamy twarze!
Nadszedł czas na zamianę twarzy, nareszcie! A więc potrzebujemy uruchomić poniższe polecenie. Oczywiście, że możemy skorzystać z GUI, no ale po co skoro mamy konsolę. Utworzymy katalog sample_swapped do którego będziemy zapisywać przetworzone obrazy.
mkdir sample_swapped python faceswap.py convert -i sample/ -o sample_swapped/ --serializer json -D hog -l 0.6 -m models -t Original -c Masked -b 1 -M facehullandrect -g 1 -S -mh -sm -aca
To są magiczne parametry które możemy zmieniać po przeczytaniu instrukcji, lub wchodząc do GUI na ślepo w zakładce convert. GUI może nam również generować takie skrypty.
Krok 6: Zamieniamy .jpg w .mp4
Tego szukałem – czyli po co mi jpg kiedy ja chcę film? Tu z pomocą ponownie przychodzi ffmpeg. Wystarczy wejść w katalog i wskazać, że chcemy przekonwertować wszystkie pliki jpg tworząc jeden film mp4.
cd sample_swapped ffmpeg -pattern_type glob -i '*.jpg' -c:v libx264 ../sample_swapped.mp4
Et voilà!
No i w ten sposób w 6 prostych krokach zamieniliśmy twarze w filmie! To są pierwsze lepsze parametry. Jestem przekonany, że możesz uzyskać lepsze wyniki odpowiedni dobierając parametry.