Найти в Дзене
Любаша (Ваша Любаша)

Stable diffusion составление Promtов

Приветствую Статья для тех, кто уже имеет опыт работы с Stable diffusion через веб интерфейс. Здесь не будет описания о ползунках и общем описании интерфейса взаимодействия web UI AUTOMATIC1111, подразумевается что все возможные доступные туториалы вы уже смотрели, нет смысла повторяться. Возможности получить изображение по одному лишь описанию - звучит безгранично и всеобъемлюще. Когда вам нужно получить какую-нибудь +- красивую картинку подходящую по тематике по паре ключевых слов - это норм. А вот если вы пытаетесь дать более точное описание на что-то конкретное, а программа начинает генерить что-то совершенно другое - тут и начинаются проблемы. При том что одну и ту же вещь можно назвать разными словами и оно будет иметь разный смысл и по разному отображаться. При том что по одному изображению нельзя судить о том правильно подобран промт или нуждается в корректировке, рекомендую делать выводы по количеству подходящих изображений из серии из 10 изображений с рандомным сидом Дополнит

Приветствую

Статья для тех, кто уже имеет опыт работы с Stable diffusion через веб интерфейс. Здесь не будет описания о ползунках и общем описании интерфейса взаимодействия web UI AUTOMATIC1111, подразумевается что все возможные доступные туториалы вы уже смотрели, нет смысла повторяться.

Возможности получить изображение по одному лишь описанию - звучит безгранично и всеобъемлюще. Когда вам нужно получить какую-нибудь +- красивую картинку подходящую по тематике по паре ключевых слов - это норм. А вот если вы пытаетесь дать более точное описание на что-то конкретное, а программа начинает генерить что-то совершенно другое - тут и начинаются проблемы.

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

Дополнительные сложности создает языковой барьер. Если на русском вы еще можете дать описание изображению наиболее точно - то как это будет на английском - здесь у вас есть возможность подкачать навыки владения языком. При этом даже переводчики вам не всегда смогут помочь. Например плыть по воде - как перевести более правильно: swim, sail, flow? Оказывается плыть можно по разному, можно активно совершать это действие, а можно дрейвовать (пассивно). То есть языковой барьер будет вам мешать, но он же будет и оттачиваться

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

То есть каждое сказанное слово влияет на все другие части всего промта, разделение общей картины на два разных непохожих объекта - это сложная задача для Stable diffusion и является сильным его ограничением. Тут без компановки и дорисовывания через inpaint, sketches я пока не знаю как это побеждать. Если у вас получится изобразить одним промтом на столе яблоко похожее на яблоко и ананас похожий на ананас - дайте знать как у вас это получилось? (без использования склеивающих плагинов естественно)

Да, программа любит всё смешивать. Нужен кот и мышь - будет вам ком похожий на мышку и мышка похожая на кота. Нужна девочка с котом на руках - будет вам девочка, но с ушами от кота (либо уши будут прикрыты шапочкой).

Хотите заваленный горизонт? А вот и нет. Какой здравый человек захочет заваленный горизонт генерить? Но это не означает что заваленный горизонт программа не нарисует вам. Попробуйте запрос "playing" - в ряде случаев будет как раз тот самый заваленный горизонт, хотя вы об этом явно не просили. По сути задача специалиста по промтам как раз состоит в том чтобы подбирать нужные запросы на казалось бы не связанные вещи.

Заваленный горизонт, хотя об этом явно никто не просил
Prompt: extreme playing, outdoor
Заваленный горизонт, хотя об этом явно никто не просил Prompt: extreme playing, outdoor

Конечно много зависит от того на чем обучалась сетка и какие запросы фигурировали там. Отсюда в промпты попали некие ключевые теги 1girl, 1boy, 2girls обозначающие нужное количество девушек или пацанов в кадре (возможно еще какие-то есть, нужно подбирать)

Насколько я успел разобрать - все промпты условно можно разделить на несколько независимых явлений: Положение камеры, объект, действие (поза), облик, субъект, задний план, окружение

При чем описывать общий промп лучше всего именно в такой последовательности, хотя эту гипотезу еще предстоит проверить
Проверьте промпт на противоречие. Если вы намешиваете всё подряд - например пляж (beach), море (sea), небо (sky), под водой (underwater) - то и получите себе полный набор несочетающихся данных. Где кадр составлен с берега, но вместо неба - вода

Небо, пляж, море и всё это под водой. Небо - теперь вода
Prompt: view from below, beach, sea, sky, underwater
Небо, пляж, море и всё это под водой. Небо - теперь вода Prompt: view from below, beach, sea, sky, underwater

Строка промпта - это не жесткие ограничения, как например в программировании, где есть последовательность или логика. Здесь играет роль обучение сети и нейронные связи. Как следствие - можно пробовать использовать невозможное сценарии, либо противоречивые смыслы. Например солнечно и дождливо одновременно, ночь и день.

Можно повторять слова. Казалось бы это не логично, но можно тупо повторять слова и это будет не то же самое что увеличивать вектор слова (когда фраза в скобках находится). Бывают случаи когда усиление в 2.5 раза и выше ломает шаблон и на выходе получается карикатура либо шум. Повторение фразы позволяет избежать резкого применения векторов и применить усиление плавно.

Можно использовать даже прямо противоположенные промпты - например: вид сверху, вид снизу. Программа не будет запрещать это делать, какой будет суммарный эффект - до конца не изучено. Вероятно суммироваться будут их побочные эффекты, а сами свойства будут нейтрализоваться.

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

Самый простой способ подобрать правильный промпт и отладить, исключить лишние слова - выбрать за точку отчета любой понравившийся наиболее близкий кадр к задуманному, сохранить этот сид и попробовать добить или убавить различные ранее введенные слова, а также уменьшить или увеличить вес. В любом случае, если вы очень далеко уедите от цели - вы всегда можете вернуться на слепок через PNG Info.

Не бойтесь квадратных скобок и больших усилителей. Квадратные скобки снижают действие эффекта. Предположим [view from above:50] означает вид сверху, но по высоте практически не отличимый от обычного вида
Имейте в виду что камера управляет не только камерой, что было бы логично. Здесь от позиции камеры зависит и отображаемый контент, ведь под нужный угол теперь нужно впихнуть и объект, а это значит что его придется видоизменить

Надеюсь, материал бы полезен. Дайте знать, если тема вам интересна и хотите узнать больше о находках в генерации изображений по тексту

Все дальнейшие материалы по теме Stable diffusion будут выходить на отдельном канале

#StableDiffusion #Automatic1111