Вес и с чем его едят (не путать с массой) в Stable Diffusion

101 кожаные ✌ сегодня у нас очень простой и очень важный пункт в генерации изображений это "ВЕС" так что, присаживайтесь по удобнее, заваривайте чайок и погнали.

Вес в промте имеет не мало важную часть т.к. от этого зависит напрямую качество и исходный результат. Сейчас покажу немного парктики и паралельно будет теория со всеми вытекающими. Для начала многие из вас уже видели в промтах такие вот скобочки ((( ))) {{{ }}} [[[ ]]] так же сочетания вот такого вида (masterpeace:1.2) . Но мало вообще кто объясняет что это такое, и многие пихают это чуть ли ни во весь промт с криками "УУУУУХХХХ КАК АХ*ЕННО СЕЙЧАС ПОЛУЧИТСЯ!!!!"

Вес и с чем его едят (не путать с массой) в Stable Diffusion

Нет, нет НЕТ! И ЕЩЕ РАЗ НЕТ! Так делать не надо.

Все эти скобочки имеют значения, но в SD используются в основном в эти ребята ((( ))) для обозначения веса на токен, или группу токенов (в прошлый раз разбирали что это такое)если написать просто промт, условно возьмём:

girl 25 years, Europe root, cyan hair, ponytail hair, colored hair, black eyes, detailed eyes, thin

То, когда нейросеть увидит этот промт, она будет читать изначально слева направо (как мы уже с вами знаем) и соотвественно идти по приоритету (здесь веса нет, так что приоритет будет порядковый). Для нейросети самое первое слово важнее и выдаст для токенов girl 25 years более приоритетный вес. Вроде бы здорово, так и планировалось. Но, есть шанс что во время генераций промта с БОЛЬШИМ КОЛЛИЧЕСТВОМ ТОКЕНОВ у нас будут пропадать важные детали которые мы бы не хотели терять, а некоторые вовсе игнорироваться, хотя казалось бы, они есть, они нам нужны, мы хотим их видеть. Как быть ? Правильно вес!

Вляние веса такое же как и в реальном мире, чем вес меньше, тем меньше гравитация на него воздействует и т.п. Следственно наша нейросеть это та же гравитация, больше вес, больше акцента на данный токен или группу токенов. Пример:
(girl) - 111%
((girl)) - 122%
(((girl))) - 133%
((((girl)))) - 144%

Т.е. если мы выделяем какую либо деталь в промте скобками, она становится сразу же приоритетной, на остальных раскидывается весь остальной фокус. Чем скобок больше, тем приоритет выше! Щас покажу наглядно.Берём заготовленный промт:

8K, HD, ultra realistic photo, best quality, masterpiece, realistic, detailed, SFW, from below, night, dimly lit, low key, rim lighting, girl 25 years, Europe root, cyan hair, ponytail hair, colored hair, black eyes, detailed eyes, thin, Perfect ass, attractive, flat chest,small breast,lying on bed, legs spread, touching her breasts,dressed a short white top,Gamer girl room, posters, actions figures of super heroes, neon, computer, black border, anime character, neko, high detail, high quality, intricate, details, beautiful, rtx

Получаем вот такой результат

Вес и с чем его едят (не путать с массой) в Stable Diffusion

Девушка есть, комната есть, мониторы есть, свет есть, всё на месте, всё прекрасно, но девушку что то перекрывает, да и в целом кадр странно выглядит. Что делаем ? Правильно распределяем веса. Для примера я увеличу значения на такой детали как ((computer)) заключим его в скобки и вот что получим

Вес и с чем его едят (не путать с массой) в Stable Diffusion

Ага, появилась клавиатура, мол она за ним сидит, т.к. я еще объяснял в прошлом посте что, всё что дальше от начала промта является дополняющим но не основным, а наш токен "computer" достаточно далеко. Ок, Давайте я еще прокачаю этот промт до приемлемого вида. Что бы не проходить по каждым скобкам и всё объяснять, я сразу покажу готовый вариант:

