Обработка фото с помощью нейросети
Стилизация изображений
Для работы с размытием фона мы будет работать одновременно со Stable Diffusion и с Adobe Photoshop. Представим, что в нашем распоряжении есть фотография с очень высокой ГРИП, а нам хочется добавить на неё размытия. Пусть зрители думают, что мы снимали на дорогой светосильный объектив с хорошим боке.
Нейросети, или искусственные нейронные сети, стали важным инструментом в обработке изображений. Они позволяют автоматизировать сложные задачи, такие как улучшение качества фото, удаление шумов, изменение стиля и многое другое. Нейросети обучаются на больших объемах данных, что позволяет им «понимать» и «узнавать» различные элементы изображений. В этой статье мы рассмотрим, как нейросети используются для обработки фото, приведем примеры их применения и обсудим популярные инструменты и платформы.
Этот метод применим не только к фотографиям. Часто его используют, чтобы сделать несколько вариантов картинки, сгенерированной в той же Stable Diffusion. Для этого сгенерированная картинка загружается во вкладку img2img, и генерируется несколько вариантов с теми же ключевыми словами, что и исходная.
Слева вверху — оригинальный бургер с фотостока. Справа от него наш красивый бургер с Denoising strength 0,3. Он стал более аккуратным, словно над ним поработал ретушёр, но при этом общая композиция очень похожа на оригинал. При Denoising strength 0,55 бургер стал менее фотореалистичным, начинка немного поменяла вид (как и задний план — вместо стены теперь какой-то размытый интерьер). Ну а при 0,88 тарелка посинела, ракурс изменился и из бургера исчезла одна из котлет и сыр. Зато появилась картошечка.
В нейросети Stable Diffusion можно не только генерировать картинки с нуля по текстовому запросу (txt2img), но и работать с уже существующими изображениями (img2img). Можно загрузить в Stable Diffusion фотографию и сгенерировать похожие картинки, можно заменить часть изображения, а можно нарисовать от руки грубый эскиз, по которому нейросеть создаст красивый рисунок.
Запускаем нейросеть. Stable Diffusion работает на локальном компьютере, а её интерфейс открывается во вкладке браузера. Во так он выглядит. Нам нужна вкладка img2img (1), в которой есть ещё одна одноименная вкладка (4). Есть поля для ввода описания Prompt (2) и Negative Prompt (3), и есть область для загрузки изображения (5). В неё мы и перетаскиваем наше фото бургера.
Теперь можно генерировать. Настройки вкладки Sketch выглядят точно так же, как и во вкладке img2img, с которой мы работали в первой главе нашей статьи. Ключевые слова довольно простые: «photo of man eating burger, bar, table, bokeh lights background».
TensorFlow — это одна из самых популярных библиотек для машинного обучения, разработанная Google. Она поддерживает создание и обучение нейросетей для различных задач, включая обработку изображений. TensorFlow предоставляет множество готовых моделей и инструментов для работы с изображениями. Вы можете использовать TensorFlow для создания собственных моделей или использовать предобученные модели для выполнения различных задач.
TensorFlow
Работать мы сегодня будем со сборкой Portable Stable Diffusion, в которой есть удобный интерфейс для обработки изображений, и с моделью Deliberate 2.0, которая на сегодня лучше всего подходит для создания фотореалистичных изображений разных предметов (есть модели, которые хороши в создании людей, но больше не умеют ничего). Вот здесь на Гитхабе можно скачать эту сборку, а вот ссылка на Deliberate 2.0. О том, как установить нейросеть и модели для неё, мы писали вот в этой статье.
И, разумеется, Inpaint можно использовать для доработки сгенерированных нейросетью картинок, если в них не всё идеально. Если Stable Diffusion нарисовала вам человека, у которого что-то не так с лицом, или есть лишние пальцы на руках, это тоже можно поправить в этой вкладке. Нарисуйте маску в нужной области, и попросите нейросеть сгенерировать голову с открытыми глазами или руку с пятью пальцами — есть шанс, что она вас послушается и исправит недостатки.
5. CFG Scale — это то, насколько точно Stable Diffusion следует нашему запросу. 1 — нейросеть совсем творчески подойдёт к запросу, может нарисовать что-то очень странное, 30 — максимально точное следование, выполнит запрос слово в слово. В большинстве случаев подойдёт значение 7-12.
2. Mask mode — говорит нейросети, что же означает наша маска. По сути, это аналог белой или чёрной маски в Photoshop. В режиме Inpaint masked нейросеть будет изменять только то, что под маской, оставляя остальное нетронутым (как черная маска, частично протёртая). Ну а если выбрать Inpaint not masked, всё будет наоборот — область под маской останется неизменной, а всё вокруг поменяется (белая маска, частично закрашенная).
В поле Prompt пишем просто «Burger on the plate» («Бургер на тарелке»). Stable Diffusion хорошо работает только с английским, так что тем, у кого с ним плохо, стоит вооружиться переводчиком. А тем, кто не уверен, что способен сформулировать промт самостоятельно, помогут библиотеки промтов — базы с набором проверенных запросов.
4. Batch count — количество одновременно генерируемых изображений. На мощной видеокарте уровня RTX 4090 можно генерировать по 8 (или даже 12-16) изображений за раз, это занимает пару минут. На слабой видеокарте с 4-6 Гб памяти лучше поставить от 2 до 4, чтобы не ждать слишком долго.