ERSGAN: Бесплатный инструмент для увеличения разрешения (upscale) фотографий и иллюстраций

В этой статье расскажу как можно увеличить разрешение изображения, сгенерированного с помощью нейронной сети, чтобы его можно было загружать на фотостоки. Напишу, как можно для этого использовать бесплатный инструмент ERSGAN, который по качеству обгоняет Photoshop.

В последнее время многие фотостокеры начали экспериментировать с генерацией изображений с помощью нейронных сетей (не можешь бороться, нужно возглавить!). На мой взгляд это правильно, нужно как минимум понимать как с ними работать и на что они способны, а лучше всего это сделать через собственный опыт. Многие даже начали загружать полученные изображения на фотостоки. Shutterstock решил не разрешать авторам загружать AI изображения, а вот его основной конкурент Adobe Stock дал такую возможность, при условии правильной атрибуции таких работ.

Судя по тому, что в разделе  Recent Top Sellers на Adobe Stock половина топовых портфелей основаны на AI generated изображениях, продаются они неплохо. К сожалению, или к счастью, нейронные сети пока не умеют генерировать векторные иллюстрации, поэтому авторы работают только с растром. Я в рамках экспериментов загрузил пока 10 работ и получил 3 продажи за 2 недели. Посмотрим, что будет дальше.

Инструменты для увеличения разрешения изображений

Самый популярный AI сервис для создания изображений — MidJourney, но файлы, которые он генерирует имеют максимальное разрешение около 1.5МП, которое не подходит для продаж на фотостоках. Поэтому нужно использовать специальный инструмент для увеличения разрешения хотя бы в два раза без потери качества (upscale). Есть несколько таких инструментов:

  • Photoshop
    • плюсы: бесплатный, встроен в Фотошоп (для кого-то удобно)
    • минусы: не очень хорошее качество
  • BigJpg
    • плюсы: бесплатный (до 20 изображений в месяц), онлайн, приемлемое качество
    • минусы: в бесплатной версии мало изображений, медленный
  • Topaz Gigapixel
    • плюсы: очень популярный инструмент, высокое качество
    • минусы: платный (99$)
  • ESRGAN
    • плюсы: бесплатный, высокое качество, нет ограничений
    • минусы: сложнее в работе

Я расскажу подробнее про ESRGAN, потому что он бесплатный и делает качественный upscale с помощью алгоритмов AI.

Как использовать ESRGAN

Изначально AI алгоритм для увеличения изображений без потери качества был описан в статье Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data, потом авторы его реализовали в коде и выложили на Google Colab (это что-то вроде Google Doc но для программ на языке Python) , его можно найти по ссылке: https://colab.research.google.com/drive/1k2Zod6kSHEvraybHl50Lys0LerhyTMCo?usp=sharing

Его можно использовать прямо в аккаунте создателей, но я бы рекомендовал скопировать его к себе. С помощью кнопки «Copy to Drive» можно перенести код в свой аккаунт Google Colab (для этого вам понадобиться аккаунт в сервисах Google и не обязательно разбираться в программировании).

Как использовать ESRGAN

Теперь можно приступить к работе.

Нам нужно убедиться, что Colab использует GPU. Обычно Google по умолчанию выделяет GPU для вашего ноутбука Colab, но все же лучше проверить это заранее. Для этого в меню Colab нажмите Runtime > Change runtime type. Появится небольшое всплывающее окно. В разделе Hardware accelerator есть выпадающий список. Убедитесь, что выбран GPU, и нажмите Сохранить.

Теперь нам нужно запустить все ячейки кода. Для этого просто зайдите в меню Runtime > Run all. Это заставит все ячейки кода запускаться одна за другой. Может появиться предупреждение «Notebook requires high RAM», просто нажмите Ок.

В первой ячейке произойдет установка необходимых пакетов. Когда все пакеты будут установлены, запуститься вторая ячейка, где будет предложено загрузить изображения для апскейла.

Можно выбрать несколько изображений одновременно. Ждем пока они все загрузятся. Потом запустится 3-я ячейка где и происходит вся магия. Ждем пока процесс закончится. В четвертой ячейке происходит визуализация результата, а в последней ячейке скачивается архив с результатами.

Все ячейки можно запускать каждую отдельно, например, если вы хотите повторно загрузить новые файлы, то первую ячейку запускать не обязательно, визуализацию тоже можно пропустить.

Отдельно ячейки можно запускать кнопкой play слева от каждой ячейки.

ESRGAN

Настройки и ошибки

В бесплатной версии Google Colab часто не хватает памяти и при выполнении 3-ей ячейки может возникнуть ошибка:

Error CUDA out of memory. Tried to allocate 8.00 GiB (GPU 0; 14.75 GiB total capacity; 11.16 GiB already allocated; 1.87 GiB free; 11.85 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF If you encounter CUDA out of memory, try to set —tile with a smaller number.

Для ее исправления в строке

!python inference_realesrgan.py -n RealESRGAN_x4plus -i upload —outscale 3.5 —face_enhance
добавьте в конце —tile 800, чтобы получилось:
!python inference_realesrgan.py -n RealESRGAN_x4plus -i upload —outscale 3.5 —face_enhance —tile 800
тогда все должно заработать.
Если появилась ошибка Error «slow_conv2d_cpu» not implemented for ‘Half’, то просто добавьте —fp32 после оператора upload, а затем запустите все ячейки снова.
Насколько увеличивать разрешение можно поменять с помощью опции —outscale , сейчас стоит увеличение разрешения в 3.5 раза, можно эту цифру заменить на другую.
Если возникли проблемы со скачиванием архива с готовым результатом, вы можете получить доступ к увеличенному изображению в браузере файлов Google Colab, слева:
ESRGAN

Заключение

В этом руководстве мы узнали, как использовать ESRGAN через Google Colab для бесплатного масштабирования одного или нескольких изображений. Если у вас возникнут какие-либо проблемы, оставьте комментарий, и я попробую ответить вам как можно скорее.
Не забудьте подписаться на наш Telegram канал с актуальными новостями о фотостоках и интересной информацией. Коротко и полезно.

Последнее изменение: 10 марта 2023 в 18:24.