Текстовая инверсия

:robot: This page have been translated automatically. If you want to improve this translation and remove this warning, see project's repository

Что такое текстовая инверсия?

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

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

Подробнее о том, что такое текстовая инверсия, см. на исходном сайте: https://textual-inversion.github.io/.

Использование предварительно обученных эмбеддингов

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

В качестве примера вот вставка Усада Пекора Тренировалась на модели WD1.2, на 53 картинках ( 119 дополнен) для 19500 шагов, с 8 векторами на настройку токена.

Картины, которые он генерирует: сетка-0037

portrait of usada pekora
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 4077357776, Size: 512x512, Model hash: 45dee52b

Вы можете комбинировать несколько вложений в одном приглашении: сетка-0038

portrait of usada pekora, mignon
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 4077357776, Size: 512x512, Model hash: 45dee52b

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

portrait of usada pekora
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 4077357776, Size: 512x512, Model hash: 7460a6fa

Обучающие вложения

Вкладка Инверсия текста

Экспериментальная поддержка обучающих вложений в пользовательский интерфейс.

  • создать новую пустую вставку, выбрать директорию с изображениями, обучить на ней вставку
  • функция очень сырая, используйте на свой страх и риск
  • я смог воспроизвести результаты, которые я получил с другими репозиториями при обучении аниме-художников стилям, после нескольких десятков тысяч шагов
  • работает с поплавками половинной точности, но нужно поэкспериментировать, чтобы увидеть, будут ли результаты такими же хорошими
  • если у вас достаточно памяти, безопаснее запускать с --no-half --precision full
  • Раздел для пользовательского интерфейса для автоматического запуска предварительной обработки изображений.
  • вы можете прерывать и возобновлять обучение без потери данных (кроме параметров оптимизации AdamW, но, кажется, ни один из существующих репозиториев не сохраняет их, так что общее мнение - они не важны)
  • нет поддержки размеров партии или накопления градиента
  • не должно быть возможности запустить это с флагами --lowvram и --medvram.

Объяснение параметров

Создание встраивания

  • Имя: имя файла созданного встраивания. Вы также будете использовать этот текст в подсказках при обращении к встраиванию.
  • Текст инициализации: создаваемое встраивание будет изначально заполнено векторами этого текста. Если вы создадите одно векторное вложение с именем «zzzz1234» с «деревом» в качестве текста инициализации и используете его в подсказке без обучения, то подсказка «a zzzz1234 by monet» создаст те же изображения, что и «tree by monet».
  • Количество векторов на токен: размер встраивания. Чем больше это значение, тем больше информации о предмете вы сможете уместить во вложение, но и тем больше слов оно уберет из вашего оперативного пособия. При стабильной диффузии у вас есть ограничение в 75 токенов в подсказке. Если вы используете вставку с 16 векторами в подсказке, у вас останется место для 75 - 16 = 59. Также по моему опыту, чем больше количество векторов, тем больше изображений вам нужно для получения хороших результатов.

Предварительная обработка

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

  • Исходный каталог: каталог с изображениями
  • Каталог назначения: каталог, в который будут записаны результаты.
  • Создавать перевернутые копии: для каждого изображения также запишите его зеркальную копию.
  • Разделить слишком большое изображение на два: если изображение слишком высокое или широкое, измените его размер, чтобы короткая сторона соответствовала желаемому разрешению, и создайте из него два, возможно, пересекающихся изображения.
  • Использовать заголовок BLIP в качестве имени файла: используйте модель BLIP из опросчика, чтобы добавить заголовок к имени файла.

