Fizgig LoRA Isolation: лицо, которое не переходит на других

ComfyUI Wikinews

Fizgig v8.4.0 добавляет LoRA Isolation: DOP, слитые токены триггера и обучение на негативных парах сокращают перенос лица на посторонних с 48/50 до 0/50 на Krea 2.

Fizgig v8.4.0 добавляет LoRA Isolation: режим обучения LoRA персонажей, который не даёт лицу объекта распространяться на всех остальных людей на изображении (примечания к выпуску | техническое описание | демонстрационное видео). Обычная LoRA человека переносит это лицо на посторонних на фоне, на друга, стоящего рядом, или на целую толпу. С LoRA Isolation обученные объекты могут стоять вместе на одном изображении или рядом с тем, кого модель уже знает, и каждое лицо остаётся своим. Без триггерного слова вы получаете людей самой базовой модели, как и до обучения.

Демонстрация Fizgig LoRA Isolation

Fizgig LoRA Isolation, демонстрационное видео от автора Fizgig. Источник: примечания к выпуску Fizgig v8.4.0

Результаты

Две LoRA обучались на Krea 2 с одинаковыми фото, настройками, seed и эпохой, различаясь только LoRA Isolation. Обе выучили двух людей (объект плюс друг как второй персонаж) и стиль бумажной вырезки. Затем каждую LoRA отрендерили на 25 промптах с двумя seed, всего 50 изображений. Каждое изображение разделено на две части: на одной стороне другой, тщательно описанный белый мужчина, на другой обученный объект, тоже белый мужчина. Такая пара намеренно выбрана как самый сложный случай для утечки. Каждую половину оценивали с помощью ArcFace (insightface buffalo_l) по сравнению со средним лицом объекта из 35 обучающих фото: один и тот же человек обычно набирает 0.45 и больше, а посторонние люди от 0.0 до 0.2.

Обычная LoRAFizgig LoRA Isolation
Посторонние, которые выглядят как объект48 из 500 из 50
Насколько объект похож на самого себя0.770.78

Похожесть не падает: настоящие фото объекта дают 0.81 при сравнении друг с другом, а эти рендеры достигают 0.78, хотя LoRA делится со вторым человеком. Второй человек в LoRA обычно создаёт проблему; здесь он часть решения.

Как это работает

Fizgig применяет шесть компонентов, когда на карточке Subjects выбрано Fizgig LoRA Isolation.

DOP: дифференциальное сохранение выхода

Каждое обучающее изображение также обучается с удалённым из подписи триггером, и на этом проходе LoRA удерживается в соответствии с собственным предсказанием базовой модели для того же зашумлённого входа. Без триггера LoRA учится ничего не менять, поэтому объект не появляется в промптах, где его не называют. Fizgig отдаёт авторство DOP Ostris и AI-Toolkit и надстраивает собственные слои поверх.

Привязка идентичности нескольких объектов

Две или больше идентичностей обучаются вместе, каждая из своей папки со своим триггером. Два лица, выученных рядом, учат LoRA тому, что лицо принадлежит одному триггеру, а не классу в целом; поэтому второй человек помогает, а не мешает. В тесте выше вторым объектом была женщина, а все посторонние были мужчинами, так что эффект не зависит от пола. Даже для LoRA одного человека рекомендуется обучать второго человека вместе с ним.

Разделение класса со слитным токеном

Триггер и его классовое слово сливаются в одно слово в каждой подписи, поэтому gwelt, a man обучается как gweltman. Обычный классовый токен ("man") общий для всех остальных мужчин в модели, и именно он служит мостом, по которому признаки объекта переходят на других людей. Присоединённое к триггеру классовое слово становится другим токеном, и внешность объекта никогда не привязывается к общему. Fizgig выполняет объединение при чтении подписей и не трогает файлы подписей на диске. Триггер должен сливаться чисто: fyxo плюс woman читается как f | yx | ow | oman, что ломает слитное слово; поэтому на карточке Subjects есть кнопка Check a trigger word, которая проверяет объединение собственным tokenizer обучаемой модели.

Композиционирование негативных пар в одном кадре

