التنقل في آية Uni من نماذج الانتشار مع سير العمل uni fied.

Unidiffusion هو صندوق أدوات يوفر خوارزميات التدريب والاستدلال الحديثة ، على أساس الناشرون. يهدف Unidiffusion إلى الباحثين والمستخدمين الذين يرغبون في تخصيص تدريب الانتشار المستقر بعمق. نأمل أن يوفر مستودع الرمز هذا الدعم الممتاز لتمديدات الأبحاث والتطبيق المستقبلية.
إذا كنت ترغب أيضًا في تنفيذ الأشياء التالية ، فاستعمل مع Unidiffusion
cross attention فقط (أو convolution / feedforward / ...) طبقة.lr / weight decay / ... لطبقات مختلفة.ملاحظة: لا يزال التوطين قيد التطوير. يتم استعارة بعض الوحدات النمطية من مستودعات الرموز الأخرى ولم يتم اختبارها بعد ، خاصة المكونات التي لم يتم تمكينها افتراضيًا في نظام التكوين. نحن نعمل بجد لتحسين هذا المشروع.
في Unidiffusion ، تتحلل جميع أساليب التدريب إلى ثلاثة أبعاد
يسمح لنا بإجراء خط أنابيب تدريب موحد مع نظام تكوين قوي.
هنا مثال بسيط. في الناشرون ، تدريب 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 / text-to-image finetune للحصول على التفاصيل.
accelerate launch scrits/common.py --config-file configs/train/text_to_image_finetune.pyملاحظة: تحلل طرق التخصيص في المعلمات القابلة للتدريب ، وطرق PEFT/PETL ، وعملية التدريب في Unidiffusion. انظر ملف التكوين لمزيد من التفاصيل.
سنضيف الميزات التالية في المستقبل. نرحب أيضًا بالمساهمات من المجتمع. لا تتردد في سحب الطلبات أو فتح مشكلة لمناقشة الأفكار للميزات الجديدة.
نرحب بالمساهمات من مجتمع المصدر المفتوح!
إذا كنت تستخدم صندوق الأدوات هذا في بحثك أو ترغب في الرجوع إلى نتائج خط الأساس المنشورة هنا ، فيرجى استخدام إدخالات bibtex التالية:
@misc { pu2022diffusion ,
author = { Pu Cao, Tianrui Huang, Lu Yang, Qing Song } ,
title = { UniDiffusion } ,
howpublished = { url{https://github.com/PRIV-Creation/UniDiffusion} } ,
year = { 2023 }
}