DragDiffusion: تسخير نماذج الانتشار لتحرير الصور التفاعلية القائمة على النقاط
Yujun Shi Chuhui Xue Jun Hao Liew Jiachun Pan
هانشو يان ون تشينغ تشانغ فنسنت واي إف تان سونغ باي
تنصل
هذا مشروع بحثي، وليس منتج تجاري. يُمنح المستخدمون حرية إنشاء الصور باستخدام هذه الأداة، ولكن يُتوقع منهم الالتزام بالقوانين المحلية واستخدامها بطريقة مسؤولة. لا يتحمل المطورون أي مسؤولية عن سوء الاستخدام المحتمل من قبل المستخدمين.
الأخبار والتحديث
- [29 يناير] تحديث لدعم الناشرين==0.24.0!
- [23 أكتوبر] تم إصدار كود وبيانات DragBench! يرجى التحقق من README ضمن "drag_bench_evaluation" للحصول على التفاصيل.
- [16 أكتوبر] دمج FreeU عند سحب الصورة التي تم إنشاؤها.
- [3 أكتوبر] تسريع تدريب LoRA عند تحرير الصور الحقيقية. ( الآن حوالي 20 ثانية فقط على A100! )
- [3 سبتمبر] إصدار v0.1.0.
- تمكين سحب الصور الناتجة عن الانتشار.
- تقديم آلية توجيه جديدة تعمل على تحسين جودة نتائج السحب بشكل كبير. (مستوحاة من MasaCtrl)
- تمكين سحب الصور بنسبة عرض إلى ارتفاع عشوائية
- إضافة دعم لـ DPM++ Solver (الصور التي تم إنشاؤها)
- [18 يوليو] إصدار v0.0.1.
- دمج تدريب LoRA في واجهة المستخدم. لا حاجة لاستخدام البرنامج النصي للتدريب ويمكن القيام بكل شيء بسهولة في واجهة المستخدم!
- تحسين تخطيط واجهة المستخدم.
- تمكين استخدام VAE أفضل للعيون والوجوه (انظر هذا)
- [8 يوليو] إصدار v0.0.0.
- تنفيذ الوظيفة الأساسية لـ DragDiffusion
تثبيت
يوصى بتشغيل الكود الخاص بنا على وحدة معالجة الرسومات Nvidia بنظام Linux. لم نختبر بعد تكوينات أخرى. حاليًا، يتطلب الأمر حوالي 14 جيجابايت من ذاكرة GPU لتشغيل طريقتنا. سوف نستمر في تحسين كفاءة الذاكرة
لتثبيت المكتبات المطلوبة، ما عليك سوى تشغيل الأمر التالي:
conda env create -f environment.yaml
conda activate dragdiff
قم بتشغيل DragDiffusion
للبدء، في سطر الأوامر، قم بتشغيل ما يلي لبدء واجهة مستخدم Gradio:
يمكنك التحقق من ملف GIF أعلاه الذي يوضح استخدام واجهة المستخدم بطريقة خطوة بخطوة.
في الأساس، يتكون من الخطوات التالية:
الحالة 1: سحب الصور الحقيقية المدخلة
1) تدريب LoRA
- قم بإسقاط صورة الإدخال الخاصة بنا في المربع الموجود في أقصى اليسار.
- أدخل مطالبة تصف الصورة في حقل "المطالبة".
- انقر فوق الزر "تدريب LoRA" لتدريب LoRA بالنظر إلى الصورة المدخلة
2) قم بالتحرير "بالسحب".
- ارسم قناعًا في المربع الموجود في أقصى اليسار لتحديد المناطق القابلة للتحرير.
- انقر فوق المقبض والنقاط المستهدفة في المربع الأوسط. يمكنك أيضًا إعادة تعيين جميع النقاط بالنقر فوق "تراجع عن النقطة".
- انقر فوق الزر "تشغيل" لتشغيل الخوارزمية الخاصة بنا. سيتم عرض النتائج المعدلة في المربع الموجود في أقصى اليمين.
الحالة 2: سحب الصور الناتجة عن الانتشار
1) إنشاء صورة
- قم بملء معلمات الإنشاء (على سبيل المثال، الموجه الإيجابي/السلبي، والمعلمات ضمن تكوين الإنشاء ومعلمات FreeU).
- انقر فوق "إنشاء صورة".
2) قم "بالسحب" على الصورة التي تم إنشاؤها
- ارسم قناعًا في المربع الموجود في أقصى اليسار لتحديد المناطق القابلة للتحرير
- انقر فوق نقاط المقبض والنقاط المستهدفة في المربع الأوسط.
- انقر فوق الزر "تشغيل" لتشغيل الخوارزمية الخاصة بنا. سيتم عرض النتائج المعدلة في المربع الموجود في أقصى اليمين.
رخصة
الكود المتعلق بخوارزمية DragDiffusion موجود تحت ترخيص Apache 2.0.
بيبيتكس
إذا وجدت الريبو الخاص بنا مفيدًا، فيرجى التفكير في ترك نجمة أو الاستشهاد بمقالتنا :)
@article { shi2023dragdiffusion ,
title = { DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing } ,
author = { Shi, Yujun and Xue, Chuhui and Pan, Jiachun and Zhang, Wenqing and Tan, Vincent YF and Bai, Song } ,
journal = { arXiv preprint arXiv:2306.14435 } ,
year = { 2023 }
}
اتصال
إذا كانت لديك أي أسئلة حول هذا المشروع، يرجى الاتصال بـ Yujun ([email protected])
شكر وتقدير
هذا العمل مستوحى من DragGAN المذهل. تم تعديل كود تدريب لورا من مثال للناشرين. يتم جمع عينات الصور من Unsplash، Pexels، Pixabay. أخيرًا، تحية كبيرة لجميع نماذج ومكتبات النشر مفتوحة المصدر المذهلة.
روابط ذات صلة
- اسحب شبكة GAN الخاصة بك: معالجة تفاعلية قائمة على النقاط على مشعب الصور التوليدية
- MasaCtrl: التحكم في الاهتمام الذاتي المتبادل بدون ضبط لتوليف الصور وتحريرها بشكل متسق
- المراسلات الناشئة من نشر الصور
- DragonDiffusion: تمكين التلاعب بأسلوب السحب في نماذج الانتشار
- FreeDrag: تتبع النقاط ليس ضروريًا لتحرير الصور التفاعلي القائم على النقاط
القضايا والحلول المشتركة
- بالنسبة للمستخدمين الذين يجدون صعوبة في تحميل النماذج من المعانقة بسبب قيود الإنترنت، يرجى 1) اتباع هذه الروابط وتنزيل النموذج في الدليل "local_pretrained_models"؛ 2) قم بتشغيل "drag_ui.py" وحدد الدليل الخاص بنموذجك المُدرب مسبقًا في "معلمات الخوارزمية -> تكوين النموذج الأساسي -> مسار نموذج الانتشار".
يوسع