8K, HD, (ultra realistic photo), ((best quality)), ((masterpiece)), ((realistic)), (detailed), SFW, (from below), ((night, dimly lit, low key, rim lighting)),
girl 25 years, Europe root, (cyan hair), ponytail hair, colored hair, (black eyes), detailed eyes, thin,
Perfect ass, attractive, (flat chest),(small breast),
(lying on bed, legs spread, touching her breasts),
dressed a short white top,
(Gamer girl room, posters, actions figures of super heroes, neon, computer),
black border, anime character, neko, high detail, high quality, intricate, details, beautiful, (rtx)

Пройдёмся по порядку, я выделил что для меня важно что бы изображение было:
- отличного качества
- шедевр
- реалистично
- ночь, приглушенный свет, низкий ключ, освещение по краям

затем меньший вес в одинарных скобках и остальное чуть менее важно, но должно как бы присуствовать. Да не факт что будет присутствовать 100% в кадре то что мы указываем при больших запросах, потому как, нейросеть учитывает их, но решает сугубо на рандом и сугубо по своему желанию что оставить, а на что забить болт, и в таких ситуациях зачастую у вас будет меняться итоговое изображение при каждой генерации: в окружении, в деталях и т.д. за исключением того что имеет БОЛЬШОЙ ВЕС. И так давайте посмотрим на результат

Вес и с чем его едят (не путать с массой) в Stable Diffusion

Девушка стала детальнее, прорисованнее, свет объемнее. Ну вот уже лучше.

А что если я тебе скажу что можно еще лучше ?!

Вес и с чем его едят (не путать с массой) в Stable Diffusion

Управлять весом можно точечно, помнишь я писал про циферки ? так вот если мы укажем (girl:1) вес будет 100% а если (girl:0.5) то 50% догоняешь ? Мы можем корректировать точечно указывая 0.54 1.15 1.35 и т.д. НО! ВАЖНО! Если вы сделаете вес 2 то будет вот так!

Вес и с чем его едят (не путать с массой) в Stable Diffusion

приятного мало т.к. нейросеть берёт высший приоритет по данному токену и забивает на всё остальное, что приводит к искажению и артефактам. По этому, балансируйте, выставляйте точечно приоритеты выше чем за 1.5 не заходите (сугубо мой совет, но эксперементировать вам ни кто не запрещает). Вот итоговый промт с точечной корректировкой:

8K, HD, (ultra realistic photo), ((best quality)), ((masterpiece)), ((realistic)), (detailed), SFW (from below:1.1), ((night, dimly lit, low key, rim lighting)),girl 25 years, Europe root, (cyan hair), ponytail hair, colored hair, (black eyes:1.23), detailed eyes, thin, Perfect ass, attractive, (flat chest:1.13), (small breast:1.22), (lying on bed, legs spread, touching her breasts),dressed a short white top, (Gamer girl room, posters, actions figures of super heroes, neon, computer), black border, anime character, neko, high detail, high quality, intricate, details, beautiful, (rtx:1.1)

Вес и с чем его едят (не путать с массой) в Stable Diffusion

Здорово правда ? Что дальше ? Находим понравившися нам SEED спустя несколько генераций, шлифуем это всё через HiRes fix, делаем точечные коорректировки через InPaint и вуаля наше изображение готово.

Вес и с чем его едят (не путать с массой) в Stable Diffusion

Вот и всё друзья) Если вам понравилось, буду рад если поставите свой царский лайк ❤ и подпишитесь на меня, а так же на мой телеграм канал, там я пишу о своих неудачах, над чем работаю сейчас, что изучаю и там же решается судьба следующего гайда 😏

141141
38 комментариев

Лонги по настройки нейросети

26
Ответить

Такой бред, художники блять)))

3
Ответить

Как говорил классик:
"Ну давай разберем по частям, тобою написанное ))..."
Очень многое из того что ты пишешь в промте попросту игнорируется несмотря на приоритеты, по этому у людей может сложиться впечатление неправильное.
смотри вот эти теги
lying on bed, legs spread, touching her breastsactions figures of super heroesпросто игнорируются.
thin,Perfect ass, тут с ошибкой написано, без пробела от запятой, да и как бы она в такой позе могла показать ASS, нужно понимать разницу между бедрами и жопой, я понимаю конечно что для тебя это очень важная деталь которую ты везде прописываешь но она не всегда нужна.
8K, HD,Ну и эти пункты, ставить их на более высокий приоритет нежели описательный "girl 25 years, Europe root, "промт, уводит в сторону к более случайным результатов, если ты конечно не конкретно приписочки внизу арта хотел получить.
(rtx:1.1)Не сильно понимаю почему именно такой приоритет вообще зачем этот тег если ты ранее описал уже освещение в двойных скобках "((night, dimly lit, low key, rim lighting))", понизив приоритет тега "rtx", хотя может от этих букв ты пытался добиться чего-то другого, но вопрос тогда чего.
Короче непонятный у тебя промт, хорошо что ты описал новичкам основы приоритетов, но сам ты видимо плохо понимаешь то о чем рассказываешь.

