Здравствуйте, дорогие друзья!
Сегодня я хочу поделиться с вами интересным приемом, который поможет вам создать изображение с нужным вам объектом на генерируемом изображении без изменений, которые как правило от себя вносит нейросеть.
Недавно в Fooocus появилась функция загрузки маски, и сегодня мы воспользуемся ею и посмотрим, что получится.
Начнем с создания маски.
Для этого вам понадобится любой графический редактор, в моем случае это Adobe Photoshop. Так же на помощь могут прийти онлайн-сервисы, по типу этого или вот этого. С простыми фонами проблем не возникнет, но вот со сложными фонами там придется повозиться.
В идеале конечно лучше иметь хоть небольшой опыт работы с графическим редактором с более менее вменяемым функционалом.
Для меня проще всего удалить фон в Photoshop, тем более, как оказалось, я выбрал не самое простое изображение для онлайн-сервисов и чтобы получить приемлемый результат, мне придется потратить много времени.
После того как вырезали или скачали нужный вам обьект, необходимо в графическом редакторе изменить разрешение изображения на то, с которым корректно будет работать Fooocus. Я буду использовать разрешение 1152:896, у вас же оно может быть другим указанным в Fooocus.
Далее в графическом редакторе необходимо создать новый слой белого цвета и с помощью инструмента «Уровни» (Levels) затемнить объект до черного, переместив ползунок от белого к черному.
Чтобы получилось вот такое изображение. Это наша маска.
Сохраняете изображение с пометкой, что это файл маски.
Важный момент. Когда вы вырезали обьект нужно определить его размер и положение на холсте, т.е у вас должен быть четкий план, что будет на изображении и каково расположение и масштаб вашего объекта на этом изображении. Если вы просто растянете его на весь холст и так сохраните то и при генерации в большинстве случаев обьект будет перекрывать все пространство. Причем даже посредством запроса будет достаточно сложно это исправить.
И также сохраняете оригинальное изображение на белом фоне.
Перейдите в раздел «Advanced» - «Расширенные настройки» в Fooocus и выставьте необходимые параметры качества: «performance» и выбранное вами разрешение «aspect ratio», которое соответствует разрешению вашего изображения в графическом редакторе.
Перейдите в расширенные настройки (advanced) и включите режим разработчика (developer debug mode). Во вкладке Инпэйнт - Inpaint пролистайте вниз и ...
включите режим загрузки маски.
Как только вы включите этот режим, в окне «Inpaint or Outpaint» (Инпэйнт или Аутпэйнт) появятся два окна, в которые вам нужно загрузить два своих изображения, сохраненных ранее в графическом редакторе.
Далее переходите к окну ввода подсказки и указываете необходимый вам запрос. На результат может повлиять используемая вами модель, качество вашего запроса ну и использование каких либо стилей тоже может внести свой вклад, хороший или не очень, как повезет.
Девушка, представленная ниже, является результатом нескольких десятков генераций, и это наиболее приемлемый вариант из всех, которые были созданы. Она имеет руки и пальцы, которые более или менее соответствуют реальности. Те, кто уже работал с нейросетями, знают, насколько сложно получить реалистичный результат.
Здесь собственно все просто, вам остается только вводить разные запросы и ждать подходящего изображения.
Теперь давайте посмотрим, что мы можем сделать с первым сгенерированным изображением, где девушка держит нашу бутылку. Мы собираемся поработать с этим изображением, и маска нашей бутылки нам больше не понадобится.
Чтобы отключить режим загрузки маски, уберем галочку "Включить загрузку маски" - "Enable Mask Upload", и перенесем изображение с девушкой в окно "Инпэйнт" - "Inpaint".
Теперь закрасим те участки, которые мы хотим изменить. Мы хотим, чтобы на картинке была изображена девушка, стоящая посреди леса в окружении птиц и зеленых деревьев. Поэтому в запросе укажем:
И получаем почти то, что просили.
Конечно, это самый простой вариант, и если потратить больше времени на запрос, то можно получить очень красивое изображение. Однако, я не ставил целью создание изображения, которое бы меня полностью удовлетворило по качеству, главное было объяснить вам принцип работы этого метода. Надеюсь, что я достиг своей цели.
А дальше, как говорится, Inpaint вам в помощь.
Желаю вам всего самого наилучшего и до новых встреч!
ЕНу и конечно же, если вам понравилась эта статья, буду рад вашим подпискам, комментариям и лайкам. Недавно я запустил Discord-канал и постараюсь поддерживать его насколько возможно, там вы сможете не только следить за новостями, но и общаться, делиться опытом и приобретать новые знания о нейросетях. Чтобы всегда быть в курсе моих новых материалов, подписывайтесь на мой Boosty, Telegram-канал и страницу "ВКонтакте". Пока что нас немного, но я надеюсь, что с течением времени сообщество станет больше. Это станет отличной мотивацией для меня активно работать и над другими социальными сетями.