Que sont les deepfakes et comment les créer ?
Votre guide ultime pour comprendre les deepfakes et les créer facilement avec Faceswap.
L'intelligence artificielle a fait des progrès fulgurants et n'est plus une simple abstraction. Elle s'immisce de plus en plus dans nos vies, de manière parfois inquiétante.
Elle est désormais capable de suggérer, d'écrire, de créer des œuvres artistiques, et même d'imiter l'apparence et la voix des êtres vivants.
Il s'agit d'une des avancées les plus récentes dans ce domaine, dont nous devrions pouvoir tirer profit. Cependant, c'est également un domaine qui mérite une grande prudence.
Qu'est-ce qu'un deepfake ?
Le terme "deepfake" est une combinaison des mots "deep learning" (apprentissage profond) et "fake" (faux). En d'autres termes, il s'agit de médias manipulés avec une grande habileté, ou, en quelque sorte, "profondément" truqués.
Selon Wikipédia, on parle également de médias synthétiques. Dans ce cas, une image, un son ou une vidéo existante est modifiée de manière à représenter une personne totalement différente.
Généralement, les deepfakes montrent des personnalités connues en train de dire des choses qu'elles ne diraient pas dans la réalité.
En fonction du talent de la personne qui les crée, il peut être extrêmement difficile de distinguer un deepfake d'un contenu authentique.
Comment fonctionnent les deepfakes ?
En termes simples, une partie de la vidéo originale (par exemple, un visage) est remplacée par un visage similaire mais faux. On parle alors d'échange de visage, comme dans la fameuse vidéo "d'Obama".
Cependant, les deepfakes ne se limitent pas à la vidéo. Il existe également des images et des sons deepfakes. Il n'est pas exclu que des avatars deepfake en réalité virtuelle voient le jour dans un futur proche.
Source : Disney
La méthodologie utilisée pour ces supercheries dépend principalement de l'application et de l'algorithme sous-jacent.
Selon un document de recherche de Disney, plusieurs techniques sont utilisées, notamment les encodeurs-décodeurs, les réseaux antagonistes génératifs (GAN), les deepfakes basés sur la géométrie, etc.
Cependant, les sections suivantes se concentreront principalement sur le fonctionnement de Faceswap. Il s'agit d'un logiciel deepfake gratuit et open source, qui s'appuie sur différents algorithmes pour atteindre le résultat souhaité.
La création de deepfakes passe par trois processus clés : l'extraction, l'entraînement et la conversion.
#1. L'extraction
L'extraction consiste à détecter et à extraire la zone d'intérêt des échantillons de médias : l'original et la cible de l'échange.
Selon la puissance du matériel informatique, de nombreux algorithmes peuvent être utilisés pour obtenir une détection efficace.
Par exemple, Faceswap propose plusieurs options différentes pour l'extraction, l'alignement et le masquage. Le choix dépend de l'efficacité du CPU ou du GPU.
L'extraction consiste simplement à identifier le visage dans la vidéo. L'alignement détecte les caractéristiques essentielles d'un visage (yeux, nez, menton, etc.). Enfin, le masquage bloque les autres éléments de l'image, ne laissant apparaître que la zone d'intérêt.
Le temps global nécessaire à l'opération est un critère important dans le choix de l'option. En effet, utiliser des algorithmes gourmands en ressources sur du matériel peu performant peut entraîner un échec, ou un temps d'attente excessivement long pour obtenir un résultat acceptable.
Outre le matériel, le choix dépend également de paramètres comme la présence d'obstructions faciales dans la vidéo d'entrée (mouvements de main, lunettes, etc.).
Une étape nécessaire, en fin de compte, est le nettoyage des résultats (expliqué plus loin) car l'extraction peut générer de faux positifs.
En résumé, l'extraction est effectuée à la fois sur la vidéo originale et sur la vidéo utilisée pour l'échange.
#2. L'entraînement
C'est le cœur du processus de création des deepfakes.
L'entraînement concerne le réseau neuronal, qui est composé d'un encodeur et d'un décodeur. Les données extraites sont utilisées pour créer un modèle qui servira pour la conversion ultérieure.
L'encodeur convertit les données d'entrée en une représentation vectorielle, ce qui permet d'entraîner l'algorithme à recréer les visages à partir de vecteurs. C'est le rôle du décodeur.
Le réseau neuronal évalue ensuite ses itérations en comparant le résultat avec l'original. Il attribue un score de perte, qui diminue au fur et à mesure des itérations. Le processus s'arrête lorsque les résultats sont jugés satisfaisants.
L'entraînement est un processus long, et les résultats s'améliorent généralement en fonction du nombre d'itérations et de la qualité des données d'entrée.
Par exemple, Faceswap suggère d'utiliser au minimum 500 images pour chaque visage (original et cible de l'échange). De plus, les images doivent être suffisamment différentes entre elles, et couvrir tous les angles possibles dans un éclairage varié pour une reproduction optimale.
Étant donné la durée de l'entraînement, certaines applications (comme Faceswap) permettent d'interrompre le processus à mi-chemin et de le reprendre ultérieurement.
Il est important de noter que le réalisme de la sortie dépend également de l'efficacité de l'algorithme et des données d'entrée. La puissance du matériel informatique est également un facteur limitant.
#3. La conversion
C'est la dernière étape de la création de deepfakes. Les algorithmes de conversion ont besoin de la vidéo source, du modèle entraîné et du fichier d'alignement source.
Ensuite, il est possible de modifier certaines options relatives à la correction des couleurs, au type de masque, au format de sortie souhaité, etc.
Après avoir configuré ces quelques options, il ne reste plus qu'à attendre le rendu final.
Comme indiqué précédemment, Faceswap fonctionne avec de nombreux algorithmes, et l'utilisateur peut jouer avec ces différents algorithmes afin d'obtenir le résultat souhaité.
Est-ce tout ?
Non !
Ce que nous avons décrit est seulement l'échange de visage, qui ne représente qu'une partie de la technologie deepfake. L'échange de visage, comme son nom l'indique, ne fait que remplacer une partie du visage pour donner une faible idée de ce que les deepfakes peuvent faire.
Pour un échange crédible, il faudrait également imiter l'audio (ce que l'on appelle le clonage de voix) et l'ensemble du corps, y compris tous les éléments présents dans le cadre, comme dans l'exemple suivant :
Alors, comment ça marche ?
L'auteur du deepfake a probablement tourné lui-même la vidéo (comme le montrent les dernières secondes), a synchronisé le dialogue avec la voix synthétique de Morgan Freeman, puis a remplacé sa tête.

