Images IA : Le Deepfake facile… Création de souvenirs.

Pourquoi ? Pourquoi vouloir utiliser le visage d’une personne pour générer des photos/dessins à volonté ?

On pourrait penser qu’il n’y a ici que des intentions malsaines… Et pourtant pas du tout ! L’origine de ce besoin « technique » est tout autre.

Le problème fondamental des images par IA est la « permanence ». En effet, à chaque fois que vous générez une image, tout, ou presque, est différent. Aussi, les jolis personnages que vous venez de générer sont de la chance : Il va être difficile (impossible) de les utiliser dans d’autres situations…

C’est la raison pour laquelle la « permanence des personnages » (character consistency) est un problème de la génération par IA.

C’est de là que sont apparues les techniques de « DeepFake » avec l’intention de rendre un visage « collable » dans des images, et donc d’ouvrir la possibilité d’utiliser un même personnage dans différentes situations/styles/univers.

 

Tout commence avec une photo

Oui, là, ça fait froid dans le dos… Une simple photo correctement cadrée, comme une photo d’identité, suffit.

Pour les exemples, je vais utiliser mon visage. En effet, il n’est pas question de détourner l’image d’une personne, aussi…. il ne reste que moi et mon amour-propre…
Notez simplement que, si nous sommes amenés à nous rencontrer, depuis ces photos… le temps a passé. 😉

Notez aussi, que la photo du visage peut provenir d’une IA !

Enfin, cet article est destiné à servir pendant mes formations, ce qui explique l’utilisation de mon visage. Désolé pour ceux qui ne me connaissent pas de visu.

 

2 techniques de base +1

La première technique consiste à utiliser un filtre qui va « dire » au modèle de suivre une « forme » de visage basée sur la photo d’identité donnée. On utilise ControlNet, avec un IP-Adapter spécialisé dans les visages.

Mais ce filtre, tout seul, ne suffit pas à reproduire correctement un visage. Par contre, il permet de retrouver les traits et d’empêcher le modèle de faire à sa guise.

La deuxième technique consiste à utiliser une extension comme par exemple ReActor. Cette extension fait un Post-traitement. Ce point est important : Il ne s’agit pas ici d’influencer le modèle pour qu’il génère un visage, mais de prendre l’image finale pour lui apposer le visage cible. Selon les cas, on peut voir l’effet « copier-coller.

La troisième technique consiste à entrainer un LoRA sur la personne cible. Autrement dit, on prend une centaine de photos de la personne et on entraine un module que l’on pourra appeler dans tous les prompts. Cette technique est très (de plus en plus) utilisée avec les personnalités publiques.

Pour les exemples, j’utilise le cumul des 2 premières techniques.

Enfin, l’utilisation des IP-Adapter n’est, à cet instant, pas disponible pour des modèles de dernière génération comme FLUX. Aussi, les exemples sont sur des modèles SD1.5 ou SDXL.

 

Des exemples avec mon visage

Donc toutes ces photos/dessins sont « truquées » : J’ai donné à différents modèles un prompt et une vieille photo d’identité (quand j’étais plus jeune donc).

 

Prompt : 1gman, 40 y.o.,solo, wearing overalls, (growing tomatoes:1.2) in a sunny garden full of flowers,smiling, masterpiece, best quality, highly detailed (cinematic lighting, sunlight, volumetric), <lora:ip-adapter-faceid-plus_sd15_lora:1> ,4k

Quand je m’occupais de mon jardin

 

Prompt : Night in 1922 night exterior, photograph taken with a 35 mm camera outdoors in black and white. Garden of a mansion, A middle-aged man, mad scientist in a white suit and black rubber gloves, walks confidently. extravagantly heroic. captured in motion with motion blur with a 35mm camera

Une vieille photo des années 30…

 

Prompt : photograph taken with a 35mm camera outdoors in black and white, (1 man, mad scientist is making futuristic), Night in 1922 interior of a scientist’s laboratory at night, high-tech robots surrounded by tesla coils, captured in motion with motion blur, steampunk

Dans ma cave le dimanche matin.

 

 

Prompt : sketch artsyle, charcoal lines, strong blacks, a (40 year old man:1.5), highly detailed linework , old ship, black sails, pirate captain, hat, hair, wind, sea, motion, wind, heavy rain,  hyper-realistic characters, pastel, elegance, dramatic lighting, greyscale, expressive camera angle, matte, concept art, disintegrating

 

Croquis d’un gars sur le port à shanghai, j’étais jeune… un peu fou-fou

 

 

