Aimeriez-vous voir Mona Lisa sourire comme une sorcière ? Ou aimeriez-vous que la fille à la boucle d'oreille en perle fasse un clin d'œil et sourie ? Google vient de sortir un modèle de génération vidéo nommé Lumiere [1] capable de tout faire à votre place.
Bien qu’il s’agisse principalement d’un modèle texte-vidéo, il est capable de faire bien plus que cela. Étant donné une image de référence avec une invite, il peut styliser vos vidéos en copiant le style de l'image de référence dans vos vidéos.
Vous pouvez même éditer vos vidéos avec une seule invite. Le modèle est Lumiaire. Il est même capable d'animer des objets dans une région spécifiée par l'utilisateur dans une image, une technique appelée Cinemagraphs.
Lorsqu'il s'agit d'inpainting, Lumière est même capable de raisonner sur un objet complètement manquant, comme un gâteau dans cet exemple.
Tout se résume à un modèle de diffusion avec une nouvelle architecture spatio-temporelle U-Net [3]. Il s'agit d'une personnalisation de l'architecture U-Net pour résoudre le problème de cohérence temporelle assez répandu dans les modèles de génération vidéo.
Une explication visuelle du papier Lumière, de l'architecture du modèle et des résultats sont disponibles.
Nous savons tous que les vidéos sont une séquence d'images. Prenons donc une séquence d'images affichées dans la rangée supérieure de la figure ci-dessus. Si nous réduisons une seule ligne de l’image, indiquée par la ligne verte allant de gauche à droite, nous devons constater une transition douce des valeurs de pixels entre les images de la séquence.
Si la transition est fluide, nous ne verrons pas d'effet de saut pendant que nous regardons la vidéo.
Par exemple, si nous prenons Stable Video Diffusion [2] et regardons la vidéo d'un astronaute marchant sur la lune (ci-dessus), nous pouvons voir que ses mains disparaissent entre les images. En d’autres termes, la cohérence temporelle entre les trames fait défaut.
Ce type d'incohérence temporelle entre le temps et l'intensité dans la direction x peut être tracé sous la forme de la tranche XT, comme indiqué dans la figure ci-dessus. Et s’il y a une incohérence temporelle, elle est mise en évidence dans le tracé de la tranche XT.
Lumiere résout ce problème en introduisant un modèle de diffusion espace-temps et une architecture U-Net modifiée présente dans le modèle de diffusion.
Avant d'entrer dans les détails, commençons par le pipeline typique d'un modèle de génération texte vers vidéo.
Ces pipelines échantillonnent une image sur cinq en tant qu'images clés de la séquence vidéo d'entrée et entraînent un modèle de base capable de générer ces images clés à une résolution aussi basse que 128 x 128 à seulement 3 images par seconde.
Ensuite, la super résolution temporelle est utilisée pour augmenter la fréquence d'images en prédisant les images intermédiaires. La fréquence d'images passe désormais à 16 images par seconde.
La résolution spatiale de ces images est ensuite augmentée jusqu'à disons 1024 par 1024 par un réseau de superrésolution spatiale (SSR) qui mène finalement à notre vidéo générée.
Le modèle de base utilisé dans ce cadre est généralement un modèle de diffusion qui contient à son tour un U-Net.
Le pipeline proposé par Lumiere, quant à lui, traite toutes les images en même temps sans perdre d'images. Pour faire face au coût de calcul du traitement de toutes les trames, l'architecture du modèle de diffusion de base est modifiée pour aboutir à l'architecture spatio-temporelle UNet ou STUNet.
Comme STUNet traite toutes les trames d'entrée, le besoin de super résolution temporelle ou TSR est éliminé. Ainsi, le pipeline dispose toujours de la super-résolution spatiale ou SSR. Mais la nouveauté est l'introduction de MultiDiffusion.
Passons rapidement en revue l'U-Net avant d'examiner l'U-Net spatio-temporel. L'entrée du U-Net est une image en 3 dimensions avec une largeur W, une hauteur H et des canaux RVB. Après chaque étape de double convolution de l'U-Net, nous appliquons un pooling maximum pour sous-échantillonner ou réduire la dimension spatiale des entités. Cette étape de réduction de dimension spatiale est indiquée par les flèches rouges.
De même, pendant l'étape de décodeur, des convolutions ascendantes sont effectuées pour augmenter ou suréchantillonner la résolution jusqu'à la taille de l'entrée.
Lorsqu'il s'agit de vidéos, nous avons une dimension supplémentaire dans l'entrée qui est le temps. ainsi l'espace-temps U-Net propose de sous-échantillonner et de sur-échantillonner la vidéo non seulement dans la dimension spatiale mais aussi dans la dimension temporelle T. C'est l'idée principale du redimensionnement temporel et c'est la principale contribution de cet article Lumière.
Pour le redimensionnement, ils utilisent le pooling 3D au lieu du pooling 2D car l'entrée a désormais une dimension supplémentaire.
Comme moi, vous serez peut-être surpris par la simplicité de l'idée. Les auteurs eux-mêmes ont mentionné dans l’article :
Étonnamment, ce choix de conception a été négligé par les modèles T2V précédents, qui suivent la convention consistant à inclure uniquement des opérations de sous-échantillonnage et de suréchantillonnage spatial dans l'architecture et à maintenir une résolution temporelle fixe sur l'ensemble du réseau.
Passons à certaines nuances de la mise en œuvre. Ils utilisent la convolution factorisée présentée dans cet article appelée Modèles de diffusion vidéo. L'idée est de changer chaque convolution 2D en une convolution 3D spatiale uniquement, par exemple en changeant chaque convolution 3x3 en une convolution 1x3x3.
Pour l'attention, après chaque bloc d'attention spatiale, nous insérons un bloc d'attention temporelle qui effectue l'attention sur le premier axe et traite les axes spatiaux comme des axes batch.
Avec ces deux changements, les blocs de convolution factorisés sont ajoutés au modèle pré-entraîné, et seules les couches supplémentaires sont entraînées avec les poids de couche pré-entraînés fixes.
La deuxième nouveauté de l'article est la MultiDiffusion introduite lors de la superrésolution spatiale. Si vous prenez les modèles de génération vidéo avant Lumiere, le modèle de superrésolution spatiale prend une séquence d'images.
Toutefois, les séquences ne se chevauchaient pas. Par exemple, les 8 premières trames et les 8 trames suivantes prises en entrée par le module SSR sont séparées sans aucun chevauchement.
Mais en ce qui concerne Lumière, les 8 premières images et les 8 secondes images se chevauchent de deux images. Ce faisant, le modèle spatial de super-résolution semble réaliser des transitions douces entre les segments temporels. C'est ce que l'on appelle multiDiffusion dans le document.
Le couplage des deux techniques proposées ainsi que l'absence d'une architecture de modèle de diffusion en cascade qui prévaut dans les architectures antérieures telles que l'image vidéo conduisent à un certain nombre d'applications variées.
Par exemple:
Pour évaluer quantitativement le modèle, le modèle a été exécuté dans le cadre d'une étude d'utilisateurs dans laquelle les utilisateurs ont comparé les résultats du modèle proposé à certains modèles de pointe tels que Pika, ZeroScope ou la diffusion vidéo stable. Les résultats indiquent que les utilisateurs ont préféré le modèle Lumière tant dans le cas du texte en vidéo que de l'image en vidéo.
Donc, pour conclure, hormis toutes les cascades vidéo promotionnelles, comme la souriante Monalisa, la contribution de cet article est assez simple. En une seule ligne, l'article introduit un sous-échantillonnage du canal temporel.
Ceci, associé à MultiDiffusion, qui n'est rien d'autre que l'introduction d'images superposées dans le modèle de superrésolution, génère des vidéos haute fidélité temporellement cohérentes.
Ce que j'aurais aimé voir, ce sont des études d'ablation dans l'article montrant les résultats avec et sans le processus multiDiffusion.
Cela nous amène à la fin de cet article. La prochaine fois que quelqu’un vous parlera de Lumière, vous saurez quoi dire en une seule ligne. J'espère que cela a donné un aperçu du modèle Lumière.
Je vous verrai dans mon prochain, d'ici là, prenez soin de vous…
[1] Omer Bar-Tal, Hila Chefer, Omer Tov, Charles Herrmann, Roni Paiss, Shiran Zada, Ariel Ephrat, Junhwa Hur, Yuanzhen Li, Tomer Michaeli, Oliver Wang, Deqing Sun, Tali Dekel, Inbar Mosseri,
[2] Andreas Blattmann, Tim Dockhorn, Sumith Kulal, Daniel Mendelevitch, Maciej Kilian, Dominik Lorenz, Yam Levi, Zion English, Vikram Voleti, Adam Letts, Varun Jampani, Robin Rombach,
[3] Olaf Ronneberger, Philipp Fischer et Thomas Brox,
Également publié ici