En résumé, il ne s'agit pas seulement d'échanger des visages, mais de prendre en compte l'ensemble du cadre, y compris l'audio.
Il est possible de trouver des milliers de deepfakes sur YouTube. Il devient effrayant de savoir à quoi faire confiance. Tout ce qu'il faut, c'est un ordinateur puissant avec une carte graphique efficace pour se lancer.
Cependant, la perfection est difficile à atteindre, et c'est particulièrement vrai avec les deepfakes.
Pour créer un deepfake convaincant capable d'induire en erreur ou d'impressionner le public, il faut des compétences et plusieurs jours voire semaines de travail pour produire une vidéo d'une ou deux minutes.
Il est impressionnant de voir les performances de ces algorithmes. Mais l'évolution future, et notamment l'efficacité de ces applications sur du matériel moins puissant, inquiète les gouvernements du monde entier.
Cependant, nous n'allons pas nous étendre sur les répercussions futures. Voyons plutôt comment créer un deepfake par vous-même, pour vous amuser un peu.
Créer des vidéos deepfake (de base)
Il existe de nombreuses applications qui permettent de créer des mèmes deepfake. Vous pouvez les découvrir dans cette liste d'applications deepfake.
Nous allons utiliser Faceswap.
Avant de commencer, il est important de vérifier quelques éléments. Tout d'abord, vous devez avoir une vidéo de bonne qualité de la personne cible, où elle montre diverses émotions. Ensuite, vous aurez besoin d'une vidéo source pour remplacer le visage de la cible.
De plus, fermez toutes les applications gourmandes en ressources graphiques (navigateurs, jeux, etc.) avant de lancer Faceswap. C'est particulièrement important si votre carte graphique a moins de 2 Go de VRAM (mémoire vive vidéo).
Étape 1 : Extraction des visages
La première étape consiste à extraire les visages de la vidéo. Pour cela, vous devez sélectionner la vidéo cible dans "Input Dir" et indiquer un dossier de sortie dans "Output Dir".

