拡散モデルの宇宙をuni fiedワークフローでナビゲートします。

Unidiffusionは、ディフューザーに基づいて、最先端のトレーニングおよび推論アルゴリズムを提供するツールボックスです。 Unidiffusionは、安定した拡散のトレーニングを深くカスタマイズしたい研究者とユーザーを対象としています。このコードリポジトリが将来の研究とアプリケーションの拡張を優れたサポートを提供できることを願っています。
また、次のことを実装したい場合は、undiffusionを楽しんでください
cross attention (またはconvolution / feedforward / ...)レイヤー。lr / weight decayを設定します。注:拡散はまだ開発中です。一部のモジュールは、他のコードリポジトリから借用されており、特に設定システムでデフォルトで有効にされていないコンポーネント、特にテストされていません。私たちはこのプロジェクトを改善するために一生懸命働いています。
拡散では、すべてのトレーニング方法が3次元に分解されます
これにより、強力な構成システムを備えた統一されたトレーニングパイプラインを実施できます。
これが簡単な例です。ディフューザーでは、 text-to-image finetuneとdreamboothのようなもの:
python train_dreambooth.py --arg ......
python train_finetune.py --arg ......また、いくつかの方法を組み合わせたり調整したりすることは困難です(たとえば、DreamBoothの間に注意を払うだけのトレーニングのみ)。
Undiffusionでは、設定ファイルで独自のトレーニング引数を簡単に設計できます。
# 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これにより、メソッドの容易なカスタマイズ、組み合わせ、および強化が容易になり、構成ファイルを介したメソッド間の類似性と相違点の比較も可能になります。
Undiffusionでは、モジュールを選択するための通常のマッチングシステムを提供します。これにより、定期的なマッチングによってモジュールを選択できます。詳細については、モジュールの選択については、通常のマッチングを参照してください。
PEFT/PETLメソッドの強力なサポートを提供します。詳細については、PEFT/PETLメソッドを参照してください。
pip install -e requirements.txtaccelerate config
wandb login詳細については、Train Textual Textual Inversion / 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 }
}