В сообществе телеграмм я проверяю и публикую сборники токенов для Stable Diffusion. Уже сейчас доступны позы модели, положение камеры, прически и цвета волос… в разработке профессии, каталог одежды и много другого интересного!
Ну что дорогие друзья, сегодня у нас очень важная тема: Stable Diffusion prompts или написание запросов в нейросетку, которая рисует нам крутые картинки.
Составление идеального промта – это самая главная задача, которая стоит перед пользователем Stable Diffusion (да и вообще любой нейросети) и практически всегда ставит в неудобное положение новичков, когда необходимо дать задание нейросети.
Прежде чем вы начнете знакомство с данным руководством, убедитесь что:
У вас установлен Stable Diffusion от Automatic1111
Вы уже знаете интерфейс Stable Diffusion и понимаете какие вкладки за что отвечают
Здесь я расскажу как составляю текстовые запросы и постараюсь максимально подробно разложить алгоритм, с которым справится каждый и сможет без труда взаимодействовать с программой.
Анатомия идеального Prompts для Stable Diffusion
Чем лучше вы опишете свои хотелки, чем подробнее будет запрос – тем больше вероятность получить действительно хорошее изображение, которое вам понравится. Я накидал некий список токенов, которые стоит использовать при составлении промта.
Содержание идеальной текстовой подсказки:
Тема, Основа, Стиль, Художник, Веб-сайт, Разрешение, Уточнение деталей, Цвета, Освещение
Вовсе необязательно использовать их все – это просто подсказка, что можно включить в хороший запрос для генерации изображения в Stable Diffusion.
Люблю практику! Предлагаю пробежать по всем токенам отдельно начиная с самого начала и постепенно дополнять, пока не рассмотрим все. Я буду использовать модель Deliberate и семплер DPM++ 2M Karas с Sampling Steps: 30, изображения имеют размер 512*768 пикселей.
Тема
Это именно то, чего вы ожидаете увидеть на будущей картинке. Самая большая ошибка новичка – недостаточное описание.
Приведу избитый пример про магичку, которая творит волшебство как наша нейросеть. Что обычно делают? Правильно, пишут:
A sorceress
Такой запрос оставит слишком много простора для генерации иллюстрации и часто результат нас не устроит. Нужно задать уточняющие вопросы – как должна выглядеть волшебница? Во что она одета? Что она делает? Что на фоне?
У нейросети нет сознания, она не может угадывать наши мысли – мы должны создать максимально точный запрос, чтобы подсказать как рисовать.
Небольшой лайфхак. Stable Diffusion достаточно неплохо знакома со знаменитостями (видимо было достаточно много изображений известных людей), поэтому мы можем использовать это в своих целях, и контролировать процесс генерации изображения.
Кто у нас главная волшебница? Конечно же героиня Гарри Поттера – Эмма Уотсон (Интересный момент в том, что токен “Гермиона” не будет так влиять на конечную картинку). Она очень часто используется в примерах так как имеет огромное влияние на процесс создания картинки (я опять пользуюсь переводчиком DeepL).
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery
Мы практически всегда получим Эмму (условно в 9 из 10 запусков создания картинок), за это она популярна у пользователей Stable Diffusion. Ну а почему нет? – Молодая и красивая, отлично смотрится в любой сцене. Далеко не все могут похвастаться такой популярностью – просто проверьте сами как выглядят другие актрисы в данной нейросети.
Основа
Не знаю как правильно обозвать данный раздел – это вид нашего изображения… ну например иллюстрация, 3D рендер, картина маслом или профессиональное фото (а может вообще кадр из фильма) – данные параметры сильно влияют на вашу картинку в целом.
Недавно вышла игра Hogwarts Legacy, поэтому я добавлю токен Unreal Engine (первое что пришло в голову при мысли о компьютерной игрушке).
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery, Unreal Engine
Наши изображения стали похожи на скриншот из современной игры, но не будем останавливаться.
Стиль
Помните знаменитую фразу из Шурика “Никакого модернизма, никакого абстракционизма”? Вот это как раз про наши стили. На вскидку это импрессионизм, попа-арт и тому подобные.
Предлагаю разбавить наш Promt такими словами как Фэнтези, и хочу видеть Гермиону в полный рост, т.е. full body.
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery, Unreal Engine, fantasy, full body
Художник
Думаю многие слышали про различные судебные иски от многих художников – якобы нейросети копируют их стиль работы, вот это мы можем использовать в своих интересах. Ниже я разместил PDF файл со примерами работ всех авторов, стиль которых умеет воспроизводить Stable DIffusion, вам останется только записать в Prompt: by Artist ИМЯ ХУДОЖНИКА
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery, Unreal Engine, fantasy, full body, by Artist Stephan Martinière
Веб-сайт
Если вы из 90х, то наверняка в свое время увлекались Photoshop и просто не могли не познакомиться с такими ресурсами как Devian Art или Artstation – вы можете использовать их в текстовых подсказках про составлении промта в нейросети и изображение поменяется.
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery, Unreal Engine, fantasy, full body, by Artist Stephan Martinière, artstation
Изображение у нас изначально было похоже на все что выкладываются на этих веб сайтах, поэтому изменения не так очевидны – но в целом картинка стала более приятная и в духе сайта Artstation.
Разрешение
Размер изображения, разрешение, насколько четким оно будет – все это повышает качество картинки. Добавим к нашему запросу ключевые слова: высокая детализация, четкий фокус.
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery, Unreal Engine, fantasy, full body, by Artist Stephan Martinière, artstation, highly detailed, sharp focus
Прошлый результат и так был достаточно хорош, поэтому мало что изменилось… однако рекомендую всегда добавлять что-то из этой категории, очень часто это сильно влияет на итоговую картинку.
Уточнение деталей
Если в иллюстрации вам чего-то не хватает – бахнем уточнений. Добавим токены, которые особо не повлияют на картинку, но могут поменять ее атмосферу. Например добавим научной фантастики и скажем чтобы девушка была очень красивой.
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery, Unreal Engine, fantasy, full body, by Artist Stephan Martinière, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful
Цвета
Вы можете взять контроль над общим цветом изображения. Просто укажите в какой стилистике будет картинка.
К примеру я добавил немного золота в наш запрос и вы видите как поменялось изображение – все что связано с цветом, как и с художниками, оказывается сильное влияние на иллюстрацию.
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery, Unreal Engine, fantasy, full body, by Artist Stephan Martinière, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful, iridescent gold
Освещение
Любой фотограф знает, что освещение является ключевым фактором в процессе съемки. Добавив токены с описанием освещения можно изменить картину до неузнаваемости. Давайте добавим кинематографическое освещение и солнечные лучи.
Emma Watson as a powerful sorceress, fire magic, detailed clothing, mystery, Unreal Engine, fantasy, full body, by Artist Stephan Martinière, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful, iridescent gold, cinematic lighting, sun ray
Я думаю вы заметили, что в некоторых шагах изменения были минимальными. Не допиши мы их в Promt – картинка сильно не потеряла бы от этого. Поэтому для простых изображений достаточно использовать короткую подсказку, а добавлять и перестраивать уже в случае, когда не получается добиться нужного вам результата.
Если вы так и смогли найти свой идеальный Prompt для изображения – не стоит забывать про вкладку img2img с возможностью перерисовки отдельных частей картинки и исправления деталей, которые вам не нравятся. В картинке выше меня устраивало все, кроме лица, но его у меня получилось исправить – не забывайте об этом!
Negative prompt
Прописав негативные токены можно управлять генерируемым изображением. Вместо обычного промта, который мы составляем для создания – подумаем, что мы не хотим видеть на картинке. Вовсе необязательно это предметы или части иллюстрации – это могут быть и художники, и стили, и разные нежелательные атрибуты.
Использование негативного промта вовсе необязательно. Однако интересный момент – такие подсказки в большинстве случаев улучшают изображение и почти никогда ему не вредят.
Я рекомендую вам использовать Negative Promts от XpucT, он его использует во всех роликах, она общедоступна – не думаю что он обидится если я размещу здесь его содержимое:
На примере снизу, слева изображение с пустым Negative Prompts, справа с универсальным. Нетрудно понять, что это может максимально поменять результат генерации
Веса в Stable Diffusion
Вы можете менять вес ключевого слова (значимость) с помощью синтаксиса (токен:значимость). Значимость по умолчанию везде одинаковая, но если выставить значение выше 1, то его важность вырастет.
Возьмем запрос ниже, для примера я взял девушку на фоне автомобиля (сразу увеличил вес футболки – часто получались изображения “не для всех”) и сгенерировал изображение. Девушка получилась, а автомобиля в кадре не оказалось – посмотрите как менялась картинка с увеличением значимости параметра “Авто на фоне”
diffused lighting, good slavic girl, (tied shirt:1.3), tattered jacket, oil slick hair bob hair, full body, car background, Rim Light
Увеличение веса “car background” приводит к появлению на фото автомобиля, чем сильнее значимость токена – тем больше нейросеть попытается его использовать на изображении. Это работает и в обратную сторону – можно уменьшать значимость слова.
Если у вас Stable Diffusion от Automatic1111, то веса можно расставлять удобным способом в окне Prompt – просто выделите необходимый токен и нажмите сочетание клавиш CTRL + ВВЕРХ/ВНИЗ в зависимости от необходимости повысить или понизить важность ключа.
Синтаксис () и []
Наверняка подсматривая за работами других, то встречали различные скобки в промтах коллег.
Эквивалент способу выше – использовать () для увеличения веса токена или [] для уменьшения. Круглые умножают на 1,1, квадратные на 0,9… вы можете использовать несколько скобок для увеличения или уменьшения веса.
(токен): 1.1
((токен)): 1.21
(((токен))): 1.33
Я не использую этот способ – на мой взгляд он не совсем удобен и в итоге сбивает с толку. К тому же сейчас интерфейс нейросети позволяет регулировать веса более точно и визуально понятно.
Смешение
Нейросеть Stable Diffusion может миксовать слова. Первое что приходит на ум – это антропоморфные животные типа рыбокот, котопес, совожаб и прочие зверушки. Как это работает? – Мы отправляем картинку на генерацию (например кота) и когда уже готова композиция, говорим что теперь рисуй из того что получилось дракона… и нейросеть будет пытаться извернуться и сделать из кота дракона, сейчас покажу как это работает.
big monster [cat: dragon: 0.5]
Что это значит? Разберем эту конструкцию промта.
[КЛЮЧ1:КЛЮЧ2:ВЕС]
Вес – это значение от 0 до 1, которое показывает важность первого ключа. Если мы разбираем на примере котодракона, то выставив 0,5 – мы получим генерацию кота до середины и уже далее будет рисоваться дракон. Данным параметром мы можем отрегулировать преобладание одного над другим, иногда полезным бывает перевернуть конструкцию и рисовать изначально дракона, а уже потом делать из него кота.
Алыверды
Друзья, не просто мне дался гайд по идеальному промту в Stable Diffusion. Моя задача была показать самые азы, а потом вы уже вооружившись переводчиком погрузитесь в мир наименований одежды, причесок, освещения, положения камеры – все это влияет на генерацию изображений в нейросети (в идеале завести документ, куда будете записывать понравившиеся вам варианты).
Что бы хотели видеть? Какие нюансы разобрать в следующих руководствах по Stable Diffusion?
Наконец-то что-то внятное и достаточно подробное по промптам в SD. Спасибо! 🙂
Четко, понятно, без бла-бла-бла…Благодарю автора!