Le nouveau modèle make-a-video de Meta AI vient de sortir. En une phrase, il génère des vidéos à partir de texte. Il ne fait pas que générer des vidéos. Il s’agit aussi de la nouvelle méthode à l’état de l’art, qui produit des vidéos de meilleure qualité et plus cohérentes que jamais !
Vous pouvez voir ce modèle comme un Stable Diffusion pour la vidéo. C’est certainement la prochaine étape après avoir appris à générer des images. Vous avez probablement déjà lu cette information sur un site de nouvelles ou simplement dans le titre de cet article. Ce que vous ne savez pas encore, c’est ce qu’est exactement ce modèle et comment il fonctionne.
Make-A-Video est la plus récente publication de Meta AI. Il permet de générer une courte vidéo à partir d’un input textuel, comme celle-ci.

Un chien vêtu d’un costume de superhéros avec une cape rouge vole dans le ciel. Vidéo générée avec Make-A-Video par Singer et al. (Meta AI), 2022.
Nous ajoutons donc de la complexité à la tâche de génération d’images. Le modèle doit non seulement générer plusieurs trames du même sujet et de la même scène, mais il doit aussi préserver leur cohérence dans le temps. Nous ne pouvons pas simplement générer 60 images avec DALLE et en faire une vidéo. Le résultat serait mauvais et n’aurait rien de réaliste.
Il faut un modèle qui comprend mieux le monde et qui utilise cette compréhension pour générer une série cohérente d’images qui s’enchaînent bien. En gros, nous voulons simuler un monde, puis simuler des enregistrements de ce monde. Mais comment y arriver ?
Normalement, il faudrait une quantité énorme de paires texte-vidéo pour entraîner le modèle à générer de telles vidéos à partir d’inputs textuels. Ce n’est toutefois pas le cas ici. Comme ces données sont très difficiles à obtenir et que les coûts d’entraînement sont extrêmement élevés, les chercheurs abordent le problème autrement.
Une autre solution consiste à prendre le meilleur modèle texte-image et à l’adapter aux vidéos. C’est ce qu’a fait Meta AI dans un article scientifique qui vient tout juste d’être publié. Dans ce cas-ci, le modèle texte-image est Make-A-Scene, un autre modèle de Meta que j’ai présenté dans un article précédent si vous souhaitez le découvrir. Mais comment adapter un tel modèle pour qu’il tienne compte du temps ? Nous ajoutons un pipeline spatiotemporel qui lui permet de traiter des vidéos.

Vue d’ensemble de l’approche. Image tirée de Singer et al. (Meta AI), 2022.
Le modèle ne génère donc pas seulement une image, mais 16 images en basse résolution afin de créer une courte vidéo cohérente d’une façon semblable au modèle texte-image. Il ajoute toutefois une convolution 1D à la convolution 2D habituelle. Ce simple ajout permet de conserver les convolutions 2D préentraînées telles quelles et d’ajouter une dimension temporelle qui sera entraînée depuis le début. La majorité du code et des paramètres du modèle d’image d’origine peuvent ainsi être réutilisés.

Ajout du module de convolution 1D après le module de convolution 2D utilisé dans l’approche texte-image.
Nous voulons aussi guider nos générations à l’aide d’un input textuel. Le processus ressemble beaucoup à celui des modèles d’images qui utilisent les embeddings CLIP, une approche que je présente en détail dans ma vidéo sur Stable Diffusion si vous ne la connaissez pas. Mais les chercheurs ajoutent également la dimension spatiale lorsqu’ils combinent les caractéristiques textuelles et visuelles. Ils font la même chose qu’avant : ils conservent le module d’attention décrit dans ma vidéo sur Make-A-Scene et ajoutent un module d’attention 1D pour tenir compte du temps. En quelque sorte, ils copient le modèle de génération d’images et dupliquent ses modules de génération dans une dimension supplémentaire pour obtenir nos 16 trames initiales.

