Les mots que nous utilisons dans les prompts sont appelés tokens. Chaque token a son propre pouvoir, qui dépend de sa fréquence d'occurrence dans le jeu de données utilisé pour entraîner l'IA. Nous aborderons les détails techniques dans un instant, mais d'abord, concentrons-nous sur la façon de penser aux tokens de manière pratique.
Examinons un exemple : je prompt “1girl wearing white oversized coat with >< and outstretched arms”. Si chaque mot est un token, nous avons 11 tokens.
(Lorsque vous tapez ce prompt dans BetterWaifu, vous remarquerez que le compteur de tokens affiche 13. Cela est dû au fait que les tokens <start> et <end> sont ajoutés par l'IA en arrière-plan. Plus de détails à ce sujet dans la section suivante.)
Les prépositions comme “with”, “for”, “at”, “in” et les particules comme “and”, “a”, “to” comptent comme des tokens. Ainsi, elles ont également du pouvoir et influencent l'image.
Essayons le même prompt sans aucune particule ni préposition : “1girl, white oversized coat, ><, outstretched arms”. Les virgules comptent comme des tokens, donc nous en avons toujours 11 tokens, 13 avec les tokens de début et de fin. Le résultat est assez différent :
Je préfère ce résultat car il semble qu'on ait mis plus d'attention sur le manteau. Le token virgule est utilisé pour délimiter différents concepts.
Maintenant, bien que l'utilisation de tags séparés par des virgules soit mon approche recommandée pour le prompt dans BetterWaifu, cela ne signifie pas que retirer toutes les prépositions et particules améliore toujours le résultat. Parfois, il est important d'utiliser des prépositions pour indiquer des positions relatives.
Voici un exemple simple où une préposition fait toute la différence :
1girl, airplane, white oversized coat, ><, outstretched arms1girl inside airplane, white oversized coat, ><, outstretched arms
En plus de la force inhérente d'un token, sa position dans le prompt est également pondérée. Les tokens au début ont un poids plus important que ceux à la fin. Il est important de comprendre cela, car un token faible à la fin du prompt peut n'avoir aucun impact sur l'image. À l'inverse, un token fort au début peut complètement déterminer le résultat.
Pour contrôler la force d'un token, vous pouvez utiliser la construction (token:1.0), où le nombre représente la force du token. 0 – aucune influence, 1 – poids normal. Je ne dépasse généralement pas 1.5. Expérimenter avec différentes valeurs de force peut vous aider à affiner le niveau de contrôle souhaité sur les tokens dans vos prompts.
Explication Technique
La tokenisation est une méthode courante pour traiter les données textuelles dans la génération d'IA. Nous l'utilisons pour transformer le texte en nombres et les traiter avec des réseaux neuronaux.
Stable Diffusion tokenise un prompt textuel en une séquence de tokens. Par exemple, il divise le prompt textuel “a cute and adorable bunny” en les tokens a, cute, and, adorable, et bunny. Ensuite, Stable Diffusion ajoute les tokens <start> et <end> au début et à la fin des tokens.
La séquence de tokens résultante pour l'exemple ci-dessus serait <start>, a, cute, and, adorable, bunny, et <end> (7 tokens).
Pour faciliter le calcul, Stable Diffusion maintient les séquences de tokens de tout prompt textuel à une longueur de 77 en ajoutant ou en tronquant. Si le prompt d'entrée a moins de 77 tokens, des tokens <end> sont ajoutés à la fin de la séquence jusqu'à ce qu'elle atteigne 77 tokens.
La longueur de 77 a été fixée pour équilibrer performance et efficacité computationnelle. Différents logiciels auront des comportements différents si plus de 77 tokens sont utilisés :
Les 77 premiers tokens sont conservés et le reste est coupé.
Le prompt entier est divisé en morceaux de 75, les tokens de début et de fin sont ajoutés, et chaque morceau est traité dans l'ordre. C'est la méthode utilisée par BetterWaifu.