StreamingSVD هي تقنية انحدار تلقائي متقدمة لإنشاء تحويل النص إلى فيديو ومن صورة إلى فيديو، وإنشاء مقاطع فيديو طويلة عالية الجودة مع ديناميكيات حركة غنية، وتحويل SVD إلى مولد فيديو طويل. تضمن طريقتنا الاتساق الزمني في جميع أنحاء الفيديو، وتتوافق بشكل وثيق مع النص/الصورة المدخلة، وتحافظ على جودة صورة عالية على مستوى الإطار. تشتمل عروضنا التوضيحية على أمثلة ناجحة لمقاطع فيديو تصل إلى 200 إطار، وتمتد لمدة 8 ثوانٍ، ويمكن تمديدها لفترات أطول.
لا تقتصر فعالية نهج الانحدار الذاتي الأساسي على النموذج الأساسي المحدد المستخدم، مما يشير إلى أن التحسينات في النماذج الأساسية يمكن أن تؤدي إلى مقاطع فيديو ذات جودة أعلى. يعد StreamingSVD جزءًا من عائلة StreamingT2V. التنفيذ الناجح الآخر هو StreamingModelscope، الذي يحول Modelscope إلى مولد فيديو طويل. يتيح هذا الأسلوب إنشاء مقاطع فيديو تصل مدتها إلى دقيقتين، وتتميز بكمية حركة عالية وبدون ركود.
يمكن العثور على النتائج التفصيلية في صفحة المشروع.
يحتاج الكود الخاص بنا إلى 60 جيجابايت من VRAM في الإعداد الافتراضي (عند إنشاء 200 إطار). حاول تقليل عدد الإطارات أو تنشيط المزج العشوائي لتقليل مساحة الذاكرة. تم اختبار الكود الخاص بنا على نظام Linux، باستخدام Python 3.9 وCUDA 11.7.
git clone https://github.com/Picsart-AI-Research/StreamingT2V.git
cd StreamingT2V/
virtualenv -p python3.9 venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
لتشغيل المسار بأكمله الذي يتكون من تحويل صورة إلى فيديو، وتحسين الفيديو (بما في ذلك المزج العشوائي الخاص بنا) واستيفاء إطار الفيديو، قم بذلك من مجلد StreamingT2V
:
cd code
python inference_i2v.py --input $INPUT --output $OUTPUT
يجب أن يكون $INPUT
هو المسار إلى ملف صورة أو مجلد يحتوي على صور. من المتوقع أن تكون نسبة العرض إلى الارتفاع لكل صورة 16:9.
يجب أن يكون $OUTPUT
هو المسار إلى المجلد حيث سيتم تخزين النتائج.
أضف --num_frames $FRAMES
إلى المكالمة لتحديد عدد الإطارات التي سيتم إنشاؤها. القيمة الافتراضية: $FRAMES=200
أضف --use_randomized_blending $RB
إلى المكالمة لتحديد ما إذا كان سيتم استخدام المزج العشوائي. القيمة الافتراضية: $RB=False
. عند استخدام المزج العشوائي، فإن القيم الموصى بها لمعلمات chunk_size
overlap_size
هي --chunk_size 38
و --overlap_size 12
، على التوالي. يرجى العلم أن المزج العشوائي سيؤدي إلى إبطاء عملية الإنشاء، لذا حاول تجنبه إذا كان لديك ذاكرة GPU كافية.
أضف --out_fps $FPS
إلى المكالمة لتحديد FPS لفيديو الإخراج. القيمة الافتراضية: $FPS=24
يتم توفير خطأ Motion Aware Warp Error (انظر ورقتنا البحثية) هنا.
يمكن الآن العثور على رمز نموذج StreamingT2V المستند إلى Modelscope، كما هو موضح في ورقتنا، هنا.
يتم نشر الكود والنموذج الخاص بنا بموجب ترخيص MIT.
نقوم بتضمين الرموز والأوزان النموذجية لـ SVD وEMA-VFI وI2VGen-XL. يرجى الرجوع إلى تراخيصهم الأصلية فيما يتعلق بأكوادهم وأوزانهم. ونظرًا لهذه التبعيات، لا يمكن استخدام StreamingSVD إلا لأغراض بحثية غير تجارية.
إذا كنت تستخدم عملنا في بحثك، يرجى ذكر منشورنا:
@article{henschel2024streamingt2v,
title={StreamingT2V: Consistent, Dynamic, and Extendable Long Video Generation from Text},
author={Henschel, Roberto and Khachatryan, Levon and Hayrapetyan, Daniil and Poghosyan, Hayk and Tadevosyan, Vahram and Wang, Zhangyang and Navasardyan, Shant and Shi, Humphrey},
journal={arXiv preprint arXiv:2403.14773},
year={2024}
}