Как пользоваться методом Embeddings в Stable Diffusion

Уроки

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

Что такое Embeddings?

Embedding (прим. автора “метод внедрения”) – это результат текстового преобразования, методом определения новых ключевых слов в рамках модели без ее редактирования. Этот метод привлек к себе внимание, поскольку он способен создавать новые стили или объекты в модели с помощью всего лишь 3-5 образцов изображений.

Как происходит текстовая инверсия?

Самое невероятное в текстовой инверсии – это НЕ САМА возможность добавлять новые стили или объекты, так как другие инструменты с тонкой настройкой могут делать это не хуже и даже лучше. Удивительно то, что она может делать это без изменения самой модели.

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

Как пользоваться методом Embeddings в Stable Diffusion
Для нового токена S* с помощью текстовой инверсии подбирается новый вариант внедрения.

Сначала вы определяете новое ключевое слово, которого нет в модели, для нового объекта или стиля. Это новое ключевое слово будет токенизировано (то есть представлено числом), как и любые другие ключевые слова в подсказке.

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

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

Примеры Embeddings

Внедрение можно использовать для новых объектов. Ниже приведен пример внедрения игрушечного кота. Обратите внимание, что новое понятие (‘toy cat’) может использоваться с другими существующими понятиями (boat, backpack, etc) в модели.

Как пользоваться методом Embeddings в Stable Diffusion
Пример внедрения объект.

Внедрение также может стать новым стилем. В примере ниже показано внедрение нового стиля и использование его в другом контексте.

Как пользоваться методом Embeddings в Stable Diffusion
Пример внедрения стиля.

Где искать embeddings?

В Hugging Face размещена библиотека концептов Stable Diffusion Concept Library, которая представляет собой хранилище большого количества пользовательских внедрений.

Как пользоваться методом Embeddings в Stable Diffusion

Civtai – еще один замечательный сайт, на котором можно просматривать модели, включая модели внедрения. Для этого надо настроить фильтр с текстовой инверсией (textual inversion) для просмотра только внедрений.

Как использовать метод внедрения “embeddings”

Веб-интерфейс

Stable Diffusion Conceptualizer – это отличный способ опробовать модели внедрения, не скачивая их.

Сначала определите в библиотеке концептов внедрение, которое вы хотите протестировать. Допустим, вы хотите использовать стиль Marc Allante. Затем определите маркер, необходимый для запуска этого стиля.
Вы можете найти его в файле token_identifier.txt, это <Marc_Allante>

Впишите подсказку (prompt)

<Marc_Allante> a dog

И вот вы получите уникальный стиль Marc Allante.

Как пользоваться методом Embeddings в Stable Diffusion

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

AUTOMATIC1111

Использовать embedding в AUTOMATIC1111 очень просто.

Сначала загрузите файл embedding из библиотеки Concept Library. Это файл с именем learned_embedds.bin. Убедитесь, что вы не нажимаете правую кнопку мыши и не сохраняете файл в окне ниже. Это сохранит веб-страницу, на которую он ссылается. Щелкните имя файла и нажмите кнопку загрузки на следующей странице.

Как пользоваться методом Embeddings в Stable Diffusion
Файл embedding.

Затем переименуйте файл в ключевое слово, с которым вы хотите использовать эту вставку. Это должно быть что-то несуществующее в модели.
marc_allante.bin – хороший выбор.

Поместите его в папку embeddings в рабочем каталоге GUI:

stable-diffusion-webui/embeddings

Перезапустите GUI. В терминале запуска вы должны увидеть следующее сообщение:

Loaded a total of 1 textual inversion embeddings.
Embeddings: marc_allante

Используйте имя файла как часть подсказки (prompt)

Например, следующий prompt будет работать на AUTOMATIC1111.

(marc_allante:1.2) a dog

Мы получаем изображение в ожидаемом стиле.

Как пользоваться методом Embeddings в Stable Diffusion

Краткое описание использования внедрения в AUTOMATIC1111

