Tammy هو مشروع مفتوح المصدر قائم على Python/Pytorch يستخدم نماذج التعلم العميق لإنشاء مقاطع فيديو موسيقية أصلية. فهو يسمح للمستخدمين بإنشاء مقاطع فيديو تلقائيًا بناءً على انتقالات نصية سريعة تتم مزامنتها مع جوانب مختلفة من الأغنية ، مثل BPM أو نمط البيانو. يستخدم المشروع نماذج التعلم العميق في مراحل مختلفة من عملية إنشاء الفيديو، بما في ذلك فصل مصدر الصوت باستخدام LSTMs، وإنشاء الإطارات باستخدام شبكات GAN، والارتقاء المكاني باستخدام نماذج فائقة الدقة، والتقريب الزمني باستخدام نماذج استيفاء الإطار. الهدف من هذا المشروع هو توفير إطار عمل سهل الاستخدام لإنشاء خطوط أنابيب نموذجية مخصصة لإنشاء مقاطع فيديو موسيقية فريدة.
سمات
بداية سريعة
تدفق البيانات وهيكل التعليمات البرمجية
إعدادات الجيل
المزيد من الأمثلة
المساهمة
لبداية سريعة:
sudo apt-get install ffmpeg libsndfile1
و git-lfs.pip install .
python run_tammy.py
الذي سيستخدم الإعدادات الافتراضية في settingssettings_cpu.yaml
والأغنية الافتراضية thoughtsarebeings_clip.wav
. يمكن استخدام حزمة tammy
بسهولة في البرنامج النصي الخاص بك أو يمكن استخدام ملفات الإعداد الأخرى وملفات الصوت مع البرنامج النصي run_tammy.py
الموجود عن طريق تشغيل python run_tammy.py --settings_file
.
tammy.prompthandler
بإنشاء الإعدادات لكل إطار سيتم إنشاؤه (مثل الترجمة أو المطالبة النصية) استنادًا إلى وصف أكثر إيجازًا لإعدادات الإنشاء.tammy.sequence_maker
على generator
يقوم بإنشاء تسلسل صور بناءً على مطالبات نصية. النماذج المدعومة حاليًا هي VQGAN-CLIP و Stable-Diffusiontammy.upscaling
بتحجيم الصور التي تم إنشاؤها بدقة فائقة. النموذج الوحيد المدعوم حاليًا هو SwinIR .tammy.superslowmo
يقحم الصور التي تم إنشاؤها (ترقيتها اختياريًا) لزيادة معدل الإطارات في الثانية دون الحاجة إلى إنشاء كل إطار باستخدام sequence_maker
. النموذج الوحيد المدعوم حاليًا هو SuperSloMo . يحتوي إنشاء الفيديو على العديد من إعدادات التكوين المحددة في ملف
. يمكن العثور على بعض أمثلة ملفات الإعدادات، المستخدمة في الغالب للاختبار، في مجلد settings
. يجب أن تكون معظم أسماء الإعدادات (المفاتيح الموجودة في settings.yaml
) واضحة بذاتها. من أجل الوضوح، يتم شرح بعض الإعدادات أدناه.
يتم استخدام الأدوات لتوجيه انتقالات الإطارات، على وجه الخصوص: التكبير في وضع Animation_2d وسرعة الانتقال السريعة في وضع الاستيفاء. لدى tammy
خياران لتوفير الأدوات:
do_spleet: True
وقم بتوفير instrument:
zoom_instrument:
وقم بتسمية الملف: file_name_fps.txt
حيث يجب أن يتوافق fps
مع قيمة fps
في sequence_settings.initial_fps
. يمكن إنشاء الإطارات الرئيسية يدويًا باستخدام https://www.chigozie.co.uk/audio-keyframe-generator/ على سبيل المثال يحدد الإعداد sequence_settings.initial_fps
عدد الإطارات التي تم إنشاؤها، مع مراعاة طول مقطع الصوت. باستخدام استيفاء الإطارات، يمكن زيادة معدل الإطارات إلى هدف عن طريق تعيين do_slowmo: True
وتوفير target_fps
الذي يجب أن يكون مضاعفًا لـ initial_fps
. وهذا يسمح بإنتاج مقاطع فيديو ذات معدل إطارات مرتفع بشكل أسرع مقارنة بإنشاء جميع الإطارات من الصفر باستخدام generator
.
إذا رغبت في ذلك، يمكن تحديد عدد الإطارات التي تم إنشاؤها من خلال توفير sequence_settings.max_frames
. في هذه الحالة، سيكون طول الفيديو الذي تم إنشاؤه أقصر من مقطع الصوت المقدم وسيكون: max_frames
/ initial_fps
.
تم إنشاء الفيديو باستخدام وضع VQGAN-CLIP وAnimation_2d من tammy
.
الفيديو كاملاً (شاهده بدقة 4K للحصول على أفضل تجربة!: https://www.youtube.com/watch?v=T_bii9VLDk0
تم إنشاء مقاطع الفيديو باستخدام وضع Stable Diffusion and Interpolation من tammy
.
.pytest
.pre-commit install
.