Я не ИТ-специалист, хотя работаю с компьютером каждый день. Про нейросети я, до недавнего времени, знал только общие принципы их работы, и то, что они разгадывают капчи, чтобы рассылать спам, вычисляют автомобильные номера на фотографиях, чтобы рассылать штрафы и что-то такого же уровня полезности.
Тем не менее, удовлетворяя своё любопытство, я какое-то время назад наткнулся на сервис, который по одному изображению, с помощью второго (фильтра) рисует третье. В голове моей возникло множество достаточно впрочем однотипных идей, как эту штуку можно использовать. Картинки, которыми ресурс пополняется в режиме реального времени, внушали оптимизм.
Когда я поделился радостью открытия со знакомой художницей, она помрачнела и заметила, что для многих художников такая стилизация - хлеб и масло на нём, так что электронный болван опять оставит людей без работы. На деле всё оказалось не так печально, о чём позже.
О личном опыте освоения этого инструмента я и расскажу. С одной стороны, я терзал только один ресурс, а их может быть больше. С другой - я думаю, общие принципы, которые я для себя вывел, могут быть применимы и для других подобных сервисов. Не исключено, что есть какие-то подробнейшие и фундаментальнейшие руководства, о которых я не знаю. Как видите, меня это не остановило. Ссылку на сайт тоже давать не буду, потому что мне никто за рекламу не платил. Можете погуглить по слову с вотермарки на картинках.
В теории всё просто: загружаешь обрабатываемую картинку, выбираешь изображение-фильтр (в платном режиме можно загрузить свой), любуешься результатом. На практике есть масса нюансов. Прежде, чем закидывать на счёт на сайте свои кровные, я общался с автором по скайпу, допытываясь, что можно, а что - нельзя. Его ответы были полезными.
Для получения неплохого результата лучше выбирать для фильтра изображение с таким же фоном. Для белого - белое, для чёрного - чёрное.
Хороший результат даёт стилизация однообразными или фрактальными кусочками чего-то: мозаикой, штрихами, камушками, искрами и т.п. Нейросеть вычисляет повторяющиеся паттерны и воспроизводит их на своей интерпретации исходной картины, сообразуясь с паттернами, которые она наблюдает в ней.
Это и сильная и слабая её сторона. Естественно, она понятия не имеет о рисовании. Вся композиция берётся из того, что загружено, а обучающийся код не в силах отличить важное от второстепенного, а передний план - от заднего.
Если речь идёт о живописной стилизации, то это и не требуется. Нейросеть уверенно воспроизводит мазки, причём не заимствует их из фильтра, а рисует свои, такие же. Это почти самое лучшее, что она может. Я не знаю, как там обстоят дела с обратной связью. Возможно, нейросети сообщают, какие стилизации были наиболее удачными с точки зрения людей, и она подстраивается под это.
Основное свойство обработки нейросетю - её малая предсказуемость. Одно и то же изображение дважды обработанное одним и тем же фильтром даст немного разный результат. Это тоже фундаментальное свойство как минимум данного сервиса. Это жестокая магия жизни: на одно замечательное изображение приходится десяток неплохих и тысяча никаких. Иллюстрации в статье - из сборника лучшего за месяц, но скорее всего, вы будете раз за разом получать шлак, пытаясь подобраться к нужному вам результату.
Неплохой результат даёт использование крупных похожих объектов. Например, портрет на однородном фоне, обработанный другим портретом. С пейзажами всё менее однозначно. Велика вероятность, что нейросеть покрасит небо как море, поскольку не обнаружит у них заметной разницы по яркости и найдёт похожие фрактальные паттерны. Выглядит это сюрреалистично.
Неплохо использовать объёмный фильтр на объёмных изображениях. Часто можно, с ущербом для глубины, использовать плоский фильтр на объёмных изображениях. И лучше вовсе не использовать объёмный фильтр на плоских изображениях. Скорее всего, получится фигня. Впрочем, никто не мешает вам лично поэкспериментировать.
Если вы используете свои фильтры, важно, чтобы изображение-фильтр было как минимум не меньше обрабатываемого.
Есть большая вероятность сделать из одной хорошей картинки другую неплохую. Иногда - на грани гениальности, но, в общем, как повезёт.
А вот использование плохой фотографии в связке с хорошим фильтром, как правило, делает её интереснее. В том числе, можно бесстрашно дорисовывать неестественные с точки исходного изображения детали. Скорее всего, пройдя через обработку элемент сильно изменится и будет выглядеть естественно на общем фоне.
Нейросеть не может понять, что вы хотите. Особенно, если вы сами этого не знаете. Тем не менее, нестандартное мышление иногда поощряется, а смелые попытки - окупаются.
Сервис устроен так, что вы можете совершенно бесплатно обработать свою (или ловко спёртую чужую) фотографию одним из заданных фильтров. Установленных фильтров много, они разные, и чтобы побаловаться многим из нас этого вполне хватит. Результат публикуется в ленте, чем радует вас и окружающих.
Но иногда нужно что-то другое, или изображение покрупнее. Для этих целей есть платный режим. В нём можно загружать свои фильтры, скрывать результат от нескромных глаз и рассчитывать итоговую картинку в большем разрешении. Я сразу заинтересовался перспективами коммерческого использования, и тут обнаружились проблемы. Для печати часто нужны изображения размерностей 3000 или 4000 пикселей по каждой стороне, а максимальный размер, который выдаёт сервис - 1200 на 1200 (и это за деньги). Дело в том, что работа нейросети - крайне ресурсоёмкий процесс, и твои картинки считают не в режиме реального времени мягко говоря. Можно поседеть, пока ждёшь, когда тебе посчитают очередной вариант. И чем больше размер - тем сильнее задумывается сервер с нейросетью, даже с учётом того, что платные запросы считаются в приоритетном порядке. Ещё нейросеть предварительно переваривает ваш кастомный фильтр, который отличается от уже переваренных ею. И это тоже её грузит.
Надеюсь, с развитием техники повысить разрешение в десять раз по каждой стороне не будет проблемой.
Хорошая новость в том, что услуга всё-таки не такая и дорогая. Посчитать черновой вариант за бакс, а чистовой за три - вполне посильно, если вам это нужно не совсем для забавы. Тут нет примеров того, для чего я использовал сервис (они будут опубликованы в другое время и в другом месте). Скажу лишь, что в одной работе я использовал получившееся после десятка попыток изображение не как результат, а как цветовой фильтр на исходную картинку. Это действительно самый быстрый способ перекрасить что-то, если вам нужна вся палитра, а не один какой-то цвет.
Было весело разбираться в нюансах и запускать могучий самообучающийся рандомайзер, и грустно - платить за это. В общем, нейросетевая покраска вряд ли лишит работы многих художников. (Фотография сделала это раньше, ха-ха!) Тем не менее, это перспективная технология, интересный инструмент и крайне доступная забава. Если вам нужна крезанутая аватарка - вы теперь знаете, что делать.
Я писал эту статью, пока у меня не кончились заготовленные картинки. Я мог бы достать ещё картинок, но, пожалуй, хватит. Если вы со мной решительно согласны, категорически несогласны, хотите рассказать что-то новое о нейросетях, что я, по своей ограниченности, упустил - добро пожаловать в комментарии.
Николай Чесноков