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

Embedding в Stable Diffusion или как использовать текстовые инверсии


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

  • Модератор

Если вы когда-либо посещали сайт Civitai, вы наверняка замечали опцию «Embeddings» в настройках сортировки моделей. В этой статье я подробно разберу, что такое Embedding в Stable Diffusion, как работают текстовые инверсии и как использовать embeddings из Civitai в своих генерациях.

image.png


Embeddings (текстовые инверсии) — это специальные ключевые слова в промте (токены), которые математически определяют, что должна изображать нейросеть Stable Diffusion. Сами по себе текстовые инверсии не содержат изображений — embedding действует как якорь (набор координат в латентном пространстве), который направляет Stable Diffusion к нужному результату генерации.

Звучит сложно?
Не волнуйтесь, мы разберемся.

Традиционно, чтобы «объяснить» нейронной сети, что она должна рисовать, вы пишете подробный и часто длинный промт. Если вы хотите изобразить известного человека, просто укажите его имя в подсказке.

Но есть альтернативный подход — по сути, та же концепция, только вывернутая наизнанку. Как вы уже догадались, речь идет об инверсиях текста. Вместо обучения нейросети необходимыми изображениями авторы создают инверсию текста, «извлекая» из нейросети специальный ключ. Этот ключ затем позволяет им достичь желаемого результата.

Как авторы создают embeddings для Stable Diffusion на Civitai?

Для создания текстовой инверсии (embedding Stable Diffusion), которая по сути представляет собой файл формата .pt или .safetensors, автор предоставляет нейросети следующие входные данные:

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

  • промт или текстовое описание, точно отражающее то, что изображено на предоставленных изображениях

  • Имя, которое можно использовать для ссылки на этот embedding в будущих генерациях

В результате этого процесса обучения автор получает файл, например name.pt, где «name» — это имя нашего эмбеддинга. Это embedding можно использовать в будущих генерациях Stable Diffusion, просто добавляя его имя в промт.

Предположим, что наш embedding предназначен для создания изображений Анджелины Джоли, аналогично примеру с текстовой инверсией на Civitai: https://civitai.com/models/99201. Чтобы создать изображение Анджелины Джоли в Stable Diffusion, достаточно включить в промт триггерное слово, указанное автором эмбеддинга. В данном случае триггерное слово — «4nj0lie».

image.png

 

Зачем использовать текстовую инверсию (embedding), если можно просто написать в промте «Анджелина Джоли»?

Ответ прост: embedding в Stable Diffusion может обеспечить более точное соответствие целевому изображению и стилю, но результат зависит от того, насколько тщательно автор выбрал качественные фотографии и релевантные ключевые слова при обучении текстовой инверсии.

Как использовать Embedding и текстовые инверсии в Stable Diffusion?

На сайте Civitai можно обнаружить множество текстовых инверсий (embeddings) для Stable Diffusion. Для вашего удобства мы предустановили большинство популярных embeddings из Civitai в нашем Telegram‑боте @yes_ai_bot.

Инструкции:

  1. Посетите сайт civitai.com и найдите нужный embedding (текстовую инверсию) для Stable Diffusion
  2. Скопируйте предоставленное триггерное слово
  3. Откройте приложение Telegram и авторизуйтесь у бота @yes_ai_bot
  4. Введите промт для Stable Diffusion, содержащий скопированное триггерное слово из embedding, например «4nj0lie»

Преимущества embeddings:

  • Повышенная точность представления изображений, лиц, стилей, окружения и многого другого при генерации в Stable Diffusion
  • Минимальный размер файла (хотя для пользователей @yes_ai_bot это менее критично, так как все работает без необходимости установки на компьютер)
  • Триггерное слово функционирует как стандартный токен, позволяющий применять весовые коэффициенты и другие манипуляции (мутации и т. д.), как подробно описано в этом видео: https://youtu.be/gL9TVTae0dI
  • Удобен для пользователя и поддерживает ведение личного «словаря лайфхаков», где одно слово (embedding) может заменить целый сложный промт
  • Возможность использования вложений в «негативных промтах»