Обучение встраиванию

  • Встраивание: выберите вложение, которое вы хотите обучить, из этого раскрывающегося списка.
  • Скорость обучения: как быстро должно проходить обучение. Опасность установки этого параметра на высокое значение заключается в том, что вы можете нарушить встраивание, если установите слишком высокое значение. Если вы видите «Потеря: nan» в текстовом поле с информацией об обучении, это означает, что вы потерпели неудачу, и встраивание мертво. Со значением по умолчанию этого не должно происходить. В этом параметре можно указать несколько скоростей обучения, используя следующий синтаксис: «0,005:100, 1e-3:1000, 1e-5» — это будет обучать с lr «0,005» для первых 100 шагов, затем «1e-3». ` до 1000 шагов, затем 1e-5 до конца.
  • Каталог набора данных: каталог с изображениями для обучения. Все они должны быть квадратными.
  • Каталог журналов: в этот каталог будут записываться образцы изображений и копии частично обученных вложений.
  • Файл шаблона подсказки: текстовый файл с подсказками, по одной в строке, для обучения модели. Посмотрите файлы в каталоге textual_inversion_templates, чтобы узнать, что вы можете с ними сделать. Используйте style.txt при обучении стилей и subject.txt при обучении внедрению объектов. В файле можно использовать следующие теги:
  • [имя]: имя встраивания
  • [filewords]: слова из имени файла изображения из набора данных. Подробнее см. ниже.
  • Максимальное количество шагов: обучение остановится после того, как будет выполнено это количество шагов. Шаг — это когда одно изображение (или один пакет изображений, но пакеты в настоящее время не поддерживаются) показывается модели и используется для улучшения встраивания. если вы прервете тренировку и возобновите ее позже, количество шагов сохранится.
  • Сохранение изображений с встраиванием в виде фрагментов PNG: каждый раз, когда создается изображение, оно объединяется с последним зарегистрированным встраиванием и сохраняется в image_embeddings в формате, которым можно поделиться как изображением и поместить в папку встраивания. и загружен.
  • Подсказка для предварительного просмотра: если она не пуста, эта подсказка будет использоваться для создания изображений для предварительного просмотра. Если пусто, будет использоваться подсказка из обучения.

файловые слова

[filewords] — это тег для файла шаблона подсказки, который позволяет вам вставлять текст из имени файла в подсказку. По умолчанию расширение файла удаляется, а также все цифры и дефисы (-) в начале имени файла. Таким образом, это имя файла: 000001-1-a man in suit.png станет этим текстом для подсказки: a man in suit. Форматирование текста в имени файла оставлено как есть.

Можно использовать опции Filename word regex и Filename join string, чтобы изменить текст из имени файла: например, со словом regex = \w+ и join string = , файл, указанный выше, создаст этот текст. : а, мужчина, в, костюме. регулярное выражение используется для извлечения слов из текста (и это ['a', 'man', 'in', 'suit', ]), а соединяющая строка (‘, ‘) помещается между этими словами для создания одного текст: а, мужчина, в, костюме.

Также можно создать текстовый файл с тем же именем, что и у изображения (000001-1-мужчина в костюме.txt) и просто поместить туда текст подсказки. Параметры имени файла и регулярного выражения использоваться не будут.

Сторонние репозитории

Я успешно обучил вложения, используя эти репозитории:

Другие варианты — тренироваться на колабах и/или использовать библиотеку диффузоров, о которой я ничего не знаю.

Поиск вложений онлайн

Гиперсети

Гиперсети — это новая (понятно?) концепция тонкой настройки модели без изменения ее веса.

Текущий способ обучения гиперсетей — на вкладке текстовой инверсии.

Обучение работает так же, как и при текстовой инверсии.

Единственное требование — использовать очень-очень низкую скорость обучения, что-то вроде 0,000005 или 0,0000005.

Глупый Глупый Руководство

Анонимный пользователь написал руководство с картинками по использованию гиперсетей: https://rentry.org/hypernetwork4dumdums

Выгружать VAE и CLIP из VRAM при обучении

Эта опция на вкладке настроек позволяет сэкономить немного памяти за счет более медленного создания изображения для предварительного просмотра.

results matching ""

    No results matching ""