C'est bien joli tout ça mais que puis-je faire avec ?
Le prompt, c'est la description textuelle de l'image que l'on veut obtenir. Il peut être positif : "je veux ceci dans mon image" ou négatif : "je ne veux pas ça". Il est recommandé d'écrire dans la langue de Donald Trump même si le français peut parfois être "compris". Le texte sera analysé et transformé en directive ou "token" intelligible pour le modèle. De cette opération opaque dépend la bonne concordance entre le prompt et l'image obtenue. Certains mots ne serviront à rien quand d'autres auront trop de poids. D'où la nécessité de la constitution empirique d'une connaissance fine et pointue du fonctionnement des prompts. Il va de soi que cette connaissance durement acquise sera partiellement, voire intégralement, bonne à jeter à chaque nouvelle mise à jour.
Positive prompt
RAW photo, in the foreground a sad and disappointed and wet man waiting in heavy rain in a sad alley at night lit by the neon of a pub, ((a bouquet of faded tulips in his hand)), fov, raindrops on the lens, soothing tones, muted colors, high contrast, (natural skin texture, hyperrealism, soft light, sharp)
Negative prompt
(deformed, distorted, disfigured, doll:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, 3d, illustration, cartoon
On voit ici que certains passages sont entre parenthèses parfois terminés par deux points et un nombre à virgule. Cela sert à appuyer, à donner plus de "poids" aux mots. Dans le prompt positif, on insiste sur le bouquet de tulipes car le modèle avait sans doute du mal à représenter la bonne fleur. A noter qu'elles ne sont pas fanées sur l'image comme on l'a pourtant exprimé. On touche ici un premier point de difficulté dans le contrôle précis de ce que l'on veut obtenir. Il n'est pas toujours aisé d'avoir une parfaite concordance entre prompt et image.
Il est alors possible de partir d'une image ou de repartir d'une image générée pour tenter de la modifier légèrement ou plus fortement selon les besoins. On part donc d'une image (ici celle générée à l'étape d'avant) et on l'altère en modifiant le prompt. On règle la "force" de variation de l'image d'origine par rapport au prompt. Voici un prompt légèrement diffèrent et un respect de l'image d'origine fort dans la première image puis plus faible sur la seconde image.
RAW photo, in the foreground a very happy man waiting in heavy rain in a sad alley at night lit by the neon of a pub ...
Changeons le prompt de façon plus tranchée pour passer par exemple l'image en plein jour sur une plage. On choisit ici de s'éloigner plus fortement de l'image d'origine pour que le prompt s'exprime pleinement.
RAW photo, in the foreground a very happy man waiting in a beach, day light, ((a bouquet of faded tulips in his hand))
Ce que l'on constate outre que l'IA se soit lâchée sur la tulipe, c'est que si l'image est bien différente, la composition et les contrastes de l'image sont respectés. Ceci est dû au fait que la méthode part de l'image originale avec ajout de plus ou moins de bruit selon les réglages, pour débruiter vers une nouvelle image.
Maintenant si l'on ne veut modifier qu'une partie de l'image en conservant le reste à l'identique, c'est la méthode Inpaint que l'on va choisir. Ici on va définir avec un masque la partie de l'image à modifier. A savoir que l'on trouve des versions spécifiques "Inpaint", des checkpoints créés pour être plus efficaces sur ce type de méthode. Le prompt se contente ici de décrire simplement la partie de l'image concernée.
Exemple :
a old man with white hair
Seule la partie représentée par le masque blanc sur la première image se trouve modifiée. C'est une technique très utile non seulement pour la génération d'image mais aussi pour la retouche d'image en général.
On vient de voir les 3 usages de base les plus communs auxquels on peut ajouter l'upscale d'image qui consiste à augmenter la définition d'une image avec l'ajout de détails générés par IA. Ces fonctions sont en général intégrées aux interfaces utilisateur comme Automatic1111 mais il est possible d'y ajouter bon nombre d'extensions ou plugins pour étendre les possibilités.
C'est ce que nous verrons dans le prochain article.