Перейти к содержанию

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


Рекомендуемые сообщения

В этой статье мы покажем вам как написать негативный промт в 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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Краткий обзор материала: В статье рассматривается написание негативного промта для нейронной сети 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 для настройки негативного промта.
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...