/dreambooth_tune

Реализация DreamBooth статьи

Цель репозитория изучить статью: DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation

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

Современные диффузиозные модели не способны генерировать определенный объект без потери каких-либо деталей, независимо от того использует ли разработчик промпт или картинку в качестве input-а. Данная работа справляется с этой проблемой, позволяя пользователем решать такие задачи как смена окружения объекта(Recontextualization), модификация его свойств(Property Modification), добавление акксесуаров(Accessorization), изменения стиля объекта(Art Renditions), генерация объекта с другой точки зрения(Novel View Synthesis).

Задача состоит, в том, чтобы придумать способ дообучения моделей таким, образом, чтобы а) модель могла генерировать данный объект с сохранением отличительных свойств б) чтобы модель не теряла изначально имеющуюся информацию о мире(проблема language drift) и не переобучалась

Основная идея статьи заключается в том, чтобы кодировать изображенния для дообучения с помощью редко используемых символов и вставлять их в промпт при инференсе. Таким образом создается отдельное семантическое представление для объекта с данных фоток. Например, A [V] dog. Здесь [V] указывает модели на то, что нужна не любая собака, а именно собака с фото, на которых модель дообучалась. Важным условием является указание класса объекта, после специальных символов(в данном случае это dog). Дополнительно, предлагается использовать специальный Prior Preservation Loss для решения проблемы б). Он позволит сохранить текущие знания модели об специфичном классе.

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

Метод хорошо показал себя в действии. Для измерения качества был сгенерирован датасет с общим числом в 3000 картинок. Датасет состоит из картинок с разными объекатми, по 4 картинки для каждого объекта и для каждого промпта. При сравнение уделялось внимание 2 ключевым показателям - то, насколько хорошо модель передает отличительные черты объекта(subject fidelity) и насколько соответсвует промпту(prompt fidelity). В первом случае использовались метрики CLIP-I и DINO, во втором - CLIP T. Было так же проведен опрос реальных людей. Их показывали, несколько картинок и спрашивали, какая из них лучше всего передает объект с референса. Сравнился DreamBooth с другим методом Textual Inversion. По итогам, сравнения текущий метод значительно обощёл уже существующий Textual Inversion.