На последнем пункте мы остановимся отдельно.

Как и зачем использовать embeddings (текстовые инверсии) в Negative Prompt Stable Diffusion?

Embedding в Stable Diffusion, по сути представляющий собой токен (или группу токенов), можно разместить везде, где используется текстовое описание. В том числе — в разделе «Negative Prompt» (негативный промт).

Существуют специальные embeddings, изначально созданные для использования в негативных промтах (Negative Prompt), например EasyNegative и другие модели с Civitai.

Зачем это нужно?

Всё просто: вы можете указать в негативном промте (Negative Prompt) всё, что не хотите видеть в создаваемых Stable Diffusion изображениях, а embedding вроде EasyNegative упростит этот список.

Например:
(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

Альтернативно вы можете просто использовать слово «easynegative». EasyNegative — это популярное встраивание (embedding) с сайта Civitai (https://civitai.com/models/7808), которое отфильтровывает большинство нежелательных мутаций и артефактов в генерациях Stable Diffusion.

Чтобы установить Negative Prompt (NP) в боте @yes_ai_bot для генераций Stable Diffusion, у вас есть два варианта:

  • Глобальная настройка: используйте команду /np easynegative
  • Отдельные настройка: добавьте /np easynegative с текстом промта

В этих примерах мы использовали «easynegative» как промт для исключения нежелательных элементов из генерации. Однако вы можете выбрать другие эмбеддинги, специально разработанные для использования в Negative Prompt.

Ключевые моменты про эмбеддинги:

  • Embeddings и текстовые инверсии в Stable Diffusion относятся к одной и той же концепции — по сути, это одно и то же.
  • Ограничения Embeddings. Одним из основных недостатков текстовых инверсий в Stable Diffusion является то, что они ограничивают нейронную сеть генерацией контента на основе уже существующей базы знаний. Встраивания направляют нейросеть к конкретным объектам в этой базе, но не расширяют её. Чтобы именно расширить базу знаний модели Stable Diffusion, используют LoRA.
  • Изменение существующих Embeddings. Если вам нужно изменить фундаментальный аспект существующего Embeddings, например исходный цвет волос персонажа, вам следует указать желаемый цвет перед эмбеддингом в промте. Например: «белые волосы, 4nj0lie».
  • Корректировка весовых коэффициентов. Если описанный выше метод не работает, попробуйте увеличить весовой коэффициент. Например: «((белые волосы)), 4nj0lie».
  • Запасной вариант: Если корректировка весового коэффициента по-прежнему не помогает, это означает, что автор встраивания не предвидел таких изменений. В этом случае вам нужно будет вручную описать имя, изображение, стиль и т. д., не используя встраивание.
  • Роль инверсии текста. Инверсия текста (или Embeddings) предоставляет точный текст для промта, указывая нейронной сети, что именно генерировать.
  • Компоненты Embeddings. Эмбеддинг включает промт, которое уже содержит токены, которые служат основой для генерации. Помимо токенов, инверсии текста также содержат информацию о нужных изображениях.
  • Negative Prompt. Текстовые инверсии (embeddings) можно использовать в негативном промте Stable Diffusion так же, как и обычные слова. Это особенно полезно для исключения нежелательных элементов и артефактов. Например, можно добавить инверсию текста «EasyNegative», чтобы отфильтровать многие нежелательные дефекты. Традиционный список негативных промтов по‑прежнему работает, но embedding часто делает настройку Negative Prompt быстрее и удобнее.
  • Поддержка весов: инверсия текста поддерживает вес, аналогично обычным токенам в подсказках.
  • Like 4
  • Лайк 3
  • Благодарность 1

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

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

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

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

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

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

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

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

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

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

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