Ce modèle IA de Netflix supprime n'importe quel acteur de n'importe quelle scène (Analyse du modèle VOID)
BBetter Stack
Computing/SoftwareMoviesPhotography/ArtInternet Technology
Transcript
00:00:00Oh, wow, c'est un peu triste, la pauvre Kate Winslet, mon Dieu, debout toute seule, avec
00:00:09aucun Jack.
00:00:11Netflix vient de sortir un outil d'IA open source très intéressant appelé Video Object and Interaction
00:00:17Deletion, ou VOID.
00:00:19La plupart des outils vidéo d'IA sont déjà excellents pour effacer des objets, rien de nouveau.
00:00:24Mais ils sont terribles pour effacer les conséquences de ces objets dans la scène.
00:00:29Par exemple, si vous retirez une boule de bowling frappant des quilles, la plupart des modèles laissent
00:00:34les quilles tomber sans raison, mais VOID essaie de corriger ce problème.
00:00:39C'est un nouveau framework de Netflix et Insight qui comprend la cause et l'effet et modifie
00:00:44le contenu vidéo en fonction des objets supprimés.
00:00:47Dans cette vidéo, nous allons examiner de plus près ce modèle, voir comment il fonctionne, et j'ai
00:00:52même créé une application web pour tester ce modèle dans toute sa splendeur, donc nous ferons
00:00:57quelques tests vidéo nous-mêmes.
00:00:58Ça va être très amusant, alors plongeons dedans.
00:01:05VOID signifie donc Video Object and Interaction Deletion.
00:01:09Pour comprendre pourquoi c'est si important, il faut regarder comment l'inpainting vidéo fonctionne
00:01:15habituellement.
00:01:16Les effaceurs IA standard sont essentiellement du remplissage d'après le contenu sous stéroïdes.
00:01:20Ils regardent les pixels autour du trou et essaient de deviner ce qui devrait s'y trouver.
00:01:24Cela fonctionne pour un filigrane ou une personne immobile, mais cela s'effondre dès qu'il y a
00:01:29une interaction physique.
00:01:31Si vous retirez une fille préparant un smoothie, une IA normale effacera la personne,
00:01:36mais laissera le mixeur tourner et s'agiter sans aucune raison.
00:01:40Elle corrige l'apparence, mais ignore la physique des autres objets aux alentours.
00:01:46VOID est conçu pour résoudre ce problème d'interaction fantôme en réimaginant une réalité contrefactuelle.
00:01:53En gros, une version de la vidéo où cet objet ou cette personne n'a jamais existé au
00:01:57départ.
00:01:58Et la façon dont il y parvient est en fait assez astucieuse.
00:02:01Il ne commence pas simplement à peindre immédiatement.
00:02:03Au lieu de cela, il utilise un système à deux passages.
00:02:06Dans la première étape, il y a une phase de raisonnement.
00:02:08D'abord, VOID utilise un modèle de langage visuel et SAM2 (Segment Anything Model 2) pour analyser
00:02:15la scène.
00:02:16J'ai d'ailleurs fait une vidéo entière sur le fonctionnement de SAM2, allez la voir si ça vous intéresse.
00:02:22Pendant que SAM2 crée un suivi parfait de l'objet à supprimer, l'IA se pose
00:02:28la question : "Si je retire ceci, qu'est-ce qui change d'autre ?"
00:02:32Si vous retirez un domino d'une pile, l'IA identifie que les autres dominos sont affectés par
00:02:38causalité.
00:02:39Elle crée ensuite ce que les chercheurs appellent un "Quad Mask", une carte spécifique qui indique au
00:02:44modèle de diffusion non seulement où effacer, mais où réécrire la physique de la zone
00:02:50environnante.
00:02:51Ensuite, l'étape deux est la génération et l'affinage.
00:02:54Une fois cette carte générée, un modèle de diffusion vidéo produit les nouvelles images.
00:03:00Parfois, ces modèles peuvent être un peu flous, les objets peuvent se transformer ou perdre leur forme.
00:03:05Pour corriger cela, VOID propose un second passage optionnel.
00:03:08Il utilise ce qu'on appelle le "flow warp noise" pour fixer ces formes, s'assurant que
00:03:14si la physique change, les objets restants demeurent solides et cohérents.
00:03:19Mais vous vous demandez peut-être : comment apprendre à une IA ce qui ne s'est pas produit ?
00:03:23L'équipe de Netflix et Insight ne pouvait pas simplement filmer un accident de voiture puis l'annuler
00:03:28dans la réalité pour obtenir des données d'entraînement.
00:03:30À la place, ils ont utilisé des environnements synthétiques comme Kubrick.
00:03:34Ils ont lancé des milliers de simulations physiques avec une version avant et une version après.
00:03:40Une version avec collision et une version où l'objet n'a jamais été là.
00:03:44En montrant les deux versions à l'IA, elle a appris la relation entre la présence d'un objet et
00:03:49son impact sur l'environnement.
00:03:51Tout cela semble fascinant, mais testons concrètement cet outil nous-mêmes.
00:03:57La meilleure façon de le lancer serait d'utiliser un GPU cloud, comme un module RunPod tournant sur
00:04:02un GPU H100 ou équivalent.
00:04:05Mais je vous préviens d'emblée, l'installation n'est pas simple du tout.
00:04:10La documentation GitHub comporte beaucoup de lacunes et d'informations trompeuses.
00:04:14Pour que cela fonctionne correctement, il y a quelques points à surveiller.
00:04:18Par exemple, cette commande échouera probablement car ils n'ont jamais précisé qu'il faut
00:04:23le modèle SAM3 pour cette procédure.
00:04:25Et cette commande pourrait échouer car ils n'ont pas précisé que les quad masks doivent être
00:04:30nommés strictement quad_mask_0.mp4 pour fonctionner.
00:04:35Il y a donc beaucoup de petits problèmes de ce genre qui ne sont pas documentés.
00:04:38Leur démo Gradio est sympa si vous avez déjà un masque segmenté avec SAM2, mais ils
00:04:44ne fournissent pas l'interface graphique pour créer réellement ce masque.
00:04:48J'ai donc construit une application web personnalisée qui corrige tous ces problèmes et offre
00:04:54une interface prête à l'emploi qui gère l'étape de segmentation, l'étape d'inférence, et
00:05:00même le système à deux passages.
00:05:02Vous pouvez simplement uploader votre vidéo, segmenter le masque et générer le rendu final.
00:05:07Et c'est exactement ce que nous allons faire maintenant.
00:05:09D'abord, vous devez lancer une instance RunPod avec un gros GPU.
00:05:14Je vais utiliser un H100 pour ce test.
00:05:17Dans la section template, assurez-vous d'augmenter la taille du conteneur à 100 Go.
00:05:22Et dans la section des ports, ajoutez le port 8998 car c'est là que nous exposerons
00:05:27notre application web.
00:05:29Ensuite, il suffit de se connecter en SSH au pod, de cloner mon repo, d'y entrer et de lancer
00:05:36la commande run.sh.
00:05:38On vous demandera aussi un jeton Hugging Face pour télécharger les
00:05:42modèles ; assurez-vous également d'avoir accès au dépôt SAM3 car c'est un
00:05:48modèle dont l'accès est restreint et vous devez demander la permission de l'utiliser.
00:05:51Généralement, le processus est rapide et vous êtes approuvé en quelques minutes.
00:05:55Ensuite, vous aurez besoin d'une clé API Gemini car lors de l'étape de segmentation, le modèle
00:06:00utilise Gemini pour l'estimation de pose afin de générer un quad mask précis.
00:06:06Très bien.
00:06:07Si vous avez ces deux identifiants, laissez la commande run.sh tout installer.
00:06:13Une fois terminé, nous pouvons lancer l'application web avec la commande indiquée
00:06:18ici.
00:06:19Maintenant, sur la page RunPod, cliquez sur ce port pour ouvrir notre application
00:06:24web.
00:06:25Nous pouvons enfin commencer à tester le modèle.
00:06:28Pour mon premier test, j'utiliserai cette célèbre scène de Matrix et j'essaierai de retirer
00:06:32Neo de la scène pour voir ce qui se passe.
00:06:35La toute première chose à faire est de spécifier l'instruction de suppression.
00:06:41Ici, on peut mettre quelque chose comme : "retirer le combattant en kimono blanc de
00:06:45la scène".
00:06:46Ensuite, on passe à la section où l'on segmente quelques points autour de
00:06:51l'objet ou de la personne à retirer pour que le modèle SAM2 sache sur quelle forme se concentrer,
00:06:57puis on spécifie le dossier de sortie où seront stockés nos fichiers de résultats.
00:07:02Il faut retenir le nom de ce dossier car ce sera l'identifiant unique
00:07:06utilisé dans les autres onglets pour identifier la vidéo sur laquelle nous travaillons.
00:07:11Après cela, on passe au deuxième onglet pour lancer l'étape de segmentation et démarrer
00:07:16le processus.
00:07:17Une fois fini, on va sur l'onglet 3, l'étape d'inférence, où
00:07:22le modèle va réellement essayer de supprimer l'objet ou la personne souhaité.
00:07:26Ici, nous devons retaper le nom du dossier.
00:07:29Et spécifier un prompt décrivant à quoi devrait ressembler la vidéo sans
00:07:34l'objet ou la personne supprimé.
00:07:37Dans notre cas, ce serait : "un combattant en kimono sombre debout à l'intérieur
00:07:42d'un gymnase".
00:07:43Ils recommandent aussi de ne pas mentionner l'objet supprimé, mais de se concentrer sur
00:07:48ce qui doit rester dans la vidéo, puis de lancer l'inférence.
00:07:52Une fois terminé, nous pouvons aller dans l'onglet des résultats et voir notre vidéo finale.
00:07:58Encore une fois, il faut spécifier le dossier de la vidéo.
00:08:01Et voilà !
00:08:03Regardez ça.
00:08:04On dirait que Morpheus combat un fantôme.
00:08:07On voit quelques incohérences avec la suppression des mains et d'autres détails.
00:08:12Ce n'est pas parfait, mais il y a autre chose qu'on peut faire pour essayer d'améliorer ça.
00:08:18On peut la passer dans le filtre de second passage, l'onglet 4, pour tenter d'obtenir de meilleurs résultats.
00:08:24Après ce second passage, nous avons cette fenêtre supplémentaire montrant
00:08:29le résultat affiné.
00:08:32Encore une fois, c'est toujours un peu bizarre.
00:08:34On a toujours l'impression que Morpheus combat un fantôme ou qu'il danse.
00:08:39Comme vous le voyez, ça ne marche pas pour toutes les scènes.
00:08:42Certaines scènes resteront très étranges, mais il fait du bon travail pour retirer Neo
00:08:48complètement de la scène.
00:08:49Cela dit, essayons deux autres exemples amusants.
00:08:53Voici la célèbre scène de danse de La La Land.
00:08:56Ici, je vais essayer de retirer Emma Stone de la scène pour voir ce qui se passe.
00:09:01Wow, regardez ça.
00:09:03C'est presque parfait.
00:09:05On croirait vraiment que Ryan Gosling danse tout seul ici.
00:09:09Et voyez le moment où Emma Stone passe devant Ryan Gosling.
00:09:13Cette transition est presque invisible.
00:09:15On voit quelques petits artefacts, mais pour l'essentiel, wow, c'est un résultat époustouflant.
00:09:21De tous les tests que j'ai faits, celui-ci était le meilleur.
00:09:24Et curieusement, je pensais que ce serait l'exemple le plus difficile à traiter.
00:09:28Mais étonnamment, c'est celui qui a donné les meilleurs résultats.
00:09:33Très bien.
00:09:34Je veux tenter un dernier exemple.
00:09:35Pour celui-ci, je vais essayer de retirer Leonardo DiCaprio de la célèbre scène de Titanic et
00:09:41voir le résultat.
00:09:42Oh, wow, c'est assez triste.
00:09:48Pauvre Kate Winslet.
00:09:49Mon Dieu.
00:09:50Debout là, toute seule, sans Jack.
00:09:53C'est intéressant.
00:09:55On voit que ce modèle a fait un excellent travail pour retirer Leo de la scène.
00:09:59Même si l'on aperçoit des restes d'artefacts sur le bras de Kate Winslet.
00:10:03Et mon Dieu, c'est tellement effrayant.
00:10:06Il reste une main fantomatique qui tient le bras de Kate de l'autre côté.
00:10:10Oh non.
00:10:11Je ne peux plus l'ignorer maintenant.
00:10:14Honnêtement, c'est ma faute car je n'ai pas segmenté ces points spécifiques
00:10:19lors de l'étape de segmentation.
00:10:21C'est donc pour moi.
00:10:23On voit aussi que le visage de Kate Winslet se déforme un peu.
00:10:26Il y a un côté "vallée de l'étrange" indéniable ici.
00:10:30Globalement, je pense que cet outil fait ce qu'il annonce.
00:10:33Tout dépend de la vidéo spécifique et de sa nature.
00:10:37Évidemment, on ne peut pas forcer Morpheus à rester immobile dans cette scène.
00:10:41Mais si l'on regarde d'autres exemples sur leur page projet, ils sont absolument incroyables.
00:10:46Ce modèle a donc de solides capacités et avec plus d'entraînement,
00:10:51il pourrait devenir encore meilleur.
00:10:52Voilà donc les amis.
00:10:53C'est le modèle VOID en résumé.
00:10:55Honnêtement, j'ai eu beaucoup de plaisir à tester ça.
00:10:58Et comme c'est développé par Netflix, je suis curieux de savoir comment ils vont l'utiliser.
00:11:03Pourrait-il servir à modifier des narrations vidéo selon les choix des utilisateurs ?
00:11:04Un peu comme l'expérience interactive de type "choisissez votre aventure" que Netflix
00:11:09a ajoutée pour l'épisode Bandersnatch de Black Mirror ?
00:11:15Vous vous en souvenez ?
00:11:17Qui sait ?
00:11:18En tout cas, il sera très intéressant de voir comment l'usage de cet outil évolue à l'avenir.
00:11:19Et vous, que pensez-vous de ce framework ?
00:11:23Quels types d'applications seraient utiles pour cet outil ?
00:11:24Dites-nous ce que vous en pensez dans les commentaires ci-dessous.
00:11:27Et si vous aimez ce genre d'analyses techniques, faites-le moi savoir
00:11:30en cliquant sur le bouton j'aime sous la vidéo.
00:11:33N'oubliez pas non plus de vous abonner à notre chaîne.
00:11:37C'était Andres de Better Stack, et je vous retrouve dans les prochaines vidéos.