Préparez-vous à découvrir le secret ultime pour maîtriser Stable Diffusion : le negative prompt !
Oubliez les masques compliqués avec l'inpainting, avec le negative prompt, vous pouvez simplement entrer votre demande en texte. certains visuels ne peuvent être générés qu'en utilisant le negative prompt.
Dans cet article, je vous emmène dans une exploration fascinante avec un exemple concret d'utilisation du negative prompt. Puis, je vous dévoilerai les secrets de son fonctionnement dans Stable Diffusion.
Un exemple simple
Positive prompt uniquement
Disons que nous voulons juste générer des images d'un homme. Je vais commencer par utiliser Stable Diffusion v1.5 avec ce prompt pour un portrait photo d’un homme.
Portrait photo of a man
Voilà, sans suprise, nous avons obtenu ce à quoi nous pouvions nous attendre. Mais ces hommes ont peut être l’air un peu trop vieux et serieux. Essayons donc d’enlever leurs moustaches pour leur donner un coup de jeune. Voici donc notre nouveau prompt :
Portrait photo of a man without mustache
Allo Houston, on a un problème ! Les moustaches sont encore plus grande ! Que se passe-t-il ?
Le problème est plus que probablement dû au fait que Stable Diffusion comprend mal le lien entre les mots without (sans) et mustache. Et du coup, il a surtout compris compris que le prompt comprend les mots homme ET moustache → Il crée donc des images avec ces deux élèments bien présents.
Avec le prompt négatif
Que pouvons-nous donc faire pour générer des hommes sans moustache ?
La solution est d'utiliser le negative prompt. Nous allons reprendre notre premier prompt, mais y ajouter un prompt négatif.
Prompt
Portrait photo of a man
Negative prompt
Mustache
Cette fois, c’est bon : nous avons enfin générer des photos d’hommes sans moustache !
Nous venons de voir le principe d'utilisation du negative prompt en action : S’il y a quelquechose que vous ne voulez pas voir, indiquez le dans le prompt négatif.
Comprendre le fonctionn@ement des negatives prompts
Qu'est-ce qu'un negative prompt ?
Vous avez sans doute déjà entendu parler du conditionnement text-to-image, qui consiste à convertir des prompts (des phrases) en vecteurs d'incorporation pour alimenter un prédicteur de bruit appelé U-Net. C’est le fonctionnement à la base de Stable Diffusion.
Mai il y a en fait deux ensembles de vecteurs d'incorporation pour le conditionnementtext-to-image : un pour le prompt positif et un autre pour le prompt négatif. (rem: Les deux types de prompts ont 77 tokens chacun, et vous pouvez les utiliser séparément ou ensemble.)
Le prompt négatif est utilisé dans un algorithme appelé échantillonneur, qui s'occupe de la diffusion inverse. Pour mieux comprendre comment fonctionne le prompt négatif, il est important de comprendre comment l'échantillonage fonctionne sans lui.
Echantillonnage sans negative prompt
Ce type d'échantillonnage commence par brouiller un peu l'image avec un échantillonnage conditionnel qui est dirigé par le prompt de texte. Ensuite, l'algorithme brouille à nouveau l'image avec un échantillonnage inconditionnel. Cela signifie que l'algorithme génère des images aléatoires sans utiliser de prompt. Le résultat finale est la différence entre les échantillons conditionnels et inconditionnels.
Ce processus est répété pour chaque steps d'échantillonnage pour atteindre le résultat souhaité. De cette manbière, à chaque étape, le résultat ressemble un peu plus au prompt positif et un peu moins à un prompt alétoire.
Echantillonnage avec negative prompt
Dans ce cas, l'échantillonnage inconditionnel est modifié pour utiliser un prompt négatif au lieu d'un prompt vide. Au lieu de diriger la diffusion n”agtive vers des images aléatoires, le prompt négatif dirige la diffusion loin des images associées à celui-ci.
Le prompt positif dirige la diffusion vers les images associées, tandis que le prompt négatif dirige la diffusion loin de celles-ci. Gardez à l'esprit que la diffusion se produit dans l'espace latent, pas dans les images. Les images sont uniquement utilisées pour l'illustration du processus.
Espace latent
Imaginons un monde où vous pouvez demander à une machine de créer des images pour vous. C'est ce que nous appelons l'espace latent.
Lorsque vous demandez à Stable Diffusion de vous créer un "Portrait photo d'un homme", il va choisir des images d'hommes avec et sans moustache dans un grand répertoire d'images appelé "espace latent". Cela signifie que vous devriez vous attendre à voir des images d'hommes avec et sans moustache.
Mais que se passe-t-il si vous voulez seulement voir des images d'hommes sans moustache? Il suffit d'ajouter un "prompt négatif" en demandant à la machine de ne pas inclure des "hommes avec moustache". La machine va alors ignorer toutes la partie “hommes avec moustaches” et ne vous générera que des images d'hommes sans moustache.
C'est comme cela que le negative prompting vous permet de demander à la machine de vous créer exactement ce que vous voulez voir.
Conclusion
J'espère que cet article vous aura donné un bon aperçu de ce qu'est le prompt négatif et comment il fonctionne.
Le prompt négatif supprime des objets ou des styles d'une manière qui ne serait pas possible en jouant uniquement avec le prompt positif. Il fonctionne en détournant l'échantillonnage inconditionnel à chaque étape d'échantillonnage, de sorte que la diffusion s'éloigne de ce qui est décrit dans le prompt négatif.