Navegue pelo versículo uni de modelos de difusão com fluxo de trabalho unido .

A Unidiffusion é uma caixa de ferramentas que fornece algoritmos de treinamento e inferência de última geração, com base em difusores. A Unidiffusion visa pesquisadores e usuários que desejam personalizar profundamente o treinamento de difusão estável. Esperamos que este repositório de código possa fornecer excelente suporte para futuras extensões de pesquisa e aplicação.
Se você também deseja implementar as seguintes coisas, divirta -se com unidiffusion
cross attention (ou convolution / feedforward / ...) camada.lr / weight decay / ... para Camadas Diferentes.Nota: A unidifusão ainda está em desenvolvimento. Alguns módulos são emprestados de outros repositórios de código e ainda não foram testados, especialmente os componentes que não são ativados por padrão no sistema de configuração. Estamos trabalhando duro para melhorar este projeto.
Na unidifusão, todos os métodos de treinamento são decompostos em três dimensões
Ele permite que realizemos um pipeline de treinamento unificado com um sistema de configuração forte.
Aqui está um exemplo simples. Nos difusores, o treinamento text-to-image finetune e dreambooth como:
python train_dreambooth.py --arg ......
python train_finetune.py --arg ......E combinar ou ajustar alguns dos métodos é difícil (por exemplo, apenas o treinamento atravessa a atenção durante o Dreambooth).
Na Unidiffusion, podemos facilmente projetar nossos próprios argumentos de treinamento no arquivo de configuração:
# 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 }}}e depois corra
accelerate launch scripts/train.py --config-file /path/to/your/configIsso facilita a personalização, a combinação e o aprimoramento mais fácil dos métodos e também permite a comparação de semelhanças e diferenças entre os métodos por meio de arquivos de configuração.
Na Unidiffusion, fornecemos um sistema de correspondência regular para seleção de módulos. Ele nos permite selecionar módulos por correspondência regular. Consulte a correspondência regular para seleção de módulos para obter mais detalhes.
Fornecemos um suporte poderoso aos métodos PEFT/PETL. Consulte os métodos PEFT/PETL para obter mais detalhes.
pip install -e requirements.txtaccelerate config
wandb loginConsulte o trem Inversão textual / Dreambooth / Lora / Text-to-Image Finetune para obter detalhes.
accelerate launch scrits/common.py --config-file configs/train/text_to_image_finetune.pyNota: Os métodos de personalização são decompõe em parâmetros treináveis, métodos PEFT/PETL e processo de treinamento em unidifusão. Consulte o arquivo de configuração para obter mais detalhes.
Vamos adicionar os seguintes recursos no futuro. Também recebemos contribuições da comunidade. Sinta -se à vontade para obter solicitações ou abrir um problema para discutir idéias para novos recursos.
Congratulamo-nos com contribuições da comunidade de código aberto!
Se você usar esta caixa de ferramentas em sua pesquisa ou desejar consultar os resultados da linha de base publicados aqui, use as seguintes entradas Bibtex:
@misc { pu2022diffusion ,
author = { Pu Cao, Tianrui Huang, Lu Yang, Qing Song } ,
title = { UniDiffusion } ,
howpublished = { url{https://github.com/PRIV-Creation/UniDiffusion} } ,
year = { 2023 }
}