Plusieurs options sont disponibles, comme un détecteur, un aligneur, un masqueur, etc. Les explications pour chaque option se trouvent dans la FAQ de Faceswap. Il serait inutile de répéter ces informations ici.
Source : FAQ Faceswap
Il est généralement conseillé de consulter la documentation pour une meilleure compréhension et un meilleur résultat. Cependant, Faceswap propose des indications textuelles utiles. Pour les consulter, il suffit de survoler l'option concernée avec la souris.

En résumé, il n'existe pas de méthode universelle. Il faut commencer par utiliser les meilleurs algorithmes et progresser progressivement afin de créer un deepfake convaincant.
Pour la démonstration, j'ai utilisé Mtcnn (détecteur), Fan (aligneur) et Bisenet-Fp (masqueur) en conservant toutes les autres options par défaut.
Au début, j'avais essayé avec S3Fd (meilleur détecteur) et d'autres masques combinés. Cependant, ma Nvidia GeForce GTX 750Ti 2 Go n'était pas assez puissante, et le processus a échoué plusieurs fois.
J'ai donc revu mes attentes à la baisse et modifié les paramètres afin de réussir.
En plus de la sélection du détecteur, des masqueurs, etc., des options supplémentaires sont disponibles dans "Paramètres> Configurer les paramètres" pour ajuster les paramètres individuels et les adapter au matériel.

