Амбициозная задача

В преддверии крупнейшего форума природной фотографии Nature Photo Talks решили сделать необычное: взять фотографию со старой камеры и увеличить ее до размеров печати 180×120см и 400 dpi.

За исходный материал была взята фотографии Владимира Медведева, снятая на Canon EOS 5D Mark II в 2011 году (то есть 13 лет назад). Фотография имеет разрешение 20 мегапикселей. А мы захотели её увеличить до 535 мегапикселей (28346×18898px) — то есть в 26 раз!

Особенность увеличения

При таком большом увеличении нам неоткуда брать детали поэтому было принято решение разрешить нейросетям их придумывать и дорисовывать.

Рабочий инструмент

Для такого увеличения была выбрана нейросеть Stable Diffusion c моделью cyberrealistic (v41). Эта модель хорошо справляется с фотореалистичными изображениями.

Плюсы:

  • Работает локально
  • Имеет огромное количество ручных настроек
  • Бесплатно

Минусы:

  • Надо разобраться в установке
  • Имеет огромное количество ручных настроек (тоже надо разобраться)
  • Требовательна к железу


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

Как происходит увеличение?

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

Наша фотография автоматически режется на квадраты (обычно 512×512px) после чего нейросеть их перебирает и увеличивает, дорисовывая внутри детали из контекста и согласовывая с соседними квадратами. Это с одной стороны позволяет работать с большими изображениями, а с другой — привозит к забавным коллизиям, с которыми мы сегодня тоже столкнемся :)

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Настройки Stable Diffusion

Так как мы не генерируем новое изображение, а увеличиваем существующее, то нам нужен режим img2img, в котором мы выберем модель, которую предпочитаем и загрузим оригинал фотографии.

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Далее нам необходимо выставить параметры генерации:

  • Семплер: для реалистичных изображений я предпочитаю DPM++ 2M Karras
  • Количество шагов — это то, сколько проходов сделает нейросеть чтобы достичь нужного уровня детализации. Чем меньше — тем более «простым» (меньше деталей) будет результат. Для каждой модели есть свои предпочтительные значения шага, но обычно шаг в 20-30 пунктов подходит для практически всего.
  • Уровень шума — пожалуй самый важный параметр! Он определяет то, насколько новое изображение будет идентично старому. Чем меньше это значение тем ближе к оригиналу будет сгенерированное изображение.

Разбивка фотографии на блоки

Для этого нам понадобится дополнение ControlNet,  в котором:

  • Мы опять загружаем оригинал
  • Выбираем препроцессор tile_resample с моделью control_v11fle_sd15_tile.
  • и выбираем чекбокс ControlNet is more important

ControlNet выполняет несколько задач:

  1. Контролирует чтобы новая сгенерированная картинка соответствовала оригиналу
  2. Разбивает фотографию на блоки (препроцессор) и по очереди отдает блоки на генерацию
  3. Следит, чтобы картинка загруженная в ControlNet была важнее всего остального (каждый раз сверяется с оригиналом)

Увеличение фотографии

Остается последний шаг настройки — это указать Stable Diffusion как и с помощью чего увеличивать блоки. Для этого: 

  • В модуле Script выбираем Ultimate SD upscale
  • Выбираем как рассчитывать увеличение (проще в кратностях: в 2 раза, в 4 раза…)
  • И модель апскейлера. Я предпочитаю 4x-UltraSharp


Далее остается только эксперементировать!

Важно!

Лучший результат получится, если мы сделаем несколько увеличений с разными значениями шума и сложим их в фотошопе!

Уровень шума — самый важный параметр!

Если выше вы внимательно смотрели настройки, то заметили, что я специально сделал акцент на уровень шума. Именно он определяет сколько деталей будет придумано и дорисовано и насколько сильно новое изображение будет отличаться от оригинала.

Я рекомендую пользоваться значениями от 0.2 (максимально близко к оригиналу) до 0.5, но в рамках статьи в качестве иллюстрации покажу варианты до 0.7.

Уровень шума 0,2

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

При таком уровне шума мы видим, что изображение стало резче (слева оригинал, увеличенный в Фотошопе, а справа — в нейросети). Кроме резкости появилась детализация, которой не было в оригинале, но в целом это похоже на апскейлеры типа Topaz Photo Ai — без генерации новых текстур.

