diff --git a/content/course/modern-ds/dallE/index.qmd b/content/course/modern-ds/dallE/index.qmd index 29a0ad474..32c4c0575 100644 --- a/content/course/modern-ds/dallE/index.qmd +++ b/content/course/modern-ds/dallE/index.qmd @@ -1,5 +1,5 @@ --- -title: "Génération d'images avec Python et DALL-E" +title: "Génération d'images avec Python, DALL-E et StableDiffusion" date: 2022-08-26T13:00:00Z draft: false weight: 60 @@ -46,7 +46,12 @@ print_badges("content/course/modern-ds/dallE.qmd") ``` ::: -{{% box status="note" title="Remarque" icon="fa fa-lightbulb" %}} +::: {.cell .markdown} +```{=html} + +``` +::: + +::: {.cell .markdown} +```{=html} + +``` +::: # Contexte -La publication par l'organisation [Open AI](https://openai.com/) de -son modèle de génération de contenu créatif [Dall-E-2](https://openai.com/dall-e-2/) +La publication en avril 2022 par l'organisation [Open AI](https://openai.com/) de +son modèle de génération de contenu créatif [`Dall-E-2`](https://openai.com/dall-e-2/) (un jeu de mot mélangeant Dali et Wall-E) a créé un bruit inédit dans -le monde de la _data-science_. -Un compte twitter ([@Weird Dall-E Mini Generations](https://twitter.com/weirddalle)) -propose de nombreuses générations de contenu drôles ou incongrues. +le monde de la _data-science_[^1]. + +L'inconvénient principal de `Dall-E` +pour générer facilement du contenu +est que le nombre de contenu pouvant être créé +avec un accès gratuit est limité (50 crédits gratuits par mois)[^2]. +Depuis le 22 Août 2022, un générateur de contenu +similaire est disponible gratuitement, +avec une licence plus permissive[^3]. Ce générateur, développé +par une équipe de chercheurs [@Rombach_2022_CVPR], +s'appelle `Stable Diffusion` ([dépôt `Github` pour le code source](https://github.com/CompVis/stable-diffusion) et +[dépôt `HuggingFace` pour le modèle mis à disposition](https://huggingface.co/CompVis/stable-diffusion-v1-4)[^4]). +Un [excellent article de blog](https://huggingface.co/blog/stable_diffusion) décrit la démarche de `Stable Diffusion`. La plupart des exemples originaux +dans cette partie seront basés sur `Stable Diffusion`. + +[^1]: _[The Economist](https://www.economist.com/news/2022/06/11/how-a-computer-designed-this-weeks-cover)_ a par exemple consacré +un numéro a ce sujet. Ce bruit sur la capacité des +intelligences artificielle à générer du contenu créatif +a d'ailleurs été amplifié plus récemment +avec la publication du _chatbot_ `chatGPT`. Le bloggeur tech Casey Newton a pu parler d'une [révolution créative dans le monde de l'IA](https://www.platformer.news/p/how-dall-e-could-power-a-creative). -Voici par exemple l'une des productions possibles de DALL-E-2 +[^2]: Au départ, la liste d'attente de deux semaines pour pouvoir créer un compte +a également été un frein. Celle-ci a néanmoins rapidement été levée. + +[^3]: Il est notamment possible de réutiliser l'image générée à des fins commerciales. En revanche, il est interdit de chercher à nuire à une personne. Pour cette raison, il est fréquent que les visages de personnes célèbres soient floutés pour éviter la création de contenu nuisant à leur réputation. + +[^4]: `Huggingface` est une plateforme de partage de modèles de type réseau de neurone. Les utilisateurs de réseaux de neurone peuvent +ainsi mettre à disposition le résultat de leurs travaux sous forme d'API pour faciliter la réutilisation de leurs +modèles ou réutiliser facilement des modèles, ce qui évite de les ré-entraîner (ce qui aurait un coût écologique non +négligeable comme expliqué dans le chapitre introductif). + + +`Dall-E-2` et `StableDiffusion` +sont des modèles généralistes. +D'autres modèles, plus spécialisés, +existent également. +Le modèle [`Midjourney`](https://en.wikipedia.org/wiki/Midjourney) +(produit propriétaire de la société du même nom) +permet la production de contenu +artistique, [DreamBooth](https://dreambooth.github.io/) (développé par Google) +est spécialisé dans la génération de contenu dans un nouveau +contexte. + +Le principe de tous ces modèles est le même: un utilisateur +donne une instruction (une ou plusieurs phrases) et l'intelligence +artificielle l'interprète et génère une image censée être +cohérente avec l'instruction. + +Voici par exemple l'une des productions possibles de `DALL-E-2` ![](https://upload.wikimedia.org/wikipedia/commons/2/2b/A_Shiba_Inu_dog_wearing_a_beret_and_black_turtleneck_DALLE2.jpg) _"A Shiba Inu dog wearing a beret and black turtleneck"_ -Et voici un premier exemple de production humoristique faite à partir de Mini Dall-E, la version + +`Midjourney`, spécialisé dans le contenu esthétique, +génèrera l'image suivante avec l'instruction _"mechanical dove"_: + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/A_mechanical_dove_8274822e-52fe-40fa-ac4d-f3cde5a332ae.png/250px-A_mechanical_dove_8274822e-52fe-40fa-ac4d-f3cde5a332ae.png) + +`StableDiffusion`, modèle généraliste comme `Dall-E`, +crééra le contenu suivant avec +l'instruction _"A photograph of an astronaut riding a horse"_: + +!["A photograph of an astronaut riding a horse"](https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/A_photograph_of_an_astronaut_riding_a_horse_2022-08-28.png/250px-A_photograph_of_an_astronaut_riding_a_horse_2022-08-28.png) + +Enfin, `DreamBooth` pourra lui introduire un chien dans une grande variété +de contextes: + +![](https://dreambooth.github.io/DreamBooth_files/teaser_static.jpg) + + +Un compte _Twitter_ ([@Weird Dall-E Mini Generations](https://twitter.com/weirddalle)) +propose de nombreuses générations de contenu drôles ou incongrues. +Voici un premier exemple de production humoristique faite à partir de Mini Dall-E, la version publique: @@ -96,7 +178,8 @@ Ainsi qu'un deuxième: {{< tweet user="weirddalle" id="1556573904600268801" >}} -Dall-E-2 s'appuie sur des réseaux de neurone à différents niveaux : +Les modèles `Dall-E-2` et `Stable Diffusion` +s'appuient sur des réseaux de neurone à différents niveaux : - le contenu de la phrase est analysé par un réseau de neurone similaire (mais bien sûr plus évolué) que ceux que nous avons présenté dans la partie [NLP](#nlp) @@ -107,25 +190,6 @@ modèles entraînés à reconnaître des images Illustration du fonctionnement de ce type de générateur d'image (ici à partir de `Stable Diffusion`) -Jusqu'à présent, l'inconvénient principal de `Dall-E` -pour générer facilement du contenu -était que le nombre de contenu pouvant être créé -avec un accès gratuit était limité (50 crédits gratuits par mois). -Depuis le 22 Août 2022, un générateur de contenu -similaire est disponible gratuitement, -avec une licence plus permissive[^1]. Ce générateur, développé -par une équipe de chercheurs [@Rombach_2022_CVPR], -s'appelle `Stable Diffusion` ([dépôt `Github` pour le code source](https://github.com/CompVis/stable-diffusion) et -[dépôt `HuggingFace` pour le modèle mis à disposition](https://huggingface.co/CompVis/stable-diffusion-v1-4)[^2]). -Un [excellent article de blog](https://huggingface.co/blog/stable_diffusion) décrit la démarche de `Stable Diffusion`. - - -[^1]: Il est notamment possible de réutiliser l'image générée à des fins commerciales. En revanche, il est interdit de chercher à nuire à une personne. Pour cette raison, il est fréquent que les visages de personnes célèbres soient floutés pour éviter la création de contenu nuisant à leur réputation. - -[^2]: `Huggingface` est une plateforme de partage de modèles de type réseau de neurone. Les utilisateurs de réseaux de neurone peuvent -ainsi mettre à disposition le résultat de leurs travaux sous forme d'API pour faciliter la réutilisation de leurs -modèles ou réutiliser facilement des modèles, ce qui évite de les ré-entraîner (ce qui aurait un coût écologique non -négligeable comme expliqué dans le chapitre introductif). Les images générées par `Stable Diffusion` sont également impressionnantes: