Un groupe de chercheurs spécialisés dans le traitement de l’image à base de machine learning a publié en 2019 le code source d’un projet permettant d’animer n’importe quelle photo de visage à partir d’une séquence vidéo d’un visage en train de parler.
Dans ce tutoriel, je te propose d’utiliser leur code source depuis le service en ligne Google Colab pour créer ton propre deepfake !
Pas le temps de lire ? Regarde ma vidéo
Au sommaire
- Le projet first order motion model
- Les prérequis pour « hacker » le projet
- Crée un répertoire google drive avec photo, vidéo et dataset
- Exécute le code du git avec Google Colab
- Ajoute du son à ton animation
Le projet first order motion model
Voici une présentation en vidéo du projet
Tu peux en savoir plus ici :
Bravo aux chercheurs : Aliaksandr Siarohin, Stéphane Lathuilière, Sergey Tulyakov, Elisa Ricci and Nicu Sebe
Les prérequis
Pour réaliser ce tuto, tu vas avoir besoin :
- d’un navigateur Web (comme Chrome ou Firefox)
- d’un compte Google / Gmail
- d’au moins 2 go d’espace sur Google Drive
Il te faudra aussi une photo (format .png) 256 pixels x 256 pixels que tu as envie d’animer.
Pour que ce soit fun, j’ai créé cette image de dessin animé à partir du code source de toonify yourself et de ma propre photo
Il faudra ensuite que tu génères une vidéo 256 x 256 pixels (.mp4) de toi en train de parler. Pour cela, tu peux te filmer avec ton smartphone et ensuite recadrer la vidéo avec une appli comme Inshot.
Voilà ce que ça donne
Grâce au notebook Google Colab first order motion model, tu vas pouvoir générer ceci à la fin
Pas mal ! N’est-ce pas ?
Etape 1 : crée-toi un répertoire Google Drive
Crée-toi un répertoire Google Drive nommé
first-order-motion-model
Mets-y :
- ta photo 256×256, nomme-la photo.png
- ta video 256×256, nomme-la video.mp4
- et ce fichier magique vox-cpk.pth.tar
Le fichier vox-cpk.pth.tar est un gros zip de 700 mégas qui contient le dataset de points clés d’animations de visages de célébrités.
C’est ce dataset très complet qui va nous permettre de faire le lien entre les points clés de la photo (photo.png) et de la vidéo (video.mp4) pour ensuite animer la photo.
Etape 2 : Lance le Google Colab First Order Motion Model
Ouvre maintenant cette URL dans ton navigateur en étant loggué à ton compte Gmail (celui qui donne accès à ton Google drive)
https://colab.research.google.com/drive/1Xpe3zQzkIP9owBwY7KHl9d8UDLrH-xDP
Il va falloir ensuite que tu clones le répertoire git du projet first-order-model et que tu te mettes dans le répertoire du même nom.
Pour ce faire, tu as juste à cliquer sur play ici pour exécuter les 2 lignes de commande.
Ensuite, tu dois donner l’autorisation au Google Colab d’accéder à ton Google Drive.
Même technique qu’avant, tu cliques sur play, tu autorises le colab à avoir accès à ton Google Drive et copie-colle le code qu’on te donne dans « Enter your authorization code »
Une fois le code collé, appuie sur entrée pour avoir ceci qui s’affiche
Dans les lignes de commande qui suivent, modifie l’image source avec photo.png et la vidéo avec video.mp4 comme ceci
Tu peux jouer aussi plus bas sur le framerate de ta vidéo (nombre d’images par seconde), ici j’ai mis 33 qui donnera de bons résultats à la fin.
Quand tu es content, clique sur play pour exécuter le code ! Ca va te générer une image et une vidéo côte à côte, sans transformation.
Ensuite, tu vas cliquer sur play pour charger ton modèle d’apprentissage de visages de célébrités vox-cpk.pth.tar
L’étape juste après te permettra de créer ta photo animée, toujours en cliquant sur play
A la fin des 100%, tada !! tu auras ton animation
Tu peux la récupérer en faisant clic droit + enregistrer sous (au format .mp4)
Etape 3 : Crée un montage vidéo pour avoir le son
Avec l’appli de montage VN Vidéo Editor, tu peux mettre en piste 1 la vidéo originale qui a le son, en piste 2 l’animation qu’on vient de créer plus haut.
Libre à toi ensuite de zoomer sur les 2 visages ou sur un seul visage.
Bluffant, n’est-ce pas ? Dis-moi si tu t’en sort dans les commentaires et n’oublie pas de partager ce tuto autour de toi s’il t’a été utile.
5 réponses sur « First order motion model : tuto pour faire parler une photo »
Le résultat est bluffant. Je dois avouer que l’aspect technique me rebute un peu pour me lancer.
Salut Jean. À disposition pour t’aider dans les commentaires si tu bloques à une étape
Super sympa mais ça a l’air malgré tout compliqué .. puis-je utiliser mon Androïd ou mon PC ?
Salut, c’est plus commode sur un ordinateur , car Google colab n’est pas prévu pour une navigation sur mobile. Une fois sur ton PC, lance Firefox ou Chrome, connecte toi à ton compte Google et navigue entre drive.google.com et colab.google.com pour charger tes médias et exécuter les scripts.
Bonjour Jean et merci pour cette incroyable tuto ! très simple si seulement nous avions accès au colab qui a l’air d’être restreint !
si tu as une petite soluce ! 🙂 Voir le note book 🙂