Уровень шума 0,3

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Тут мы видим еще больше деталей, но также на однородных поверхностях (вода/небо) из-за того, что фотография изначально имела шум нейросеть начинает добавлять вольности — пририсовывать то, чего не было

текстура воды покрылась трещинами

на небе появились пятна и «зачатки» облаков

Уровень шума 0,4

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Еще больше деталей, но начинают появляться артефакты. Кроме усилившихся искажений однородных поверхностей вроде неба и воды нейросеть может воспринять любое небольшое цветовое/световое пятно за самостоятельный объект.

Уровень шума 0,5

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Появляется все больше генеративных элементов, но и новых артефактов — тоже. Например — туристическое снаряжение :)

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

А лес на заднем плане — полностью преобразился и наполнился деталями

Уровень шума 0,6 и 0,7

Эти варианты изобилуют различными новыми сущностями и уже мало реалистичными рисовками. Предлагаю просто насладиться кропами лучших моментов :)

Собираем итоговую фотографию

Как вы могли заметить, при разном значении уровня шума у нас хорошо получаются разные части фотографии. Поэтому изначально я и говорил, что лучший результат — это сборка из разных вариантов апскейла. Поэтому для финального результата мы возьмем: 

  • лес с варианта с шумом 0.5
  • горы с шумом 0.3
  • камни с шумом 0.4
  • воду и небо с шумом 0.2
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Несколько сравнений оригинала и получившегося результата

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Результат отдельной фотографией

Даже при просмотре на сайте видно насколько более детализированная стала фотография

Заключение

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

И это, как ни странно, дает второй шанс нашим старым фотографиям, снятым на старые камеры и имеющие небольшое разрешение. Убедиться в этом вы можете как на примере этой статьи, так и посетив фото-форум Nature Photo Talks, где сможете в живую посмотреть на распечатанную большим форматом  фотографию!

Ну, а я оставил вам на ней пасхалку. Найдете?


P. S. А вот классический философский вопрос «Это все еще та же фотография или уже что-то новое» мы снова оставим открытым :)

Комментарии

Статьи

Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Тест аккумуляторов и зарядного устройства PALO

Еще один тест еще одних аккумуляторов с зарядным кейсом. Сегодня рассмотрим компанию PALO (Китай), которая вроде бы...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Увеличение фотографии с помощью нейросетей

Мы уже много раз обсуждали различные способы увеличения фотографий и в последние годы нейросети делают большой шаг...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Фонарь на дрон

Попробую обобщить свой опыт использования различных фонарей в качестве внешней подсветки для дрона.
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Программы для планирования пейзажных фотосъемок

Планирование фотосъемки — очень важный процесс. От качества проработки плана зависит в том числе и конечный...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Стекинг в ночной фотографии

Что это такое и зачем это надо?
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Хорошие китайские аккумуляторы для вашей камеры. Тест SmallRig

Искали альтернативу оригинальному аккумулятору для вашей камеры? Теперь она есть!
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Удаляем звезды на астро-пейзаже правильно

Как это не странно, но в ночном пейзаже есть место такому процессу как удаление звезд. И сегодня мы сравним несколько...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Нейросети для фотографа

Нейросети это зло для фотографа или всё-таки помощь? С этим вопросом мы пытались разобраться в лекции на крупнейшем...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Кольцевое штативное крепеление как замена L-pate

Я привык использовать в работе L-Plate. Пластина позволяла без лишних телодвижений, крепить камеру на штатив как...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Увеличение изображения с помощью ИИ

Бывают в жизни фотографа моменты, когда надо увеличить фотографию. И значительно. Сейчас в этом нам могут помочь...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Задача обработки — уменьшение динамического диапазона

Странно, не правда ли? Бывает мы используем HDR при съемке чтобы «расширить» динамический диапазон (это вроде...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Откуда появляются дырки в звездных треках?

Казалось бы, мы снимаем на длинных выдержках треки и промежуток между кадрами составляет (обычно) одну секунду, но,...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Нормальная интервальная съемка на Canon

Меня многие уверяли, что она Canon есть интервальная съемка прямо в камере, но я не могу назвать это решение...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Рабочее место фотографа

Все началось с обсуждения в чате какое же нужно сделать освещение на рабочем месте, чтобы комфортно и правильно...
Увеличение фотографии с помощью нейросетей. Часть 2. Фотограф Константин Шамин

Манифест пейзажного фотографа

В этом году я участвовал в замечательном фото-кэмпе фотографов дикой природы Nature Photo Camp. И так как это событие...