使用Uni Fied Workflow导航扩散模型的Uni诗歌。

Unidiffusion是一个工具箱,可根据扩散器提供最新的培训和推理算法。 Unidiffusion针对希望深入自定义稳定扩散培训的研究人员和用户。我们希望该代码存储库可以为未来的研究和应用扩展提供出色的支持。
如果您还想实施以下内容,请与Unidiffusion一起玩乐
cross attention (或convolution / feedforward / ...)层。lr / weight decay / ...。注意:一致开发仍在开发中。某些模块是从其他代码存储库中借来的,尚未进行测试,尤其是默认情况下,在配置系统中未启用的组件。我们正在努力改善该项目。
在一致中,所有训练方法都分解为三个维度
它允许我们使用强大的配置系统进行统一的培训管道。
这是一个简单的示例。在扩散器中,培训text-to-image finetune和dreambooth喜欢:
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 /文本对图像的芬日。
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 }
}