Embedding не будет работать, если в нем не хватает даже одной буквы. Также нельзя использовать Embedding v1 с Embedding v2, и наоборот – они используют две разные языковые модели.

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

В AUTOMATIC1111 есть небольшой трюк, чтобы убедиться в этом. Между кнопками ” Trash” и ” Copy” есть кнопка, которая выглядит как маленький айпод.

Как пользоваться методом Embeddings в Stable Diffusion

Нажмите на нее, и вы увидите все имеющиеся внедрения. Все они находятся на вкладке Textual Inversion.

Как пользоваться методом Embeddings в Stable Diffusion

Щелкнув по любому из них, вы добавите его в подсказку (prompt). Эта функция особенно полезна для избавления от утомительной работы по проверке правильности ввода ключевого слова для внедрения.

Примечание по использованию embeddings в AUTOMATIC1111

Если вы обратите внимание на prompt, то заметите, что я увеличил силу эффекта ключевого слова marc_allante. Я заметил, что необходимо регулировать данный параметр. Это может быть связано с процессом загрузки внедрения (силой эффекта) AUTOMATIC1111.

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

Как пользоваться методом Embeddings в Stable Diffusion
Отрегулируйте значение после ключевого слова, чтобы добиться нужного эффекта.

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

Ещё несколько вариантов модели embeddings

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

wlop_style

внедрение wlop_style в модель wlop-any

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

Внедрение wlop_style способно визуализировать некоторые красивые иллюстрации в стиле художника wlop. Его следует использовать с пользовательской моделью wlop-any от SirVeggie.
(См. это руководство по установке пользовательских моделей).

Прямая ссылка на скачивание – wlop_style embedding

Прямая ссылка на скачивание – wlop-any model

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

Рабочим промтом для AUTOMATIC1111 является:

Promt
(wlop_style :0.6) (m_wlop:1.4) woman wearing dress, perfect face, beautiful detailed eyes, long hair, birds
Negative prompt
closed eyes, disfigured, deformed

wlop_style – ключевое слово для внедрения, m_wlop – ключевое слово для модели.

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

Kuvshinov

Кувшинов – русский иллюстратор. Вы можете использовать внедрение стиля Кувшинова в Stable Diffusion v1.4.

Прямая ссылка на скачивание

Promt
(_kuvshinov:1), a woman with beautiful detailed eyes, highlight hair
Negative prompt
disfigured, deformed

(Обратите внимание, что я переименовал embedding в _kuvshinov.bin)

Разница между embedding, dreambooth и hypernetwork

Существует три популярных метода тонкой настройки моделей стабильной диффузии: текстовая инверсия (embedding), dreambooth и hypernetwork.

Embedding определяет новое ключевое слово для описания новой концепции без изменения модели. Векторы встраивания хранятся в файлах .bin или .pt. Размер файла очень мал, обычно менее 100 кБ.

Dreambooth внедряет новую концепцию путем точной настройки всей модели. Размер файла типичен для Stable Diffusion, около 2 – 4 ГБ. Расширение файла такое же, как и у других моделей, ckpt.

Hypernetwork – это дополнительная сеть, присоединенная к сети UNet модели Stable Diffusion. Цель – точная настройка модели без изменения модели. Размер файла обычно составляет около 100 МБ.

Плюсы и минусы использования модели embedding

Одним из преимуществ использования embedding является его небольшой размер. Размер файла не превышает 100 КБ, поэтому их легко хранить в локальном хранилище. Поскольку embeddings – это просто новые ключевые слова, их можно использовать вместе в одном и том же изображении.

Недостатком использования embedding является то, что иногда неясно, с какой моделью его следует использовать. Если в учебном пособии ничего не сказано, вы можете начать с версии 1.4 или 1.5. Вы также можете включить VAE, чтобы посмотреть, есть ли разница. Для аниме-стилей нередко в обучающих материалах используются аниме-модели типа Anything v3.

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

Оцените статью
Нейросети
Добавить комментарий