12
Ответить

Ну давай 🙃 по порядку. Ты очень внимательный и всё прочитал за что отдельное тебе уважение 😎

Как я уже говорил цитирую

Да не факт что будет присутствовать 100% в кадре то что мы указываем при больших запросах, потому как, нейросеть учитывает их, но решает сугубо на рандом и сугубо по своему желанию что оставить, а на что забить болт, и в таких ситуациях зачастую у вас будет меняться итоговое изображение при каждой генерации: в окружении, в деталях и т.д. за исключением того что имеет БОЛЬШОЙ ВЕС

Про отсуствие пробела - это не ошибка, т.к. запятая считается разделителем, ты весь промт можешь без пробелов вообще зах*ячить между токенами. У меня вообще отдельная схема формирования запроса, что для многих покажется "о ужас" но я не продвигаю это в массы, как говорится "каждый дрочит как он хочет".

8K, HD, идут без веса, и акцент на них будет минимальный, мне чисто визуально комфортнее когда это вначале т.к. остальные токены идут с повышенным приоритетом. Что я в целом и описывал в данном посте.
Порядок без веса идёт слева на право, порядковый приоритет. Если же выставлять веса, схема меняется и нейросеть берёт в приоритет то что имеет больший вес, остальное уходит на задний план.

(rtx:1.1) - смешанные от него чувства на самом деле, это эксперементальный запрос, он добавляет некую глубину в кадре. Но! Мои промты являются примерными, не являются 100% КАНОНОМ как и многие примеры в огромной сети интернет. Следовать слепо чужому промту, себя не уважать.

По этому я и пишу данные посты, учусь на собственных ошибках, практикуюсь и стараюсь доносить то, о чём в рускоязычном сообществе говорят мало. Не на все вопросы можно найти ответы.

5
Ответить

Из полезного в этом гайде только про проценты от скобок. Сам промт средненький.
girl 25 years - фигня. Конкретный возраст прописывать практически нет смысла. Работают всяческие young, adult, mature, milf и их миксы.
(flat chest:1.13), (small breast:1.22) - спорная пара. Для большинства моделей это взаимоисключающие слова и никакими скобками и цифрами не исправить. Лучше вместо flat дописать skinny, если хоть какая-то грудь, но нужна. Но тут конечно от модели зависит.
((best quality)), ((masterpiece)), ((realistic)) - и другие на качество не требуют скобок от слова совсем. Есть смысл со скобками добавлять эффекты (lens flare:0.6), (bloom:0.7) и т.д.
lying on bed - нормально не работает без дописывания, как конкретно лежит. На спине, животе и т.п. Если конечно нет конкретной позы в голове, то можно использовать для рандома.
(rtx:1.1) - так себе штука. Лучше сразу писать пачкой типа такого (raytracing, render, 3d). И совсем не использовать, если цель реалистичность.И кстати необходимость промта realistic в связке с rtx тоже так себе.
Ну и вообще надо максимально избегать скобок, объединяя промты в кластеры. На старте твоего промта можно запросто сделать (ultra realistic photo, best quality, masterpiece, realistic, detailed) и будет тоже самое.

8
Ответить

В целом да, вообще есть мысль собрать текстовую инверсию что уже в себе будет иметь весь необходимый пак основных токенов для генерации, что бы миновать лишее. Моя модель плохо реагирует на milf и young, нужна еще коррективка в этом плане, где то я лишнего намешал 😁
А так, очень интересные выводы, спасибо за информацию 🙌

2
Ответить

чел тут и проценты не верно считаются) если расписывать позу используя posex то хватит и написанного. последнее лучше всё же в конце наверное ставить.

Ответить