Prompt : photograph of a racing driver (rally) in overalls sitting in his (Porsche car:1.2) , the man is 50 year old, shaved. soft lighting, high quality, film grain, Fujifilm XT3

Quand je faisais de la course auto…

 

Le pire et le meilleur

Ce n’est que le début (car la vidéo arrive).
Je peux facilement générer, dès à présent, une image de moi, mais aussi de n’importe qui dont j’ai une photo de qualité honorable, dans toutes les situations que je souhaite, il n’y a pas de limite.

Cette possibilité est très pratique quand on doit illustrer un roman par exemple, ou toutes les illustrations avec un personnage récurent. Par contre, pour le reste, cela pose beaucoup de questions…

L’avenir va certainement passer par des LoRA entrainés sur des personnes ou personnages. J’imagine possible que, dans un avenir proche, on ne demande pas à un illustrateur de créer des illustrations, mais plutôt de créer des personnages qui seront entrainés pour générer des illustrations.

En regardant ce jour (novembre 2024) la personne publique la plus téléchargée sur 30 jours sur la plateforme Civitai, il s’agit de « Emma Watson » (la fille dans Harry Potter). Il existe donc un LoRA qui permet de générer des images de cette actrice à volonté… (ici : https://civitai.com/models/859919/emma-watson-flux?modelVersionId=966723)

Vous vous souvenez quand, sur quelques réseaux sociaux, on pouvait dire « qui est sur la photo » ?…

 

Références :

ReActor : https://github.com/Gourieff/sd-webui-reactor
ControlNet : https://github.com/lllyasviel/ControlNet

 

Qu’est qu’un LoRA ? Et comment les utiliser avec Stable Diffusion ?

Les modèles de grande envergure nécessitent habituellement des ressources de calcul importantes et un volume de données conséquent pour être ajustés à des tâches spécifiques.
On ne peut donc pas raisonnablement ré-entrainer un modèle entier juste pour ajouter un style, un personnage ou un univers.

Les Low-Rank Adaptations (LoRA) ont été développées pour répondre au besoin de fine-tuning efficace des modèles de génération d’images massifs, comme Stable Diffusion. LoRA contourne ce problème en introduisant des « adapteurs de bas-rang » qui modifient uniquement certaines parties des matrices de poids du modèle, réduisant ainsi considérablement la charge de calcul et la mémoire nécessaires pour l’entraînement.

Cette technique permet de conserver le modèle principal inchangé et d’ajuster des paramètres supplémentaires, qui se superposent pour spécialiser le modèle sans nécessiter une reformation complète. Pour utiliser LoRA avec Stable Diffusion, on peut charger un modèle pré-entrainé et y appliquer les adapteurs LoRA pré-configurés pour générer des images adaptées à des styles, sujets ou détails spécifiques sans avoir à réentraînner entièrement le modèle, offrant ainsi une solution efficace pour la personnalisation de génération d’images.

Autrement dit, on peut dire qu’un LoRA est comme un « plugin », un « Add-on », une « extension », qu’on insère dans le prompt pour utiliser un effet.

Comment cela fonctionne ?

Dans le prompt original, on ajoute <Nom_Du_Lora:Force> MotClef-Activation

Nom du LoRA : le nom du LoRA que vous avez téléchargé

Forcedu LoRA : de 0 à 2 . 1 par défaut, souvent on obtient de meilleurs résultats avec une valeur de 0.75/0.85

MotClef (trigger word) : les mots associés au LoRA et qui activent l’effet.

 

Reprenons l’exemple de prompt :  » An Alpine woman in the 1920s. Alpine mountains in background. » (La Savoie et la Haute-Savoie à toujours l’honneur donc 😉 )

Nous utiliserons un modèle FLUX.

Voici un rendu, sans utilisation de LoRA :

 

Exemple avec un LoRA spécialisé dans les films muets des années 1920

Le prompt : « An Alpine woman in the 1920s. Alpine mountains in background. <lora:20s_Silent_Movie:1> ArsMovieStill, 20s Silent Movie Still »

 

Exemple avec un LoRA spécialisé dans les films des années 1930

Le prompt :  » An Alpine woman in the 1920s. Alpine mountains in background. <lora:30s_Technicolor_Movie:0.85> ArsMovieStill, movie still from a 1930s technicolor movie »

 

 

Exemple avec un LoRA spécialisé dans les films noirs des années 1950

Le prompt :  » An Alpine woman in the 1920s. Alpine mountains in background. <lora:50s_Noir_Movie:1> ArsMovieStill, Noir Movie Still »

 

Exemple avec un LoRA spécialisé dans les films psychédéliques des années 1960

Le prompt :  » An Alpine woman in the 1920s. Alpine mountains in background. <lora:60s_Psychedelic_Movie:1> ArsMovieStill, movie still from a 60s psychedelic movie »

 

Exemple avec un LoRA spécialisé dans les films d’horreur des années 1970

Le prompt :  » An Alpine woman in the 1920s. Alpine mountains in background. <lora:70s_Horror_Movie:1> ArsMovieStill, movie still from a 1970s horror movie »

 

Exemple avec un LoRA spécialisé dans les films fantastiques des années 1980

Le prompt :  » An Alpine woman in the 1920s. Alpine mountains in background. <lora:80sFantasyMovie2:1> ArsMovieStill, 80s Fantasy Movie Still »

 

Que retenir de ces exemples ?

Que ce n’est pas aussi simple que ça ! Assez rapidement vous aurez des effets de « bleeding » , c’est-à-dire que le style ajouté déborde sur des aspects où vous ne le vouliez pas. Dans nos exemples, la tenue de la jeune femme, suivant les années, ne respecte pas le prompt orginal des 1920 .

Composer une image IA est beaucoup plus difficile qu’on le pense, cela demande, avant tout, d’avoir une idée précise de ce que l’on veut représenter…

 

Références : Les LoRA utilisés viennent de  https://civitai.com/user/ArsMachina

 

 

Impact de l’intelligence artificielle sur l’éducation : la triche pour tous

« Copier-Coller » , quoi de plus simple ?

Les élèves utilisent les ChatBots pour faire leurs devoirs, mais les professeurs aussi pour les corriger !

Voici une petite expérience pour éclairer le sujet de la triche : Imaginons que l’enseignant demande un devoir sur les points importants de la vie de Charlemagne.

En tant qu’élève

Le prompt malicieux :

 » Je dois faire un devoir sur la vie de charlemagne en 500 mots maximum. Fait ce devoir, mais ajoute des fautes qui n’en sont pas vraiment (c’est-à-dire qui ne modifient pas la justesse des raisonnements et des résultats) pour humaniser le résultat. Indique-moi ces passages volontairement maladroits où je peux modifier la réponse sans incidence sur le résultat. Le style d’écriture doit correspondre à un élève de 13 ans plutôt mauvais. Donne-moi 3 versions. Donne tes réponses dans un format facile à copier-coller. « 

 

Une des 3 réponses :

 

 

Conclusion pour l’élève : Pas mal du tout ! En faisant un mélange des 3 versions, il est très facile de rendre un devoir « humain ».

 

Mais l’enseignant aussi peut « tricher » !

Prompt de l’enseignant qui reçoit le devoir :

 » Je vais te donner des devoirs à corriger.
Tu feras une évaluation avec double correction.
Tu feras une liste des aspects positifs et des aspects négatifs de la réponse de l’élève, sachant que j’attends qu’il ait compris les grands moments de la vie de Charlemagne, en moins de 500 mots.
Donne une probabilité en pourcentage que le devoir ait été réalisé avec l’aide d’une IA.
Enfin, donne une appréciation sur la qualité du devoir, en une phrase bienveillante et encourageante.
Enfin, au fur et à mesure de cette session, tu me feras un comparatif argumenté par une note qualitative de tous les devoirs que je t’ai proposés.
Donne ta réponse dans un format facile à copier-coller.
Dis moi quand tu es prêt à évaluer les textes. »

 

La réponse du chat bot en lui donnant la version 1 de l’élève …

 Et voilà ! L’IA parle à l’IA …

Notez que le ChatBot estime à 30 % la probabilité que ce devoir provienne de lui.

La question est ici de savoir comment, pour les élèves et les enseignants, éviter une telle situation. Et en premier lieu, est-ce vraiment une aberration ?

Du point de vue de l’élève, clairement oui, si celui-ci ne comprend pas ce qu’il a copié-collé. L’IA a réalisé le travail à sa place et l’élève n’a rien appris. En revanche, si l’élève connaît parfaitement sa leçon et/ou retravaille les réponses, il a gagné du temps, et peut-être même appris une nouvelle façon de structurer son devoir. De plus, il peut approfondir certains aspects des réponses et en apprendre davantage sur la vie de Charlemagne.

Du point de vue de l’enseignant, la question est plus complexe. Je n’ai pas de réponse définitive.

Il me semblait simplement important de fixer cet exemple comme point de repère, un sujet de perplexité.

L’usage de l’IA dans l’éducation concerne les deux côtés : élèves ET enseignants.