Найти тему
НЕйро ПРО Дизайн

Казнить нельзя помиловать, как работает запятая в промте для нейросетей

Оглавление

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

  1. beautiful female body,
  2. watercolor, monochrome, black and gray, ink, thin lines, paint streaks, blotches, drops,
  3. in the style of Photographer Joel-Peter Witkin,
    professional concept art, by Greg Rutkowski, complex, elegant, highly detailed digital painting, concept art, smooth, sharp focus, illustration, in the style of David Downton and David Hughes.

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

Затем идет указание техники исполнения изображения. Акварель выбрана потому, что дает возможность обобщать и сглаживать детали, которые в другой технике (например фото реализма), могут получиться смазанными. Недосказанность рисунка является естественным свойством акварельной работы.

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

Программа реагирует на стиль художников последовательно. Первый в списке будет самый значимый, потом по нисходящей. У нас подобралась интересная компания. Балом правит скандально известный Witkin, это под его влиянием взгляды моделей наполняют «Вдохновенные соблазны и темный рок». Напряженную атмосферу создает цифровой живописец Greg Rutkowski, гламурный блеск придает фешен иллюстратор David Downton и завершает процессию черный юмор карикатуриста David Hughes. Посмотрите работы перечисленных художников.

-2

Для начала надо проверить промт. Основные значения оставляем по умолчанию: детализация порядка 40, Sampler ставим pndm, Seed пока оставляем рандомным, разрешение ставим максимально допустимое в бесплатной версии - 1024 пикселя. Генерим последовательно по одному изображению, при каждой генерации программа меняет значения Seed, в результате получаются совершенно разные портреты.

-3

Почему на всех вариантах получается женский портрет? В промте же нет на это прямого указания.
Нейросети в подавляющем большинстве натренированы на распознавание человеческих лиц. Это их основная задача. Среди множества разных объектов, невзирая на помехи, на информационный шум, программа должна найти и распознать лицо человека. По этому, первое, что нейросеть вычленяет из хаоса - это лицо человека. Обратите внимание, что подавляющее число картинок, которые генерят пользователи нейросетей - это портреты людей, роботов, или мордочки животных (что по суте тоже лица). Создавая свои шедевры, мы все бесплатно (а некоторые и за деньги) тренируем нейросети.

-4

Все работает отлично. Но через несколько генераций резульат становится предсказуемым. Надо добавить в процесс творческого хаоса.

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

-5

Теперь можно поработать над промтом.
Но в начале надо разобраться с принципом работы Playground.

Рандомные изменения параметра Seed не дают отслеживать работу промта. Не понятно, что приводит к изменению результата, новая редакция промта, или новое значение Seed. Для однозначности решения Seed надо зафиксировать.
В начале работы совершенно все равно какое задано значение Seed, я выставляю произвольно: 987654321.
Seed зафиксирован, теперь можно регулировать изменения картинки только однми параметром - Images streength. Программа будет пытаться в большей или меньшей степени превратить очки в портрет девушки. И нейросети это всегда будет удаваться! Как говорилось выше, нейросеть выявляет лицо человека в любом, самом зашумленном изображении.

Важно. Значение Seed больше влияет на результат, чем значение Images streength. Числа streength надо менять с некоторыми интервалами, иначе не будет заметна разница между новыми картинками. Мы будем генерировать новые изображения с такими значениями: 7, 13, 17, 21. Эти числа подобраны опытным путем, они дают наиболее различимые результаты.

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

-6
-7
-8
-9
-10
-11

Уже интереснее. Но мы все равно не можем вырваться за рамки портрета. Как добиться большего разнообразия?

Достаточно поставить запятую между словами beautiful female body и результат сразу изменится. Но где ставить запятую? Ситуация похожа на задачу с фразой «Казнить нельзя помиловать». Вариантов может быть три. Рассмотрим каждый.

Важно. Запятая делит единое выражение на несколько смысловых блоков и в результате мы получим не целостное изображение а несколько персонажей, каждый из которых будет отрабатывать значение своей части промта.


1.
beautiful female, body - В этом варианте мы просим программу изобразить красивую женщину, а затем еще тело, которое в заданой иерархии вторично. Зачастую мы просто получаем двойной женский портрет.

2. beautiful, female body - Теперь мы просим изобразить Красоту, а потом еще и Женское тело. Программа пытается справится как только может. Иногда это портрет и женская фигура, иногда две фигуры разного масштаба. Если значение Images streength достаточно велико (порядка 20), то в композиции явно прослеживаются диагональные оси, следы от дужек очков. Вторая сущьность может не обязательно являться человеком, этом может быть предмет (однажды получился зонтик), или животное, часто прилетают птицы :).

3. beautiful, female, body - Последний вариант. Все по отдельности. Обычно получается или три портрета, или три взаимодействующие фигуры.

4. beautiful female, body. Двойной портрет. Кто олицетворяет красоту, а кто тело решайте сами.

1. beautiful female, body

-12
-13
-14
-15

2. beautiful, female body.

На первый план выходит тело

-16
-17
-18
-19

3. beautiful, female body

Два тела в черном ведут спор о красоте

-20
-21
-22
-23
-24
-25

Акробатические этюды и удавки. Так программа интерпретирует в экстровагантном стиле Joel-Peter Witkin дужки очков

-26
-27

А вот и птица прилетела, или зонтик. Так иногда проявляет себя вторая сущность, отделенная запятой во фразе

-28
-29

4. beautiful, female, body

Три сущности: Красота, Женщина, Тело

-30
-31
-32

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

Негативный промт:
Hands, fingers, palms, extra fingers, extra hands, extra feet, doubled heads, slanted eyes, ugly face, distorted proportions, freaks, feet, wrong feet, severed limbs, severed heads.

По материалам публикации «Казнить нельзя помиловать»