Нейросеть GFPGAN создана на основе уже упомянутого в отдельной теме алгоритма Real-ESRGAN, но максимальное внимание уделяет лицам, а не изображению в целом. На июль 2023 года у нейросети уже 7 скомпилированных релизов, но давайте ради интереса позапускаем модель на питоне.
Нам понадобится помимо самого проекта GFPGAN скачать претренированные модели к нему, где и чего упомянуто и на главной странице проекта на Гитхабе, и в ридми в папке программы C:\GFPGAN-master\experiments\pretrained_models - в нее-то мы модели и положим. Я пробовал версию 1.0 и версию 1.4 основной модели, результаты разные, ниже сравните визуально. У меня после скачивания всех необходимых моделей содержимое папки pretrained_models выглядело так:
arcface_resnet18.pth
FFHQ_eye_mouth_landmarks_512.pth
GFPGANCleanv1-NoCE-C2.pth
GFPGANv1.4.pth
GFPGANv1.pth
README.md
StyleGAN2_512_Cmul1_FFHQ_B12G4_scratch_800k.pth
Я советую для беспроблемного запуска сложных приложений на питоне установить себе какую-нибудь реализацию conda, собирающего вместе все библиотеки. Я пользуюсь Anaconda Prompt (anaconda3) и горя не знаю. Скачайте Анаконду один раз, установите, и можете смело браться за любой проект на питоне.
По пути C:\GFPGAN-master\inputs\whole_imgs сложим изображения, которые мы хотим восстановить.
Запустим Anaconda Prompt и выполним последовательно одну за одной ряд команд:
cd C:\GFPGAN-master
pip install basicsr
pip install facexlib
python setup.py develop
pip install realesrgan
Теперь нейросеть готова к работе. Запускаем ее, например так:
python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.4 -s 4
Я пробовал с ключом -v 1.4 и без него версию 1.0.
Немного ждем и получаем результат обработки в каталоге по пути C:\GFPGAN-master\results\restored_imgs
Вот что у меня было в исходнике, и что получилось. Здесь по ссылке оригинальное изображение для экспериментов. Я уменьшил его до 25%, чтобы потерять детали, и восстановил нейросетью детали при 4-кратном увеличении в исходный размер. Вот как это выглядит в GFPGAN, хорошая работа в версии модели 1.4 на нижней картинке!
Важно, что проект позволяет и самому тренировать модель для достижения эксклюзивных результатов. Это потребует времени, но возможно результат будет стоить того. Если у меня будет возможность и необходимость потренировать модель и оценить результат - я им поделюсь.