Перейдите в универ -стих диффузионных моделей с универсальным рабочим процессом.

Unidiffusion-это набор инструментов, который обеспечивает современные алгоритмы обучения и вывода, основанные на диффузорах. Unidiffusion предназначен для исследователей и пользователей, которые хотят глубоко настроить обучение стабильной диффузии. Мы надеемся, что этот репозиторий кода сможет обеспечить отличную поддержку для будущих исследований и расширений приложений.
Если вы также хотите реализовать следующие вещи, повеселитесь с Unidiffusion
cross attention (или convolution / feedforward / ...) слой.lr / weight decay / ... для разных слоев.ПРИМЕЧАНИЕ: Unidiffusion все еще находится в стадии разработки. Некоторые модули заимствованы из других репозитории кода и еще не были протестированы, особенно компоненты, которые не включены по умолчанию в системе конфигурации. Мы усердно работаем, чтобы улучшить этот проект.
В Unidiffusion все методы обучения разлагаются на три измерения
Это позволяет нам проводить унифицированный тренировочный трубопровод с сильной системой конфигурации.
Вот простой пример. В диффузорах обучение text-to-image finetune и dreambooth Like:
python train_dreambooth.py --arg ......
python train_finetune.py --arg ......и комбинирование или корректировка некоторых методов затруднено (например, обучение только к перекрестному вниманию во время Dreambooth).
В Unidiffusion мы можем легко разработать наши собственные учебные аргументы в файле конфигурации:
# text-to-image finetune
unet . training_args = { '' : { 'mode' : 'finetune' }}
# text-to-image finetune with lora
unet . training_args = { '' : { 'mode' : 'lora' }}
# update cross attention with lora
unet . training_args = { 'attn2' : { 'mode' : 'lora' }}
# dreambooth
unet . training_args = { '' : { 'mode' : 'finetune' }}
text_encoder . training_args = { 'text_embedding' : { 'initial' : True }}
# dreambooth with small lr for text-encoder
unet . training_args = { '' : { 'mode' : 'finetune' }}
text_encoder . training_args = { 'text_embedding' : { 'initial' : True , 'optim_kwargs' : { 'lr' : 1e-6 }}}а затем беги
accelerate launch scripts/train.py --config-file /path/to/your/configЭто облегчает более легкую настройку, комбинацию и улучшение методов, а также позволяет сравнивать сходства и различия между методами с помощью файлов конфигурации.
В Unidiffusion мы предоставляем регулярную систему сопоставления для выбора модуля. Это позволяет нам выбирать модули при регулярном сопоставлении. См. Регулярное соответствие для выбора модуля для получения более подробной информации.
Мы оказываем мощную поддержку методам PEFT/PETL. См. Методы PEFT/PETL для более подробной информации.
pip install -e requirements.txtaccelerate config
wandb loginСм. Текстовую инверсию поезда / Dreambooth / Lora / Text-To-Image Finetune для деталей.
accelerate launch scrits/common.py --config-file configs/train/text_to_image_finetune.pyПримечание. Методы персонализации разлагаются в тренировочных параметрах, методах PEFT/PETL и процессе обучения в универфузии. См. Файл конфигурации для получения более подробной информации.
Мы собираемся добавить следующие функции в будущем. Мы также приветствуем вклад сообщества. Не стесняйтесь выносить запросы или открывать проблему, чтобы обсудить идеи для новых функций.
Мы приветствуем вклад сообщества с открытым исходным кодом!
Если вы используете этот набор инструментов в своем исследовании или хотите ссылаться на базовые результаты, опубликованные здесь, используйте следующие записи Bibtex:
@misc { pu2022diffusion ,
author = { Pu Cao, Tianrui Huang, Lu Yang, Qing Song } ,
title = { UniDiffusion } ,
howpublished = { url{https://github.com/PRIV-Creation/UniDiffusion} } ,
year = { 2023 }
}