تنفيذ Lumiere، توليد SOTA من النص إلى الفيديو من Google Deepmind، في Pytorch
مراجعة ورقة يانيك
نظرًا لأن هذه الورقة في الغالب مجرد عدد قليل من الأفكار الأساسية فوق نموذج تحويل النص إلى صورة، فسوف تأخذها خطوة إلى الأمام وتوسع شبكة Karras U-net الجديدة لتشمل الفيديو داخل هذا المستودع.
$ pip install lumiere-pytorch
import torch
from lumiere_pytorch import MPLumiere
from denoising_diffusion_pytorch import KarrasUnet
karras_unet = KarrasUnet (
image_size = 256 ,
dim = 8 ,
channels = 3 ,
dim_max = 768 ,
)
lumiere = MPLumiere (
karras_unet ,
image_size = 256 ,
unet_time_kwarg = 'time' ,
conv_module_names = [
'downs.1' ,
'ups.1' ,
'downs.2' ,
'ups.2' ,
],
attn_module_names = [
'mids.0'
],
upsample_module_names = [
'ups.2' ,
'ups.1' ,
],
downsample_module_names = [
'downs.1' ,
'downs.2'
]
)
noised_video = torch . randn ( 2 , 3 , 8 , 256 , 256 )
time = torch . ones ( 2 ,)
denoised_video = lumiere ( noised_video , time = time )
assert noised_video . shape == denoised_video . shape
إضافة كافة الطبقات الزمنية
فضح المعلمات الزمنية للتعلم فقط، وتجميد كل شيء آخر
اكتشف أفضل طريقة للتعامل مع تكييف الوقت بعد الاختزال الزمني - بدلاً من تحويل pytree في البداية، ربما ستحتاج إلى ربط جميع الوحدات وفحص أحجام الدُفعات
التعامل مع الوحدات المتوسطة التي قد يكون لها شكل مخرجات مثل (batch, seq, dim)
باتباع استنتاجات Tero Karras، ارتجل نسخة مختلفة من الوحدات الأربع مع الحفاظ على الحجم
اختبار على imagen-pytorch
انظر إلى الانتشار المتعدد واكتشف ما إذا كان من الممكن تحويله إلى غلاف بسيط
@inproceedings { BarTal2024LumiereAS ,
title = { Lumiere: A Space-Time Diffusion Model for Video Generation } ,
author = { Omer Bar-Tal and Hila Chefer and Omer Tov and Charles Herrmann and Roni Paiss and Shiran Zada and Ariel Ephrat and Junhwa Hur and Yuanzhen Li and Tomer Michaeli and Oliver Wang and Deqing Sun and Tali Dekel and Inbar Mosseri } ,
year = { 2024 } ,
url = { https://api.semanticscholar.org/CorpusID:267095113 }
}
@article { Karras2023AnalyzingAI ,
title = { Analyzing and Improving the Training Dynamics of Diffusion Models } ,
author = { Tero Karras and Miika Aittala and Jaakko Lehtinen and Janne Hellsten and Timo Aila and Samuli Laine } ,
journal = { ArXiv } ,
year = { 2023 } ,
volume = { abs/2312.02696 } ,
url = { https://api.semanticscholar.org/CorpusID:265659032 }
}