Ajout du module d’attention 1D après le module d’attention 2D utilisé dans l’approche texte-image.
Mais 16 trames ne nous mèneront pas très loin dans une vidéo. Nous devons produire une vidéo haute définition à partir de ces 16 trames principales. Le modèle y arrive en accédant aux trames précédentes et suivantes, puis en interpolant de façon itérative entre elles, à la fois dans les dimensions temporelle et spatiale. En gros, il génère de nouvelles trames plus grandes entre les 16 trames initiales en se fondant sur celles qui les précèdent et les suivent. Le mouvement devient ainsi plus cohérent et la vidéo, plus fluide. Un réseau d’interpolation de trames accomplit cette tâche. Je l’ai aussi décrit dans d’autres vidéos, mais il reçoit essentiellement les images existantes et comble les vides en générant l’information intermédiaire. Il fait la même chose pour la composante spatiale en agrandissant l’image et en remplissant les espaces entre les pixels afin d’obtenir une plus haute définition.

En résumé, les chercheurs font le fine-tuning d’un modèle texte-image pour générer des vidéos. Ils partent donc d’un modèle puissant déjà entraîné, puis l’adaptent et poursuivent un peu son entraînement pour l’habituer aux vidéos. Grâce aux modules spatiotemporels dont nous avons parlé, cette technique adapte simplement le modèle à ce nouveau type de données au lieu de le réentraîner au complet, ce qui coûterait extrêmement cher. Ce nouvel entraînement utilise des vidéos non étiquetées uniquement pour apprendre au modèle à comprendre les vidéos et à préserver la cohérence entre leurs trames. La création du dataset devient donc beaucoup plus simple. Nous utilisons ensuite, encore une fois, un modèle optimisé pour les images afin d’améliorer la résolution spatiale, puis notre dernier module d’interpolation de trames ajoute plus de trames pour rendre la vidéo fluide.
Et voilà !

Un poisson-clown nage dans un récif de corail. Vidéo générée avec Make-A-Video par Singer et al. (Meta AI), 2022.
Bien sûr, les résultats ne sont pas encore parfaits, tout comme ceux des modèles texte-image, mais nous savons à quelle vitesse le domaine progresse.
Voilà un aperçu de la façon dont Meta AI s’est attaquée avec succès à la tâche texte-vidéo dans cet excellent article scientifique. Tous les liens se trouvent dans la description si vous souhaitez approfondir leur approche. La communauté travaille déjà sur une implémentation avec PyTorch, alors restez à l’affût si vous souhaitez l’implémenter vous-même. Le lien se trouve ci-dessous !
Merci d’avoir lu tout l’article. Je vous retrouve la prochaine fois avec un autre article scientifique incroyable !
Références
► Article de blogue de Meta : https://ai.facebook.com/blog/generative-ai-text-to-video/
►Singer et al. (Meta AI), 2022, “MAKE-A-VIDEO: TEXT-TO-VIDEO GENERATION WITHOUT TEXT-VIDEO DATA”, https://makeavideo.studio/Make-A-Video.pdf
►Make-a-video (page officielle) : https://makeavideo.studio/?fbclid=IwAR0tuL9Uc6kjZaMoJHCngAMUNp9bZbyhLmdOUveJ9leyyfL9awRy4seQGW4
► Implémentation PyTorch : https://github.com/lucidrains/make-a-video-pytorch
FAQ
Que fait Make-A-Video de Meta ?
Il génère une courte vidéo à partir d’une description textuelle en ajoutant le mouvement dans le temps à l’apprentissage texte-image.
L’entraînement exige-t-il un immense dataset composé de paires texte-vidéo ?
La méthode réduit cette dépendance en apprenant l’apparence avec des données texte-image et le mouvement avec des vidéos non étiquetées.
Comment les premières trames vidéo sont-elles générées ?
Le modèle crée une séquence en basse résolution, puis lui applique un traitement spatial et temporel pour l’améliorer.
Pourquoi générer une vidéo est-il plus difficile que générer une image ?
Chaque trame doit sembler réaliste tandis que les objets, l’identité, le mouvement et le comportement de la caméra demeurent cohérents au fil du temps.
À quelles limites faut-il s’attendre ?
Les courts extraits générés peuvent encore présenter du scintillement, des déformations, des mouvements incohérents et une faible compréhension de la physique.

