Navigieren Sie durch den Uni -Vers der Diffusionsmodelle mit einem uni -Fied -Workflow.

Unidiffusion ist eine Toolbox, die hochmoderne Trainings- und Inferenzalgorithmen bietet, die auf Diffusoren basieren. Unidiffusion richtet sich an Forscher und Benutzer, die das Training der stabilen Verbreitung tief anpassen möchten. Wir hoffen, dass dieses Code -Repository eine hervorragende Unterstützung für zukünftige Forschungs- und Anwendungserweiterungen bietet.
Wenn Sie auch die folgenden Dinge implementieren möchten, haben Sie Spaß mit Unidiffusion
cross attention (oder convolution / feedforward / ...).lr / weight decay / ... für verschiedene Schichten.Hinweis: Unidiffusion befindet sich noch in der Entwicklung. Einige Module werden von anderen Code -Repositories ausgeliehen und wurden noch nicht getestet, insbesondere die Komponenten, die im Konfigurationssystem nicht standardmäßig aktiviert sind. Wir arbeiten hart daran, dieses Projekt zu verbessern.
In Unidiffusion werden alle Trainingsmethoden in drei Dimensionen zerlegt
Es ermöglicht uns, eine einheitliche Trainingspipeline mit einem starken Konfigurationssystem durchzuführen.
Hier ist ein einfaches Beispiel. In Diffusoren Training text-to-image finetune und dreambooth wie:
python train_dreambooth.py --arg ......
python train_finetune.py --arg ......und die Kombination oder Anpassung einiger der Methoden sind schwierig (z. B. nur die Aufmerksamkeit der Kreuzung während des Dreambooth).
In Unidiffusion können wir unsere eigenen Trainingsargumente in der Konfigurationsdatei problemlos entwerfen:
# 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 }}}und dann rennen
accelerate launch scripts/train.py --config-file /path/to/your/configDies erleichtert die Anpassung, Kombination und Verbesserung von Methoden und ermöglicht auch den Vergleich von Ähnlichkeiten und Unterschieden zwischen den Methoden durch Konfigurationsdateien.
In Unidiffusion bieten wir ein regelmäßiges Matching -System für die Modulauswahl. Es ermöglicht uns, Module durch reguläre Übereinstimmung auszuwählen. Weitere Informationen finden Sie unter regelmäßiger Übereinstimmung für die Modulauswahl.
Wir bieten eine leistungsstarke Unterstützung für PEFT/PETL -Methoden. Weitere Informationen finden Sie unter PEFT/PETL -Methoden.
pip install -e requirements.txtaccelerate config
wandb loginWeitere Informationen finden Sie unter dem Zug Textinversion / Dreambooth / Lora / Text-to-Image-Finetune.
accelerate launch scrits/common.py --config-file configs/train/text_to_image_finetune.pyHINWEIS: Personalisierungsmethoden sind zersetzt in trainierbaren Parametern, PEFT/PETL -Methoden und Schulungsprozess in Unidiffusion. Weitere Informationen finden Sie unter Konfigurationsdatei.
Wir werden in Zukunft die folgenden Funktionen hinzufügen. Wir begrüßen auch Beiträge der Community. Fühlen Sie sich frei, Anfragen zu ziehen oder ein Problem zu öffnen, um Ideen für neue Funktionen zu besprechen.
Wir begrüßen Beiträge der Open-Source-Community!
Wenn Sie diese Toolbox in Ihrer Forschung verwenden oder sich auf die hier veröffentlichten Basisergebnisse beziehen möchten, verwenden Sie bitte die folgenden Bibtex -Einträge:
@misc { pu2022diffusion ,
author = { Pu Cao, Tianrui Huang, Lu Yang, Qing Song } ,
title = { UniDiffusion } ,
howpublished = { url{https://github.com/PRIV-Creation/UniDiffusion} } ,
year = { 2023 }
}