En résumé, il faut sélectionner les valeurs les plus basses possibles pour la taille du lot, la taille d'entrée et la taille de sortie, puis cocher "LowMem", etc. Ces options ne sont pas disponibles dans toutes les sections de l'application. Les indications textuelles aident à choisir les meilleures options.
Bien que l'outil fasse un excellent travail d'extraction de visages, les images de sortie peuvent contenir beaucoup d'éléments inutiles pour l'entraînement du modèle. Par exemple, il y aura tous les visages présents dans la vidéo (s'il y en a plusieurs), et des détections incorrectes ne correspondant pas du tout au visage cible.
Il faut donc nettoyer les jeux de données. Soit vous vérifiez le dossier de sortie et supprimez manuellement les éléments indésirables, soit vous utilisez l'outil de tri de Faceswap.

L'outil mentionné ci-dessus va organiser les différents visages. Vous pourrez ainsi regrouper les visages pertinents dans un seul dossier et supprimer les autres.
Pour rappel, vous devez également répéter l'extraction pour la vidéo source.
Étape 2 : Entraîner le modèle
C'est le processus le plus long de la création d'un deepfake. Dans cette étape, "l'entrée A" correspond au visage cible et "l'entrée B" au visage source. Le "Model Dir" indique l'emplacement où les fichiers d'entraînement seront enregistrés.

Ici, l'option la plus importante est "Trainer". Il existe de nombreuses options individuelles de mise à l'échelle. Pour ma configuration matérielle, les options "Dfl-H128" et "Lightweight" ont donné de bons résultats, avec les paramètres de configuration les plus bas.
Vient ensuite la "taille du lot". Une valeur plus élevée réduit le temps d'entraînement global, mais consomme davantage de mémoire vive vidéo (VRAM). Le nombre d'itérations n'a pas d'incidence fixe sur le résultat. Il faut donc choisir une valeur suffisamment élevée, et arrêter l'entraînement une fois que les résultats sont jugés acceptables.
Plusieurs paramètres supplémentaires sont disponibles, notamment la création d'un timelapse avec des intervalles prédéfinis. Cependant, j'ai entraîné le modèle avec le strict minimum.
Étape 3 : Remplacer le visage de l'original
C'est la dernière étape de la création de deepfakes.
Elle ne prend généralement pas autant de temps que les étapes précédentes, et il est possible de tester de nombreuses options pour obtenir rapidement le résultat souhaité.

L'image ci-dessus montre certaines options à sélectionner pour démarrer la conversion.
La plupart des options ont déjà été abordées, comme le répertoire d'entrée et de sortie, le répertoire du modèle, etc. Un élément essentiel est les "Alignements", qui font référence au fichier d'alignement (.fsa) de la vidéo cible. Ce fichier est créé dans le répertoire d'entrée lors de l'extraction.
Le champ "Alignements" peut être laissé vide si ce fichier n'a pas été déplacé. Sinon, il faut sélectionner le fichier et passer aux options suivantes. Cependant, il ne faut pas oublier de nettoyer le fichier d'alignement si vous avez nettoyé les extractions auparavant.
Un mini-outil pour cela est disponible dans "Outils > Alignements".
Commencez par sélectionner "Remove-Faces" dans la section "Job", puis sélectionnez le fichier d'alignement d'origine et le dossier des visages cibles nettoyés, puis cliquez sur "Alignements" en bas à droite.

Cela créera un fichier d'alignement modifié, correspondant au dossier des visages optimisés. N'oubliez pas que nous en avons besoin pour la vidéo cible, où nous voulons remplacer le visage.
Plusieurs configurations supplémentaires sont disponibles, notamment le réglage des couleurs et le type de masque. Le réglage des couleurs dicte le mélange du masque. Il est possible d'essayer plusieurs options, de vérifier l'aperçu, puis de sélectionner l'option optimale.
Le type de masque est un paramètre plus important. Son choix dépend de vos attentes et du matériel disponible. En général, vous devez également tenir compte des caractéristiques de la vidéo d'entrée. Par exemple, "Vgg-Clear" fonctionne bien avec les visages frontaux sans obstruction, tandis que "Vgg-Obstructed" convient aux visages présentant des obstructions (gestes de la main, lunettes, etc.).
Ensuite, la section "Writer" propose plusieurs options, selon le format de sortie souhaité. Par exemple, sélectionnez "Ffmpeg" pour obtenir un rendu vidéo.
Globalement, la clé pour créer un deepfake réussi consiste à prévisualiser plusieurs résultats et à les optimiser en fonction du temps disponible et de la puissance de votre matériel informatique.
Applications des deepfakes
Les deepfakes ont des applications positives, négatives et dangereuses.
Les applications positives consistent par exemple à recréer des leçons d'histoire en faisant intervenir les personnes qui étaient réellement présentes à l'époque, afin de rendre l'expérience plus immersive.
Les plateformes d'apprentissage en ligne utilisent également les deepfakes pour générer des vidéos à partir de textes.
L'un des plus grands bénéficiaires des deepfakes sera l'industrie cinématographique. Ils permettront d'imaginer plus facilement les acteurs principaux en train de réaliser des cascades, même si ce sera un cascadeur qui prendra les risques. De plus, la création de films multilingues sera grandement simplifiée.
En ce qui concerne les applications négatives, il y en a malheureusement beaucoup. La plus grande utilisation des deepfakes à ce jour (96 %, selon ce rapport de Deeptrace) est dans l'industrie du porno, pour remplacer le visage des acteurs par celui de célébrités.
De plus, les deepfakes sont également utilisés comme armes contre des femmes "ordinaires". Ces victimes ont généralement des photos ou des vidéos de haute qualité sur leurs profils de réseaux sociaux, qui sont utilisées pour la création de deepfakes.
Une autre application effrayante est le "vishing" ou hameçonnage vocal. Le PDG d'une entreprise basée au Royaume-Uni a ainsi transféré 243 000 $ suite à un appel du "PDG" de sa société mère allemande. Il s'est avéré par la suite que cet appel était un faux.
Mais ce qui est encore plus dangereux, c'est l'utilisation des deepfakes pour déclencher des guerres ou obtenir des redditions. Une tentative récente a montré le président ukrainien, Volodymyr Zelensky, en train de demander à ses troupes et à son peuple de se rendre. La vérité a été révélée grâce à la mauvaise qualité de la vidéo.
En résumé, les deepfakes ont de nombreuses applications, et ce n'est qu'un début.
Ce qui nous amène à la question cruciale :
Les deepfakes sont-ils légaux ?
Cela dépend principalement de la législation locale. Bien qu'il n'existe pas encore de lois bien définies indiquant ce qui est autorisé ou non.
Ce qui est clair, c'est que la légalité des deepfakes dépend de leur usage, c'est-à-dire de l'intention. Il n'y a pas de problème si l'intention est de divertir ou d'éduquer une personne, sans nuire à la personne dont le visage est remplacé.
Par contre, les applications malveillantes devraient être sanctionnées par la loi, quelle que soit la juridiction. La question de la violation des droits d'auteur mérite également d'être prise en compte.
Il est conseillé de se renseigner auprès des autorités locales sur les applications légales des deepfakes.
Soyez vigilant !
Les deepfakes utilisent l'intelligence artificielle pour faire dire n'importe quoi à n'importe qui.
La première chose à faire est de ne pas faire confiance à tout ce que vous voyez sur Internet. Il y a beaucoup de désinformation, et son efficacité augmente sans cesse.
Comme il deviendra de plus en plus facile de créer des deepfakes, il est temps d'apprendre à les repérer.