Hotshot-XL هو نموذج AI لتحويل النص إلى GIF تم تدريبه للعمل جنبًا إلى جنب مع Stable Diffusion XL.
يمكن لـ Hotshot-XL إنشاء صور GIF باستخدام أي نموذج SDXL مضبوط بدقة. وهذا يعني شيئين:
ستتمكن من إنشاء صور GIF باستخدام أي نموذج SDXL موجود أو تم ضبطه حديثًا قد ترغب في استخدامه.
إذا كنت ترغب في إنشاء صور GIF لموضوعات مخصصة، فيمكنك تحميل LORAs المستندة إلى SDXL، ولا داعي للقلق بشأن ضبط Hotshot-XL. يعد هذا أمرًا رائعًا لأنه عادةً ما يكون العثور على الصور المناسبة لبيانات التدريب أسهل بكثير من العثور على مقاطع الفيديو. ونأمل أيضًا أن يتناسب مع استخدام/سير عمل LORA الحالي للجميع :) شاهد المزيد هنا.
يتوافق Hotshot-XL مع SDXL ControlNet لإنشاء صور GIF بالتكوين/التخطيط الذي تريده. راجع قسم ControlNet أدناه.
تم تدريب Hotshot-XL على إنشاء صور GIF مدتها ثانية واحدة بمعدل 8 إطارات في الثانية.
تم تدريب Hotshot-XL على نسب العرض إلى الارتفاع المختلفة. للحصول على أفضل النتائج مع نموذج Hotshot-XL الأساسي، نوصي باستخدامه مع نموذج SDXL الذي تم ضبطه بدقة باستخدام صور مقاس 512 × 512. يمكنك العثور على نموذج SDXL الذي قمنا بضبطه بدقة للحصول على دقة 512 × 512 هنا.
جرب Hotshot-XL بنفسك هنا: https://www.hotshot.co
أو، إذا كنت ترغب في تشغيل Hotshot-XL بنفسك محليًا، فتابع إلى الأقسام أدناه.
إذا كنت تقوم بتشغيل Hotshot-XL بنفسك، فستكون قادرًا على التمتع بقدر أكبر من المرونة/التحكم في النموذج. وكمثال بسيط جدًا، ستتمكن من تغيير جهاز أخذ العينات. لقد رأينا أفضل النتائج مع Euler-A حتى الآن، ولكن قد تجد نتائج مثيرة للاهتمام مع بعض النتائج الأخرى.
pip install virtualenv --upgrade virtualenv -p $(which python3) venv source venv/bin/activate pip install -r requirements.txt
# Make sure you have git-lfs installed (https://git-lfs.com) git lfs install git clone https://huggingface.co/hotshotco/Hotshot-XL
أو قم بزيارة https://huggingface.co/hotshotco/Hotshot-XL
ملحوظة : لزيادة كفاءة البيانات والتدريب إلى أقصى حد، تم تدريب Hotshot-XL على نسب عرض إلى ارتفاع مختلفة تبلغ دقة 512 × 512. للحصول على أفضل النتائج مع طراز Hotshot-XL الأساسي، نوصي باستخدامه مع طراز SDXL الذي تم ضبطه بدقة مع صور بدقة تبلغ حوالي 512 × 512. يمكنك تنزيل نموذج SDXL الذي قمنا بتدريبه بالصور بدقة 512 × 512 أدناه، أو إحضار نموذج SDXL الأساسي الخاص بك.
# Make sure you have git-lfs installed (https://git-lfs.com) git lfs install git clone https://huggingface.co/hotshotco/SDXL-512
أو قم بزيارة https://huggingface.co/hotshotco/SDXL-512
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif"
ماذا تتوقع:
اِسْتَدْعَى | الغوص الساسكواتش | جمل يدخن سيجارة | رونالد ماكدونالد يجلس أمام مرآة الزينة ويضع أحمر الشفاه | دريك يلعق شفتيه ويحدق من خلال النافذة في كب كيك |
---|---|---|---|---|
الإخراج |
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --spatial_unet_base="path/to/stabilityai/stable-diffusion-xl-base-1.0/unet" --lora="path/to/lora"
ماذا تتوقع:
ملاحظة : تستخدم المخرجات أدناه DDIMScheduler.
اِسْتَدْعَى | شخص يسأل يصرخ في شمس كابري | يسأل الشخص تقبيل الضفدع كيرميت | sks شخص يرتدي بدلة رسمية يحمل كأسًا من الشمبانيا الألعاب النارية في الخلفية hd جودة عالية 4K |
---|---|---|---|
الإخراج |
python inference.py --prompt="a girl jumping up and down and pumping her fist, hd, high quality" --output="output.gif" --control_type="depth" --gif="https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExbXNneXJicG1mOHJ2dzQ2Y2JteDY1ZWlrdjNjMjl3ZWxyeWFxY2EzdyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/YOTAoXBgMCmFeQQzuZ/giphy.gif"
افتراضيًا، سيقوم Hotshot-XL بإنشاء إطارات رئيسية من ملف GIF المصدر الخاص بك باستخدام 8 إطارات متساوية المسافات واقتصاص الإطارات الرئيسية إلى نسبة العرض إلى الارتفاع الافتراضية. للحصول على تحكم أكثر دقة، تعرف على كيفية تغيير نسب العرض إلى الارتفاع وتغيير معدلات/أطوال الإطارات.
يدعم Hotshot-XL حاليًا استخدام نموذج ControlNet واحد في كل مرة؛ سيكون دعم Multi-ControlNet أمرًا مثيرًا.
ماذا تتوقع:
اِسْتَدْعَى | فتاة على طراز بيكسار ترفع إبهاميها، سعيدة، عالية الجودة، 8 كيه، ثلاثية الأبعاد، رسوم متحركة من ديزني | كيانو ريفز يحمل لافتة مكتوب عليها "مساعدة"، عالية الجودة، وعالية الجودة | امرأة تضحك بجودة عالية hd | باراك أوباما يصنع قوس قزح بأيديهم، وكلمة "سحر" أمامهم، ويرتدي هودي مخطط باللونين الأزرق والأبيض، بدقة عالية، جودة عالية |
---|---|---|---|---|
الإخراج | ||||
يتحكم |
ملاحظة : تم تدريب نموذج SDXL الأساسي لإنشاء صور بدقة تبلغ 1024 × 1024 بشكل أفضل. لتحقيق أقصى قدر من كفاءة البيانات والتدريب، تم تدريب Hotshot-XL على نسب عرض إلى ارتفاع تبلغ حوالي 512x512. يرجى الاطلاع على ملاحظات إضافية للحصول على قائمة بنسب العرض إلى الارتفاع التي تم تدريب نموذج Hotshot-XL الأساسي عليها.
مثل SDXL، تم تدريب Hotshot-XL على نسب عرض إلى ارتفاع مختلفة مع تجميع نسبة العرض إلى الارتفاع، ويتضمن دعمًا لمعلمات SDXL مثل الحجم المستهدف والحجم الأصلي. هذا يعني أنه يمكنك إنشاء صور GIF بعدة أبعاد ودرجات دقة مختلفة، فقط باستخدام نموذج Hotshot-XL الأساسي.
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --width=<WIDTH> --height=<HEIGHT>
ماذا تتوقع:
512x512 | 672x384 | 384x672 | |
---|---|---|---|
قرد يعزف على الجيتار، لقطات من الطبيعة، جودة عالية، HD |
افتراضيًا، يتم تدريب Hotshot-XL على إنشاء صور GIF مدتها ثانية واحدة بمعدل 8 إطارات في الثانية. إذا كنت ترغب في إنشاء صور GIF بمعدلات إطارات وأطوال زمنية مختلفة، فيمكنك تجربة المعلمات video_length
و video_duration
.
video_length
يضبط عدد الإطارات. القيمة الافتراضية هي 8.
يقوم video_duration
بتعيين وقت تشغيل ملف GIF الناتج بالمللي ثانية. القيمة الافتراضية هي 1000.
يرجى ملاحظة أنه يجب أن تتوقع نتائج غير مستقرة/"متوترة" عند تعديل هذه المعلمات حيث تم تدريب النموذج فقط على مقاطع فيديو مدتها ثانية واحدة بمعدل 8 إطارات في الثانية. ستتمكن من تحسين استقرار النتائج لفترات زمنية مختلفة ومعدلات إطارات من خلال الضبط الدقيق لـ Hotshot-XL. يرجى إعلامنا إذا قمت بذلك!
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.gif" --video_length=16 --video_duration=2000
تم تدريب Hotshot-XL على إنشاء صور GIF جنبًا إلى جنب مع SDXL. إذا كنت ترغب في إنشاء صورة فقط، فيمكنك ببساطة تعيين video_length=1
في استدعاء الاستدلال الخاص بك وسيتم تجاهل طبقات Hotshot-XL المؤقتة، كما تتوقع.
python inference.py --prompt="a bulldog in the captains chair of a spaceship, hd, high quality" --output="output.jpg" --video_length=1
تم تدريب Hotshot-XL على نسب العرض إلى الارتفاع التالية؛ لإنشاء صور GIF بشكل موثوق خارج نطاق نسب العرض إلى الارتفاع هذه، ستحتاج إلى ضبط Hotshot-XL بدقة مع مقاطع الفيديو بدقة نسبة العرض إلى الارتفاع المطلوبة.
نسبة الارتفاع | مقاس |
---|---|
0.42 | 320 × 768 |
0.57 | 384 × 672 |
0.68 | 416 × 608 |
1.00 | 512 × 512 |
1.46 | 608 × 416 |
1.75 | 672 × 384 |
2.40 | 768 × 320 |
يتعلق القسم التالي بضبط النموذج الزمني Hotshot-XL مع أزواج نص/فيديو إضافية. إذا كنت تحاول إنشاء صور GIF للمفاهيم/الموضوعات المخصصة، فإننا نوصي بعدم ضبط Hotshot-XL، ولكن بدلاً من ذلك تدريب LORAs المستندة إلى SDXL الخاصة بك وتحميلها فقط.
يتوقع البرنامج النصي fine_tune.py
أن يتم تنظيم العينات الخاصة بك على النحو التالي:
fine_tune_dataset ├── sample_001 │ ├── 0.jpg │ ├── 1.jpg │ ├── 2.jpg ... ... │ ├── n.jpg │ └── prompt.txt
يجب أن يحتوي كل دليل نموذجي على الإطارات الرئيسية n وملف prompt.txt
.txt الذي يحتوي على المطالبة. سيتم حفظ نقطة التحقق النهائية في output_dir
. لقد وجدنا أنه من المفيد إرسال صور GIF للتحقق من الصحة إلى الأوزان والتحيزات بين الحين والآخر. إذا اخترت استخدام التحقق من الصحة مع الأوزان والتحيزات، فيمكنك تعيين عدد مرات تشغيل ذلك باستخدام معلمة validate_every_steps
.
accelerate launch fine_tune.py --output_dir="<OUTPUT_DIR>" --data_dir="fine_tune_dataset" --report_to="wandb" --run_validation_at_start --resolution=512 --mixed_precision=fp16 --train_batch_size=4 --learning_rate=1.25e-05 --lr_scheduler="constant" --lr_warmup_steps=0 --max_train_steps=1000 --save_n_steps=20 --validate_every_steps=50 --vae_b16 --gradient_checkpointing --noise_offset=0.05 --snr_gamma --test_prompts="man sits at a table in a cafe, he greets another man with a smile and a handshakes"
هناك العديد من الطرق التي نتحمس بها لتحسين Hotshot-XL. على سبيل المثال:
ضبط Hotshot-XL بدقة بمعدلات إطارات أكبر لإنشاء صور GIF ذات معدل إطارات أطول/أعلى
ضبط Hotshot-XL بدقة أكبر لإنشاء صور GIF ذات دقة أعلى
تدريب الطبقات المؤقتة على أداة الارتقاء الكامنة لإنتاج صور GIF ذات دقة أعلى
تدريب نموذج "التنبؤ بالإطار" المكيف للصور للحصول على صور GIF أكثر تماسكًا وأطول
تدريب الطبقات الزمنية لـ VAE للتخفيف من الوميض/التردد في المخرجات
دعم Multi-ControlNet للتحكم بشكل أكبر في إنشاء صور GIF
تدريب ودمج نماذج ControlNet المختلفة لمزيد من التحكم في إنشاء صور GIF (سيكون التحكم الدقيق في تعبيرات الوجه أمرًا رائعًا للغاية)
نقل Hotshot-XL إلى AITemplate للحصول على أوقات استدلال أسرع
نحن ؟ مساهمات من مجتمع المصادر المفتوحة! يرجى إعلامنا بالمشاكل أو العلاقات العامة إذا كنت مهتمًا بالعمل على هذه التحسينات أو أي شيء آخر!
@software{Mullan_Hotshot-XL_2023, author = {Mullan, John and Crawbuck, Duncan and Sastry, Aakash}, license = {Apache-2.0}, month = oct, title = {{Hotshot-XL}}, url = {https://github.com/hotshotco/hotshot-xl}, version = {1.0.0}, year = {2023} }
تتحسن نماذج تحويل النص إلى فيديو بسرعة وقد تم استلهام تطوير Hotshot-XL بشكل كبير من الأعمال والفرق الرائعة التالية:
SDXL
محاذاة الكامنة الخاصة بك
اصنع فيديو
AnimateDiff
فيديو إيماجين
نأمل أن يساعد إصدار هذا النموذج/قاعدة التعليمات البرمجية المجتمع على مواصلة دفع هذه الأدوات الإبداعية إلى الأمام بطريقة منفتحة ومسؤولة.