Jump to content

Как написать негативный промт в Stable Diffusion - Negative Prompt (NP)


Recommended Posts

В этой статье мы покажем вам как написать негативный промт в Stable Diffusion. Проще говоря, негативный промт — это текстовый список стоп слов и фраз, который будет действовать как фильтр для нейронной сети Stable Diffusion при создании изображений.

В Stable Diffusion есть пара категорий промтов:

  1. обычный тип, в котором вы подробно описываете изображения, которые хотите создать нейронной сетью.
  2. негативный тип, где вы указываете элементы и/или атрибуты, которые нейронная сеть не должна включать в свою генерацию.

e0c5d870-f974-4307-95a5-b202bde11df3.png

Рассмотрим задачу создания изображения типичного человека с парой рук и ног, одной головой и т. д. — по сути, человека, который не будет привлекать внимание.

Есть вероятность, что нейронная сеть может изменить представление человека, потенциально добавляя ненужные конечности или искажая его. Чтобы свести к минимуму вероятность того, что нейронная сеть внесет такие изменения, используются негативный промт.

b0e10431-23e5-4407-aab1-2b078ca5f40e.png

Прежде чем мы продолжим, давайте углубимся в причины склонности ИИ Stable Diffusion изменять конечности людей и животных или иным образом бросать вызов нашим традиционным взглядам на нормальность.

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

Какие слова включить в негативный промт в Stable Diffusion?

Есть два способа написать негативный промт:

  • составить список слов и фраз самостоятельно
  • использовать инверсии текста, созданные другими экспертами

Если вы не уверены в создании промта в Stable Diffusion, рекомендуется начать с прочтения этой статьи или просмотра этого видео, а в идеале — сделать и то, и другое.

Наиболее распространенные стоп слова и фразы, используемые в негативных промтах:

  • ugly - (некрасивый) — этот термин употребляется, чтобы свести к минимуму вероятность возникновения различных уродств
  • blurry - размытый
  • bad anatomy - (плохая анатомия)
  • wrong anatomy - (неправильная анатомия)
  • missing limb - (отсутствующая конечность)
  • amputation - (ампутация) предпочитаю не видеть изображения с отсутствующими конечностями
  • missing limb - (отсутствующая конечность)
  • text, watermark - (текст, водяной знак) — нейросеть стремится добавлять к изображениям надписи на воображаемых языках; этот негативный промт почти наверняка предотвратит это
  • mutated hands and fingers - (мутировавшие руки и пальцы) — мы обязательно включим это в негативный промт, хотя это может быть не во всех случаях эффективно
  • mutation - (мутация)
  • distorted - (искаженный)
  • deformed - (деформированный)
  • disgusting - (отвратительный)
  • extra limb - (дополнительная конечность) дополнительные конечности нам тоже не особо выгодны
  • disconnected limbs (разъединенные конечности)
  • mutated (мутировавший)
  • poorly drawn (плохо нарисованный)
  • disfigured (изуродованный)

Вы можете включить все эти термины и слова в негативный промт одновременно:

(deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), (text, watermark:1.1), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation

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

Если вы хотите исключить обнаженных людей и другие материалы из категорий 🔞 , добавьте в негативный промт следующие слова:

nsfw, nude

Обращаем внимание! Избегайте использования чрезмерных слов и фраз в негативном промте, так как это может привести к сбоям в генерации. Использование длинного NP приведет к снижению качества изображения.

Давайте рассмотрим второй способ использования негативных сигналов: инверсию текста (embeddings)

Вместо предоставления обширного списка стоп-слов вы можете просто использовать один термин, например «EasyNegative», или назначенное имя триггера, предназначенное для отрицательного запроса внутри отрицательного запроса.

В негативном промте можно использовать встраивания и обычные токены одновременно, например, можно написать так:

EasyNegative, gems

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

Теперь мы подошли к решающему моменту.

Действия по настройке негативного промта в настройках Stable Diffusion

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

Если вы взаимодействуете с нейронной сетью Stable Diffusion через бота Telegram @yes_ai_bot, ваши возможности немного расширяются, поэтому давайте разберем их шаг за шагом.

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

Второй вариант - хотите предоставить свой собственный NP?
Просто введите боту следующую команду:

/np хххххх

...где xxxxxxx — список стоп-слов или фраз, которые следует добавить к негативному промту. В этом случае все последующие поколения будут работать с учетом указанного NP.

Пример промта на установку NP (Negative Prompt):

/np (deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), (text, watermark:1.1), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation

Третий вариант - если вы не хотите использовать стандартный негативный промт только в конкретной сборке, а предпочитаете использовать какой-то временный NP, сформулируйте запрос на генерацию следующим образом:

zzzzzzz /np xxxxxx

...где zzzzzzz представляет собой текст вашего промта, а xxxxxx соответствует тексту негативного промта.

В этом сценарии @yes_ai_bot распознает, что ему следует использовать текст из xxxxxx в качестве негативного промта при создании изображения, полученного на основе основного промта zzzzzzz.

Примером использования временного негативного промта может быть:

золотое кольцо /np gems

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

260ba730-ff0f-49b8-a216-fa2942390dfa.png

Главное — избегать путаницы и не инициировать по ошибке генерацию с отрицательным подсказкой вместо основной. Если это произойдет, у вас может получиться изображение со всеми элементами, которых вы хотели избежать (как показано на картинке в начале этой статьи).

  • Like 1

image.png.9d5b4205072e7e483a6f7d59aebe58e3.pngimage.png.401b8a419d2091e7d0b7f9d60646a724.png

Link to comment
Share on other sites

Краткий обзор материала: В статье рассматривается написание негативного промта для нейронной сети Stable Diffusion, которая используется для создания изображений. Негативный промт - это текстовый список стоп-слов и фраз, который действует как фильтр, чтобы предотвратить включение определенных элементов в генерируемое изображение. Для предотвращения изменения конечностей людей и животных можно использовать такие слова как 'deformed', 'distorted', 'disfigured', 'poorly drawn', 'bad anatomy', 'wrong anatomy', 'missing limb', 'extra limb', 'floating limbs', 'mutated hands and fingers', 'text', 'watermark'. В статье также описывается использование инверсии текста и бота Telegram @yes_ai_bot для настройки негативного промта.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...