DeepFake уже давно в фанаклубовской среде используется, вот теперь и вполне реально улучшать старые маленькие фоты кумиров! Пока правда результат, как бы это сказать, не совсем похоже… а точнее совсем не похоже, я только после написания статьи понял что PULSE специально генерирует случайные лица, и улучшить фото им нельзя!
Обязательно понадобиться
— Видеокарта Nvidia c CUDA
Простого способа использовать PULSE: Self-Supervised Photo Upsampling нет — есть какое-то невероятное нагромождение всего с чем-то и Анаконда… Есть чуть ли ни одна инструкция как всё настроить Как запустить PULSE (face-depixelizer) на Linux в Windows 10 (WSL)? Туториал частично очень мне помогла!
Устанавливаем CUDA и все что для него надо
Нужна видео карта Nvidia c CUDA смотрим что у меня есть
nvidia-smi
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce RTX 2070 Off | 00000000:0A:00.0 On | N/A | | 40% 37C P8 19W / 175W | 404MiB / 7979MiB | 16% Default | | | | N/A | +-------------------------------+----------------------+----------------------+
Стандартный драйвер 460.91.03
Он уже с CUDA 11.2
И карта GeForce RTX 2070 8Gb — средняя уже но лучше чем ничего, и куплена еще по ветхозаветным ценам… которых уже нет!
Есть еще вот такая команда
lspci | grep -i nvidia
0a:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2070] (rev a1) 0a:00.1 Audio device: NVIDIA Corporation TU106 High Definition Audio Controller (rev a1) 0a:00.2 USB controller: NVIDIA Corporation TU106 USB 3.1 Host Controller (rev a1) 0a:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU106 USB Type-C UCSI Controller (rev a1)
Слова CUDA нет, но видимо по модели чипа понятно что оно есть
По инструкции Nvidia https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions проверяем дальше есть ли у нас все нужное для использования CUDA
uname -m && cat /etc/*release
x86_64 DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS" NAME="Ubuntu" ...
Тут главное x86_64
gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Установлено уже
Дальше что-то про ядро, я не понял но видимо исходники чтоли нужны
sudo apt-get install linux-headers-$(uname -r)
у меня тоже уже установлено было
Дальше делаем как тут https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#ubuntu-installation
И Nvidia предлагает угадать какой ей нужен дистрибутив у меня…
sudo dpkg -i cuda-repo-
Пожалуй это не сложно, я только привык что такие вещи сами подтаскивающий при установке
Идем сюда https://developer.download.nvidia.com/compute/cuda/repos/
и мне нужен репозиторий
ubuntu2004 — потому что у меня 20.4
x86_64 — потому что у меня 64 битный убунту
cuda-11-2_11.2.2-1_amd64.deb — потому что CUDA в драйвере у меня версии 11.2
Далее по инструкции Nvidia у меня ничего не работало, делаю как на Habr подставляя везде свои версии
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
sudo apt update
Пробую
sudo apt install -y cuda-toolkit-11-2
Reading package lists... Done Building dependency tree Reading state information... Done You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies: cuda-11-2 : Depends: cuda-runtime-11-2 (>= 11.2.2) but it is not going to be installed Depends: cuda-demo-suite-11-2 (>= 11.2.152) but it is not going to be installed cuda-toolkit-11-2 : Depends: cuda-compiler-11-2 (>= 11.2.2) but it is not going to be installed Depends: cuda-libraries-11-2 (>= 11.2.2) but it is not going to be installed Depends: cuda-libraries-dev-11-2 (>= 11.2.2) but it is not going to be installed Depends: cuda-tools-11-2 (>= 11.2.2) but it is not going to be installed Depends: cuda-documentation-11-2 (>= 11.2.154) but it is not going to be installed Depends: cuda-nvml-dev-11-2 (>= 11.2.152) but it is not going to be installed Depends: cuda-samples-11-2 (>= 11.2.152) but it is not going to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
И опять мне говорят что кучу зависимостей устанавливать не будут, и вообще ничего не будет установлено… а у всех ставится!!!
Кидаем в консоль все советы из интернета! Вау вот это помогло
sudo apt-get -o Dpkg::Options::="--force-overwrite" install --fix-broken
Установка пошла
sudo apt install -y cuda-toolkit-11-2
Проверяем работоспособность CUDA
wget https://github.com/NVIDIA/cuda-samples/archive/master.zip
unzip master.zip
cd cuda-samples-master
make
Собирается с ошибкой
4 errors detected in the compilation of "graphMemoryNodes.cu". make[1]: *** [Makefile:354: graphMemoryNodes.o] Error 255 make[1]: Leaving directory '/home/alexandr/test/cuda/cuda-samples-master/Samples/graphMemoryNodes' make: *** [Makefile:45: Samples/graphMemoryNodes/Makefile.ph_build] Error 2
Проверку не проходит
./bin/x86_64/linux/release/deviceQuery
CUDA Device Query (Runtime API) version (CUDART static linking) cudaGetDeviceCount returned 804 -> forward compatibility was attempted on non supported HW Result = FAIL
Гугленье ничего не дает… так что давайте перезагрузимся… интересно…
Пропал Nvidia драйвер
nvidia-smi
Command 'nvidia-smi' not found, but can be installed with:
Сразу почуствовал на логинскрине что-то экран другой, возможно в этом причина провала теста CUDA!
Да, сейчас стандартный драйвер
lspci -k | grep -EA2 'VGA|3D'
Kernel driver in use: nouveau
Пытаюсь установить тот драйвер что был
sudo apt-get install nvidia-driver-460
Перезагрузился, драйвер вернулся
Ееееее теперь тест проходит (даже не мейкал его занова)
CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce RTX 2070" CUDA Driver Version / Runtime Version 11.2 / 11.2 CUDA Capability Major/Minor version number: 7.5 Total amount of global memory: 7979 MBytes (8366784512 bytes) (036) Multiprocessors, (064) CUDA Cores/MP: 2304 CUDA Cores GPU Max Clock rate: 1620 MHz (1.62 GHz) Memory Clock rate: 7001 Mhz Memory Bus Width: 256-bit L2 Cache Size: 4194304 bytes Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384) Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total shared memory per multiprocessor: 65536 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 1024 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 3 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Device supports Managed Memory: Yes Device supports Compute Preemption: Yes Supports Cooperative Kernel Launch: Yes Supports MultiDevice Co-op Kernel Launch: Yes Device PCI Domain ID / Bus ID / location ID: 0 / 10 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.2, CUDA Runtime Version = 11.2, NumDevs = 1 Result = PASS
CUDA установлен, теперь ставим какую-то Anaconda
А Nvidia её называет Conda https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#unique_471659779 и их способ установке совсем не работает
С сайта скачиваем дистрибутив https://www.anaconda.com/products/individual#linux
вот этот
Python 3.9
64-Bit (x86) Installer (581 MB)
Запускаем
bash Anaconda3-2021.11-Linux-x86_64.sh
На все соглашаемся, Anaconda кладется в домашнею директорию
/home/alexandr/anaconda3
Чтобы что-то сработало после установки надо открыть заркыть терминальное окно
Да, Anaconda консоль испаганила теперь в начале добавлется (base)
Устанавливаем PULSE
Иду в папку которую раньше делал, потому что опять надо будет качать (удлаем из него master.zip куды чтобы не мешался)
wget https://github.com/adamian98/pulse/archive/master.zip
unzip master.zip
идем в папку и бекапим файл настроек
cd pulse-master
cp pulse.yml pulse.yml.bak
Далее по Habr’у надо отредактировать файл, сделать свой. В первом пункте
Доводим куоск файла pulse.yml до вида — источники пакетов
channels: - pytorch - defaults - conda-forge - anaconda
Во втором комнада все понятно
sed '/==/b; s/=\([^=]*\)$//' pulse.yml > pulse1.yml
Теперь создаем окружение Conda
conda env create -f pulse1.yml
Что то много качает, ждем
Активируем
conda activate pulse
в консоле вместо (base) появляется (pulse)
Теперь надо скачать с Google Drive модель, для этого запускам просто
python run.py
И что-то скачивается, и саоздаются еще какие-то папки
Дальше говорится что надо положить чотку в папку realpics её нет в директории пульс создаем
mkdir realpics
Я хочу улучшить вот эту фотку Наталии Орейро, всю хотелось бы но тут дает только лицо
Фотку положил запускаю
python align_face.py
Опять чето скачивает с гугле драйв, сделала папку input туда положило лицо, сильно уменьшив
Еще раз запускаю
python run.py
и нифига
Loading Synthesis Network Optimizing BEST (100) | L2: 0.0021 | GEOCROSS: 2.5712 | TOTAL: 0.3417 | time: 6.2 | it/s: 16.20 | batchsize: 1 Could not find a face that downscales correctly within epsilon
Тут надо где-то чего то натсроить… автор то просто пищет «Enjoy!», а чего как не обьясняет! Все задается командаой
Пробую так
python run.py -eps 2e-3 -steps 1000
Система сразу напряглась, видюха завертелась и в папку runs по окнчанию положила результат
ААААААААААААААААААААААААААААААААААААААААААААААААААААААААА
Улучшить улучило, но кто ЭТО!!!
Все дело в настройках конечно, и вот их придется искать неделями (как найду буут писать тут) пока вот что попробую
Лицо вытащю изначально уже растянутым 1024 а не 32 как по умолчанию
python align_face.py -output_size 1024
И попробую сначаал 3000 шагов а потом 30000
python run.py -eps 2e-3 -steps 3000
Результат однозначно лучше на 30000 — правый глаз нарисовался, рот открылся, однако похожесть и есть и нет, но улучшился и на волосах какой-то дрейфующий глюк с чего это!
Погонял день и окончательно разочаровался в PULSE: Self-Supervised Photo Upsampling не для улечшения фото он! И даже в качестве случайных лиц он тоже не очень — в модели лицо одной тётенки и все остальные тётенки на неё сильно получаются похожи!
И глюк-пятно на всех, никак не избавиться от него
Добавить комментарий