Le Futur de la Génération Automatique de Vidéos
Regardez la vidéo!
Qu'est-ce que tous les modèles récents et ultra-puissants de génération d'images comme DALLE ou Midjourney ont en commun ? Outre leurs coûts informatiques élevés, leur long temps d'apprentissage et tout l’engouement partagé, ils sont tous basés sur le même mécanisme : la diffusion.
Les modèles de diffusion représentent les résultats les plus avancés pour la plupart des tâches liées aux images, y compris la conversion de texte en image avec DALLE, mais également pour de nombreuses autres tâches de génération d'images, telles que la retouche d'image, le transfert de style ou la super-résolution d'image.
Récemment, la diffusion latente ou le modèle bien connue appelé Stable Diffusion ont fait leur apparition, changeant tout en matière de génération d'images.
Mais je ne suis pas ici pour parler de vieilles nouvelles. Nous sommes ici pour examiner le nouveau papier et modèle publiés par l’entreprise Stability AI : Stable Video Diffusion. Le modèle de génération de vidéo le plus récent et open source que vous pouvez utiliser dès maintenant ! Il prend des images ou du texte et est capable de générer automatiquement des vidéos très cool comme celles-ci. Il peut même être utilisé pour générer plusieurs vues d'un objet comme s'il était en 3D.
Je suis Louis-François, et plongeons dans le fonctionnement de ce nouveau modèle !
Avant de passer aux vidéos, faisons un petit récapitulatif sur le fonctionnement de Stable Diffusion pour les images.
Stable Diffusion a rendu l’entraînement et le traitement des images plus efficaces et accessibles en opérant dans un espace compressé qu’on appel un encodage plutôt que directement sur des images haute résolution. Cette approche implique de compresser une entrée (qui peut être un texte ou une image) en une représentation de dimension inférieure. Cela signifie essentiellement enseigner à un modèle comment extraire les informations les plus précieuses, ou essentielles, tout comme nous stockerions un concept dans notre cerveau. Si vous voyez une image de chat ou le mot chat, cela signifiera la même chose pour vous. C'est pareil avec les encodages du modèle, où toutes les informations sont placées dans un espace qui a du sens pour le modèle. En voyant des milliers et des milliers d'images et de textes, il est capable de construire une telle représentation qui est à la fois comprimée, efficace en termes d'information, et de grande valeur par rapport à une image avec beaucoup de pixels qui ne sont pas vraiment utiles. Voyez ici où même pas un tiers de l'image est pertinent, montrant le chat.
Crédit pour la photo: Grigorita Ko / Shutterstock.
Le modèle apprend alors à générer des images à partir de cet espace en utilisant du bruit. Imaginez que vous avez une toile vierge sur laquelle vous voulez créer une image. Dans les modèles de diffusion, nous commençons avec cette toile non pas complètement vierge, mais remplie de gribouillis et de motifs aléatoires, que nous pouvons appeler "bruit". Ce bruit n'a aucun motif ou structure significatif - il est juste aléatoire.
Le travail du modèle de diffusion est similaire à celui d'un artiste qui va progressivement transformer ces gribouillis aléatoires en une image cohérente et détaillée. Il le fait étape par étape. À chaque étape, il ajuste soigneusement les gribouillis, les façonnant lentement en parties reconnaissables de l'image. Ce processus est guidé par la formation du modèle, où il a appris à faire ces ajustements en regardant de nombreux exemples. Donc, nous avons initialement pris de nombreux exemples d'images et appliqué aléatoirement du bruit à ceux-ci, que vous pouvez voir comme des gribouillis, et fourni ces gribouillis au modèle. Ensuite, nous lui demandons d'essayer de recréer l'image. Puisque nous connaissons tous les gribouillis que nous avons progressivement donnés au modèle, nous pouvons le corriger et lui faire apprendre à donner les bons gribouillis à chaque étape.
Image by Vaibhav Singh and Sovit Rath on the LearnOpenCV blog.
Le but est que le modèle, pendant son entraînement, a appris les bons paramètres à appliquer au bruit pour recréer une image qui ressemble étroitement aux images qu’il y avaitlors de son entraînement. Et, comme nous l'avons vu, tout cela se fait dans un espace compressé. La dernière chose à faire est de revenir à une vraie image au lieu de cette représentation du modèle, que nous appelons encodage. Nous devons donc décoder ou transformer cette représentation en une image haute résolution. C'est essentiellement comme prendre une vieille peinture endommagée ou peu claire et la redessiner sur une très grande toile. Ce sera la même image, mais beaucoup plus grande. Le processus de décodage implique de reconstruire les caractéristiques détaillées, les textures et les couleurs qui étaient compressées dans cet espace, en 'suréchantillonnant' effectivement l'image à sa taille et résolution complètes.
Nous pouvons maintenant générer une nouvelle image de manière efficace, en envoyant simplement un texte comme invite, comme nous l'avons tous fait en utilisant soit DALLE, MidJourney, soit des applications basées sur Stable Diffusion.
Lors du passage à la vidéo, le défi n'est pas seulement de transformer le bruit en une seule image, mais en une série d'images qui changent au fil du temps de manière fluide et cohérente. La cohérence est le problème principal ici, car aucune erreur n'est permise pour la crédibilité. Nous pouvons directement repérer quand quelque chose ne va pas puisque notre cerveau est programmé pour repérer les anomalies dans la nature afin de survivre. Cela semble juste étrange et bizarre si quelque chose comme cela arrive.
Traiter avec le temps, ou en d'autres termes, les vidéos, nécessite des capacités supplémentaires dans le modèle pour comprendre et reproduire comment les objets et les scènes changent au fil du temps - essentiellement, comment ajuster le bruit non seulement pour une image, mais pour une séquence fluide d'images qui composent une vidéo.
Source: gifmovie.tumblr.com
Modèles de Diffusion Vidéo Latente :
Tout comme son homologue d'image, la Stable Video Diffusion opère dans le même espace compressé, mais avec un ajout crucial - elle inclut des couches temporelles. Ces couches sont spécialement conçues pour gérer la dynamique des séquences vidéo, en se concentrant sur la continuité et le flux des images au fil du temps. C'est extrêmement important, car nous ne pouvons pas simplement générer 30 images et les compresser pour faire une vidéo. Chaque image doit avoir accès aux autres pendant l’entraînement du modèle afin de garantir la cohérence.
Affinage sur des Ensembles de Données Vidéo :
Pour atteindre une vidéo finale réaliste, le modèle est pré-entraînée avec des images en utilisant la initialement Stable Diffusion entraîné sur des images, puis ré-entraînée une seconde fois avec des vidéos avec cette couche temporelle ajoutée. Le pré-entraînement sur les images permet au modèle de comprendre notre monde avec de nombreux exemples d'objets et de scènes variés. Ensuite, le modèle apprend à répliquer des aspects complexes des vidéos, tels que le mouvement, les changements de paysage et l'interaction entre objets, avec un processus d'entraînement similaire, mais avec plusieurs images générées en même temps. Enfin, pour la qualité, nous ajoutons une étape finale d'affinage où nous répétons ce processus d'entraînement vidéo, mais utilisons uniquement des vidéos de haute qualité pour améliorer davantage les résultats.
Gestion du Mouvement et du Changement au fil du temps :
Dans les vidéos, non seulement l'apparence des objets importe, mais aussi leur mouvement et leur évolution dans le temps. L'objet ne peut pas changer de couleur ou de forme au fil du temps. Il doit également suivre les dynamiques du monde réel, selon sa nature. Il se déplace différemment, s'il s'agit d'un rocher ou d'un chat. Le modèle est entraîné pour capturer ces dynamiques, garantissant que les vidéos générées ont un mouvement naturel et fluide.
Représentation Vidéo Complète :
Stable Video Diffusion offre une représentation vidéo robuste qui peut être affinée pour diverses applications. Cela inclut non seulement la synthèse de texte en vidéo, mais aussi d'autres tâches comme la synthèse multi-vues, ce qui en fait un outil polyvalent pour différents besoins de génération de vidéo.
Tout comme Stable Diffusion pour les images, ce nouveau modèle rend la génération de vidéos plus accessible à un plus large éventail d'utilisateurs et d'applications.
Image du blog de Stability AI.
Bien sûr, ce n'est pas parfait, mais le progrès avance très rapidement. Les vidéos longues sont encore beaucoup plus difficiles à gérer que les courtes. Ils ont également constaté que leur approche ne générait pas beaucoup de mouvement dans les vidéos. Si vous l'essayez, j'aimerais connaître vos impressions sur les résultats que vous obtenez ! Dans tous les cas, partager ce nouveau modèle open-source est une étape parfaite dans la bonne direction.
J'espère que vous avez apprécié cet aperçu de ce nouveau modèle de Stability AI, je vous invite à lire leur article de recherche pour une compréhension plus approfondie de l'approche et de leur processus de curation des données pour construire les ensembles de données et améliorer davantage les résultats. Ils ont également partagé de nombreuses observations extrêmement utiles et intéressantes pour construire et entraîner de meilleurs modèles génératifs.
Merci d'avoir lu tout l’article, si vous avez aimé, n’oubliez pas de laisser un like et de vous abonner. Je vous verrai dans la prochaine avec plus d'avancées en IA !