Каждый человек получает 16 парных изображений: одно из его собственных обучающих фото рядом со сгенерированным посторонним в одном кадре 2:1, причём сторона объекта выбирается случайно. Они учат «этот человек объект, тот остаётся посторонним» внутри одного изображения, а именно там обычная LoRA и «протекает». В подписях сначала описывается посторонний, затем объект, потому что используемые этими моделями текстовые энкодеры каузальны, и каждое слово после триггера кодируется с уже учтённым триггером.

Посторонние это фиксированный набор из 32 сгенерированных людей 8 национальностей, мужчин и женщин в возрасте от 20 до 50 лет. Вторая версия набора отрендерена на Qwen Image 2.1 для естественной текстуры кожи, чтобы не тянуть LoRA к плохой коже; фото реальных людей не используются. Набор скачивается вместе с моделями Fizgig и занимает около 21 МБ.

Масштабирование learning rate и сбалансированная выборка

Парные изображения обучаются с удвоенным learning rate на своих шагах, DOP выполняется каждый второй шаг с двойным весом, а Balance the subjects повторяет меньшие папки, чтобы каждый объект обучался примерно так же часто, как самый большой.

Пути обучения с учётом класса

Каждый объект распознаётся как человек, животное или предмет, либо как стиль или образ. Человек получает слитный триггер и парные изображения. Животное или предмет получает только слитный триггер. Стиль или образ сохраняет триггер как написано и не получает парных изображений, так как стиль должен менять всё изображение.

Рецепт, стоящий за цифрами

ПараметрЗначение
МодельKrea 2, Standard LoRA
Объектыодин человек (36 фото), второй человек (53 фото), стиль бумажной вырезки (8 изображений), с балансировкой
Ранг / альфа16 / 16
Learning rateАдаптивный LR, от 2e-4 до 4e-4, constant scheduler
ОптимизаторAdamW 8-bit, max grad norm 1, пакет 1
EMA0.98
Разрешение0.25 MP (496 × 496), по бакетам, без upscale
Базовая точностьINT8
Seed42
Checkpointэпоха 20
Дополнительно для изоляции16 парных изображений на человека при 2× LR, DOP каждый второй шаг с весом 2

Обучение занимает примерно в 1.5 раза больше времени, чем обычная LoRA с теми же настройками.

Что известно на данный момент

  • До 4 объектов обучаются хорошо. Два обученных человека на одном изображении плюс человек, которого модель уже знает, работают почти всегда; три и больше обученных людей на одном изображении это лотерея.
  • Два объекта одного класса, например две женщины, требуют примерно в 1.6 раза больше эпох, потому что оба попадают в один и тот же проход сохранения «a woman», и этот класс удерживается примерно вдвое сильнее.
  • В промпте используйте слитное слово, например gweltman man at a cafe, и описывайте остальных людей на изображении. LoRA разделяет их сама; описание это страховка.
  • Метод пока проверен только на Krea 2. Он работает на всех моделях Fizgig, кроме ACE-Step, а на MiniMax H3 объекты обучаются по своим фото, при этом клипы и голосовые файлы не кладутся в папку.

Как использовать

Режим находится на карточке Subjects вкладки Training: выберите количество объектов, укажите для каждого папку, скажите, что это, затем установите Your subject and other people в Fizgig LoRA Isolation. Под каждым объектом карточка показывает слово, под которым он обучается, одну из его подписей и парные изображения, которые будут использоваться в обучении, так что проблемы с подписями видны до запуска, а не после.

Настройка Fizgig LoRA Isolation

Настройка карточки Subjects: видео-инструкция от автора Fizgig. Источник: примечания к выпуску Fizgig v8.4.0

Руководство по подписям: MULTI_PERSON.md. Тот же выпуск делает мультиконцептное обучение (от 2 до 4 папок объектов) доступным для Standard LoRA и fine-tune каждой модели, а не только для H3.

Доступность

Fizgig это open-source студия LoRA и fine-tune для Klein 9B, Krea 2, MiniMax H3, Qwen Image 2.1, Anima, Z-Image Turbo и ACE-Step XL (GitHub), и v8.4.0 является текущим выпуском. LoRA Isolation это функция стороны обучения, поэтому полученные LoRA загружаются в ComfyUI как любые другие LoRA, обученные в Fizgig.

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
Fizgig LoRA Isolation: лицо, которое не переходит на других | ComfyUI Wiki