- Pour commencer tout de suite à jouer
- Pour comprendre ce qui se passe
- Ce que les outils peuvent faire
- 1. Text-to-image generation
- 2. Variations et retouche d’image
- Ce que les outils ne font pas encore
- Quelques outils gratuits (ou partiellement gratuits)
- Manuels et conseils
- Sous le capot : comment ca marche
Note : ce texte a été écrit à partir des informations partagées par ses divers membres, sur ce groupe Facebook dédié :
Pour commencer tout de suite à jouer
…et générer des images immédiatement, vous pouvez utiliser Stable Diffusion :
Pour comprendre ce qui se passe
Une vidéo GÉNIALE ( en anglais, mais sur Youtube, on peut configurer des sous-titres FR) pour comprendre la révolution en cours :
Ce que les outils peuvent faire
1. Text-to-image generation
Soumettre au système un texte qui décrit une image, et la laisser générer par le système. Le texte s'appelle un "prompt", et c'est la description en anglais de l'image à générer. Par exemple:
"A cat in a basket, color polaroïd" :
“ ‘Eiffel Tower’, intricate Art Nouveau fine print by Mucha” :
Ecrire le prompt demande de la réflexion :
- Il est conseillé d'imiter le vocabulaire et la syntaxe de légendes d'images, puisque c'est à partir d'images légendées que les modèles sont entraînés.
- Il est utile de mentionner des paramètres formels :
- le médium ('photography', 'fine print', 'comics', 'news photography', 'advertising', 'seventies movie poster'),
- le genre ('portrait', 'landscape', 'action scene'),
- le cadrage ('low angle', 'wide angle'),
- les couleurs (une ou plusieurs) ,
- la technique ('oil painting', 'polaroid', 'etching' 'fresco', 'sculpture'),
- le style d'un artiste ('by Hopper', 'in the style of Ingres' : Stable Diffusion est imbattable sur ce terrain),
- un référence d'appareil photo ('Canon X-1') et tout ce qui tourne : lentilles, éclairage, ouverture, temps de pose, flash, pellicule, grain),
- la lumière ('bright', 'contrasted', 'flashing', 'soft light', 'clair-obscur')
- le format ('20 x 25 cm'),
- l'atmosphère ('joyful', 'mysterious', 'vivid'),
- etc...
- Ici un outil pour vous aider à faire des prompts, qui vous donne une idée de l'étendue des possibilités : https://promptomania.com/prompt-builder/?fbclid=IwAR3hKohTsoHpFTFm9Os4qMw9yr6ckvkyAW9V9E9l1fXU4poUNCdiLKmWnlw
- Les IA font encore beaucoup d'erreurs (visages distordus, membres excédentaires, lumière incohérente). Si vous cherchez un résultat précis, comptez 20 générations pour une image cohérente et 20 images cohérentes pour une bonne image…
- On a de meilleurs résultats en suggérant des styles dans lesquels des sujets proches ont déjà été traités : Goya fera mieux la guerre, Botticelli fera mieux le paradis, Toulouse-Lautrec fera de meilleurs danseurs…
2. Variations et retouche d’image
- Image-to-image generation Génération de nouvelles images sur base d'une image introduite par vos soins. Ça marche bien avec un brouillon fait de plages de couleurs, l'IA ajoute le détail. On peut ainsi maîtriser la composition.
- Variants : déclinaison d'images.
- Upscaling (augmenter la définition, l'image est plus grande ET beaucoup plus précise. L'upscaling est réellement sensationnel sur Midjourney)
- Inpainting (compléter une partie effacée) : il est conseillé de restreindre le prompt au contenu de la zone à compléter : Dall-e 2 est très performant dans ce domaine, il permet de facilement comparer plusieurs corrections proposées.
- Outpainting (compléter l'image au-delà des bords) : il est conseillé d'adapter le prompt au contenu de la zone à compléter. Il est également conseillé de laisser une partie de l'image originale dans le nouveau cadre.
- Seed conservation : dans le but de produire des séries d'images dans un genre cohérent, blocage des paramètres laissés au hasard lors d'une génération précédente.
Ce que les outils ne font pas encore
- Définir une scène précise avec plus de deux concepts ('Paul embrasse Jeanne qui regarde Pierre')
- Positionner des éléments dans l'image ('Camion à gauche, moto à droite'), sauf à utiliser la génération "image-to-image" (voir plus haut). avec un brouillon fait de plages de couleurs.
- Conserver des objets d'une image à l'autre : sauf avec la fonctionnalité à venir 'générer de nouveaux objets' (ci-dessous) :
- Introduire de nouveaux objets / concepts au vocabulaire (votre photo ou celle de votre chat, de votre voiture...). Mai c'est en cours :
- Research paper ici : https://github.com/rinongal/textual_inversion
- Google dreamscape : https://deepdreamgenerator.com/
- Génération d'un modèle 3D derrière l'image pour pouvoir demander ces changements d'angle, des champ-contrechamps, etc.
- Corriger leurs propres erreurs. Sans doute à cause du coût de l’apprentissage contrastif (voir en bas ‘comment ça marche’). On a cependant déjà quelques outils de post-production :
- Un outil pour corriger les regards absents : https://huggingface.co/spaces/Xintao/GFPGAN?fbclid=IwAR3GLDb2R9zAkijo8toyN9ckbpMLbvqWTBweVBbrafTD5C1af4T3urOS71w
Quelques outils gratuits (ou partiellement gratuits)
- Stable Diffusion
- fait : generation.
- dans la version payante : inpainting, outpainting, image-to-image, variants, seed conservation.
- ne fait pas : upscaling. Par ailleurs, l'historique des générations est bancal, on a intérêt à sauver tout ce qu'on aime dès que ça s'affiche. En pratique, ça mine l'efficacité en général (outpainting, inpainting, etc.)
- la version gratuite respecte le style des peintres qui sont présents dans l'IA (très bon avec 'by Hopper' et avec 'intricate fine print by Mucha').
- gratuit : https://huggingface.co/spaces/stabilityai/stable-diffusion
- payant : http://beta.dreamstudio.ai/
- Midjourney
- fait : image-to-image, upscaling, variants.
- plus : pondération chiffrée des mots dans le prompt, très bon historique des générations.
- ne fait pas : inpainting, outpainting, seed conservation.
- mauvais pour : imiter le style d'un peintre.
- bon pour : esthétique léchée.
- gratuit : 25 images, une seule fois.
- https://midjourney.gitbook.io/docs/
- Dall-e 2
- offre quelques générations gratuites par mois.
- fait : inpainting, outpainting, image-to-image, variants. Très bon historique et archivage intelligent des images en ligne.
- ne fait pas : upscaling,seed conservation.
- ne fait pas : upscaling, l'historique des générations est bancal, on a intérêt à sauver tout ce qu'on aime dès que ça s'affiche.
- https://labs.openai.com/
- CF Spark
- pas encore utilisé.
- https://www.creativefabrica.com/spark/?utm_source=site&utm_medium=link&utm_id=promptomania
- Google Dreamscape :
- pas encore utilisé.
- https://deepdreamgenerator.com/
- Diffusionbee :
- logiciel gratuit sous Mac, basé sur stable diffusion, fonctionne en local (sans connexion Internet.)
- pas encore utilisé.
- https://diffusionbee.com/
Manuels et conseils
- Conseils pour générer des prompts esthétiques : https://promptomania.com/prompt-builder/?fbclid=IwAR3hKohTsoHpFTFm9Os4qMw9yr6ckvkyAW9V9E9l1fXU4poUNCdiLKmWnlw
- Catalogue de styles : "Comparison of all artists in Stable Diffusion" : https://www.urania.ai/top-sd-artists?fbclid=IwAR3Lvy4aI2Y_J1laCnffx3mgFpFl-4zFJdb8stveuejXdWxHuRJaMaciOQo
- Conseils pour compléter la production des IA avec des éditeurs de photos genre photoshop : https://www.slaphappylarry.com/making-ai-art-with-midjourney/
Sous le capot : comment ca marche
(sous réserve de ma bonne compréhension, ceci n’a pas été validé par un expert en IA…)
La diffusion consiste à essayer de retrouver une image connue à partir de bruit.
Ce procédé permet d’éduquer un intelligence artificielle de type réseau de neurones sans avoir recours à l’apprentissage contrastif.
Ce procédé classique d’apprentissage, très coûteux en ressources informatiques, consiste à encourager un ’bon résultat’ et décourager un ‘mauvais résultat’. Les nouvelles IA plutôt appel à la diffusion de bruit :
A partir d’un stock d’image nettes, on génère d’abord pour chaque image du stock une bibliothèque d’images de plus en plus floues, jusqu’à en devenir méconnaissables, ensuite, on éduque un réseau de neurones à générer au hasard l’une des images de stock nettes en progressant par étapes, en partant d’un bruit quelconque, en s’aidant, à chaque étape de la progression, de la bibliothèque d’images floues.
Quand cette bibliothèque de niveaux de flou est prête, on utilise la diffusion de bruit sous contrainte linguistique : dans le stock d’image nettes, chacune des images est associée avec sa légende, abstraite sous la forme d’un état du modèle modèle d’IA linguistique GPT3.
Le réseau de neurones est conçu de telle manière que, à chaque étape du processus de diffusion, lorsqu’il utilise les images floues pour orienter la génération, il sélectionne celles dont la légende a,, selon par GPT-3, les meilleures correspondances avec une phrase quelconque , phrase qu’on appelle le “prompt”. On a donc :
- Préparation de l’IA :
- Récolte : on récupère sur Internet des milliards d’images avec leurs légendes.
- Association des légendes dans l’IA linguistique : chaque image est associée à un état du réseau de neurones (IA) linguistique GPT3.
- Diffusion : Chaque image du stock est associée à une bibliothèque de versions de plus en plus floues.
- Utilisation de l’IA :
- L’utilisateur écrit le prompt et le soumet à l’IA.
- Abstraction du prompt : l’utilisateur rentre une phrase quelconque décrivant l’image à générer, qui est soumise au réseau de neurones GPT3.
- Seeding : on initialise l’image à générer avec du bruit : l’image est remplie d’un flou gaussien produit à partir d’une série de nombres au hasard (seed). Si il effectue plusieurs itérations, certains modèles offrent la possibilité d’utiliser le même seed.
- Génération par étape :
- Matching : le réseau de neurones cherche dans les images les plus floues celles qui correspondent visuellement le mieux au seed.
- Orientation linguistique : parmi les diverses correspondances données par le matching, l’IA sélectionne celles dont la légende correspond le mieux au prompt. Certains systèmes offrent un certain contrôle de la dureté de l’orientation linguistique.
- Composition 2D : le réseau génère plusieurs images d’essai, chacun des essais étant composé de sorte que ses diverses parties de l’image proviennent d’extraits des meilleures correspondances.
- Sélection linguistique : chacune des images d’essai est soumise à un composant IA CLIP (Contrastive Language-Image Pre-Training), qui sélectionne celle qui a la meilleure correspondance avec le prompt. Certains systèmes offrent un certain contrôle de la dureté de la sélection linguistique (’clipping’).
- Itération : on recommence le processus de a. à d., à un niveau de flou un peu inférieur, et ainsi de suite jusqu’à atteindre le degré de flou zéro. Il peut typiquement y avoir 50 itérations. Certains systèmes offrent la possibilité de définir le nombre d’itérations entre le seed et le flou zéro(’stages’).
Une vidéo pédagogique par un expert dans le domaine :
Auteur :