Пишем запросы к stable diffusion
Prompt (далее по тексту подсказка или запрос) — это способ взаимодействия между пользователем и stable diffusion (любой системой ИИ). В этом уроке мы научимся писать запросы к stable diffusion
Запросы к stable diffusion
Написание запросов кажется простым- набрал текст и есть результат. На самом деле не всё так просто. Те фразы, которые строим мы в общении друг с другом и те фразы, которые будут понятны ИИ могут совсем не совпадать, хотя ИИ что-то нарисует.
Создание запросов напоминают работу переводчика. Все токены, используемые в запросе, должны быть адаптированы к конкретной модели, т.е. они могут и не совпадать от модели к модели. На один запрос разные модели дадут различный результат. Как же составить запрос правильно? Один из общепринятых способов описан далее (вообще-то любой запрос правильный, если вас устроил результат). Установка stable diffusion forge описана в этом уроке.
Как составить запрос к stable diffusion
Основа создания изображений из запросов (вкладка txt2img), это положительный запрос (или просто запрос) и отрицательный запрос. Начальный урок создания изображений в stablt diffusion forge здесь
Положительная подсказка, содержит описание
- объекта
- среды
- стиля
- композиции
- цвет/свет
- остальное
Давайте пробежимся по этим пунктам и создадим свой запрос. Прежде чем составлять запрос, давайте подготовимся. Сначала скачаем ещё одну модель на основе sd 1.5. Имя модели AgainMixChildren’s Picture Book. Эту модель можно найти (и идеи для вдохновения) на https://www.shakker.ai/
Переходим по этому адресу и ищем модель AgainMixChildren’s Picture Book. Если настроить фильтр поиска (справа в верхней части) по ключевым словам sd 1.5, checkpoint и в верхнем горизонтальном меню выбрать anime, то вы быстрее найдете эту модель (на этом ресурсе не все модели можно скачать)
Смотрим, что умеет модель (теги находятся под названием): hand-drawn, kids’ Illustration, girl, boy, space & scene, style boost. Переводим- нарисованная от руки, детская иллюстрация, девочка, мальчик, пространство и сцена, улучшение стиля и всё это в стилистике аниме.
Затем необходимо скачать модель VAE. Что такое VAE. Для модели sd 1.5, где изображения имеют размерность 512 х 512 точек, просчет всех точек (более 250000 на одно изображение) может занять длительное время, поэтому сначала происходит преобразование в пространство меньшей размерности (latent space), там проводят вычисления, затем происходит обратное преобразование в пространство с большей размерностью. Кроме того, сам способ превращения текста в изображение (и обратно) требует определенных методов кодирования/декодирования. Всем этим занимается модель VAE- вариационный автоэнкодер.
В карточке модели указано, что должна использоваться модель vae-ft-mse-840000-ema-pruned (обязательно смотрите карточки моделей, там много важной информации для генерации изображения).
Модель VAE скачиваем с huggingface.co, где собрано, пожалуй, всё, что касается sd. https://huggingface.co/stabilityai/sd-vae-ft-mse-original/blob/main/vae-ft-mse-840000-ema-pruned.safetensors
Скачанный файл помещаем по такому пути C:\sd\webui\models\VAE. Теперь всё готово, можно создавать запрос. Запустите forge, приступаем
Пишем запрос для stable diffusion
Без идеи нет запроса. Давайте придумаем что-нибудь школьное. Мы сидим за партой, учительница стоит у доски и пишет мелом.
- Объект- девушка, учитель // 1girl, schoolteacher
- Среда- кабинет // the office of the school
- Стиль- от руки нарисованное изображение аниме // anime, hand-drawn
- Композиция- стоит у школьной доски, пишет мелом // stands at the board, writes with chalk on the board
- Освещение, цвет- мягкий свет, светлые стены, зелёная доска // soft light, light walls, green school board
- Остальное- улыбка, напротив наблюдателя, по пояс // smile, front view, upper_body
В итоге получился такой запрос
1girl, schoolteacher, the office of the school, anime, hand-drawn, stands at the board, writes with chalk on the board, soft light, light walls, green school board, smile, front view, upper_body
После нескольких удачных/неудачных генераций получилось такое изображение
Можно сгенерировать штук 50 изображений из которых может получится несколько удачных. Непонятные каракули на доске, мелкие артефакты на лице легко и быстро удаляются в редакторах растровой графики.
Добавляем отрицательный запрос к stable diffusion
Отрицательная подсказка позволяет нам управлять тем, что мы не хотим видеть на наших изображениях. В данном случае нам не нужна высокая детализация, реалистичность, 3d, кинематографичность. И, конечно, не нужны искажения, деформации, неправильная анатомия, лишние конечности.
high detail, realism, 3d, kinematographic, distortion, deformation, incorrect anatomy, extra limbs
Прежде чем нажать сгенерировать зафиксируйте seed- нажмите на зелёный треугольник из стрелочек рядом с кубиком. Таким образом будет генерироваться приблизительно то-же изображение с учетом отрицательного запроса.
Рядом найдите параметр extra и поставьте галочку. В открывшемся поле вы увидите параметр variation strength. В вольном переводе это сила вариации (изменений) при генерации. Чем дальше вправо сдвинете ползунок, тем больше будут отличаться генерируемые изображения
При 0 изменений не будет.
Вот так, например, могут выглядеть химичка, биологичка и географичка (тройняшки что-ли?)
Немного об углах съемки и объективе
Хорошо работают токены
углы съемки: front view, from_side, from_above, from_below, from_outside, from_back, from_behind (это не все)
объектив: mid_shot, full_shot, medium_shot, upper_body, panorama (это не все)
Через переводчик легко узнать, что означают данные токены. Осталось отправить изображение на увеличение через extras и получить изображение нужного размера.