Всех приветствую! При работе с нейросетью Stable Diffusion у новичков и даже более опытных пользователей могут возникать разные вопросы. Например, часто люди сталкиваются с задачей: как создать уникальное лицо персонажа и генерировать его в разных ситуациях или позах, но при этом чтобы это лицо, образ и детали оставались одинаковыми.
Сегодня разберемся с тем, как это делать.
Хоть нейросети и генерируют изображения из цифрового хаоса (шума), тем не менее логика их действий подчиняется определенным правилам. И если пользователь будет следовать им, он сможет создавать стабильные образы.
Есть несколько способов сохранить лицо или образ персонажа:
- Можно использовать смешивание образов, чтобы получить собственный так сказать «рецепт».
- Можно применить функцию DeepFace, которая позволяет устанавливать любые лица на изображения. Более подробно об этом я написал в отдельной публикации.
- Можно использовать текстовые инверсии (или embeddings). Это некие математические ключи, которые помогают объяснить нейросети, что нужно нарисовать. На эту тему у меня также есть обучающая статья.
- Еще один вариант – seed (семя). Он применяется не для того чтобы сохранить образ или лицо, а для того чтобы сохранить конкретный отпечаток картинки и объектов, изображенных на ней. Поэтому под нашу сегодняшнюю тему этот способ не подпадает.
Сегодня мы разберем смешивание образов в целях получения собственного «рецепта», поскольку именно этот вариант является наиболее легким и стабильным.
Все что нужно делать, это использовать несколько образов и/или описаний известных людей вместе с весовыми коэффициентами в одном промпте.
Для всех наших экспериментов как обычно понадобится уникальная система YES Ai Bot, которая имеет доступ к нейросети Stable Diffusion в Телеграм.
Итак, начнем. Возьмем такой пример промпта:
Читайте также:
(дейнерис:0.7), (ален де лон:0.8), (марго робби:0.6)
Как видим, в текстовом описании присутствует актер мужского пола, что, очевидно, должно было не лучшим образом сказаться на внешности и привлекательности нашего персонажа.
Однако, получившееся изображение доказывает, что дело далеко не в этом. Самое важное здесь то, что подобные промпты дают достаточно стабильные одинаковые лица на разных генерациях.
К этим же текстовым описаниям можно добавлять и другие элементы – окружение, стили, дополнительные условия – точно так же как и при составлении обычных промптов. Например:
(дейнерис:0.7), (ален де лон:0.8), (марго робби:0.6), стоит на фоне лазурного дождя
А вот еще пример:
(дейнерис:0.7), (ален де лон:0.8), (марго робби:0.6), верхом на лошади, скачет по поверхности луны
И как вы можете уже догадаться, основной недостаток этого способа в том, что перечисление разных персонажей может привести к тому, что на конечном изображении получится не один человек, а несколько.
Как можно это исправить, т.е. что поможет убрать клонов в генерациях:
- Первый метод – выбирать для генерации квадратные картинки (например, с разрешением 840×840, 1024×1024 и т.д.).
- Второй метод – можно указать в начале промпта «1woman» или «1man». Тем самым мы даем нейросети понять, что нам на изображении нужен только один человек.
- И третий метод (он пригодится, если не сработали первые два) – это инструмент INPAINT. С его помощью можно заменить нужные лица на любые другие – например, на какие-то совершенно случайные, либо выбранные из коллекции DeepFace. Подробно о том, как редактировать изображения с помощью функции INPAINT в Stable Diffusion, я рассказал в отдельной публикации.
Также напоминаю, что кроме имен актеров и других известных личностей можно прописывать в промптах прозвища, либо какие-то другие обозначения, которые дадут нейросети понять, какой образ на картинке нам нужен.
На сегодня это все. Я надеюсь, мне удалось доступно объяснить эту тему. Если у вас остались вопросы, пишите их в комментариях. И обязательно подписывайтесь на обновления блога.
До скорого!