> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Brève introduction aux échantillonneurs

Stable Diffusion Art. (n.d.). Échantillonneurs. Consulté depuis [https://stable-diffusion-art.com/samplers/.](https://stable-diffusion-art.com/samplers/)

De nombreuses méthodes d’échantillonnage sont disponibles dans Novita AI, notamment Euler a, Heun et DDIM. Que sont les échantillonneurs ? Comment fonctionnent-ils ? Quelles sont leurs différences ? Lequel devriez-vous utiliser ? Vous trouverez les réponses dans cet article.

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_01.png" />
</Frame>

Pour produire une image, Stable Diffusion génère d’abord une image complètement aléatoire dans l’espace latent. Le prédicteur de bruit estime ensuite le bruit de l’image, qui est ensuite soustrait de l’image. Ce processus est répété plusieurs fois, ce qui donne une image nette.

Ce processus de débruitage est appelé échantillonnage, car Stable Diffusion génère une nouvelle image échantillon à chaque étape. La méthode utilisée lors de l’échantillonnage est appelée `sampler` ou `sampling method`.

L’échantillonnage n’est qu’une partie du modèle Stable Diffusion. Lisez l’article « Comment fonctionne Stable Diffusion ? » si vous souhaitez comprendre l’ensemble du modèle.

Voici ci-dessous un processus d’échantillonnage en action. L’échantillonneur produit progressivement des images de plus en plus nettes.

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_02.webp" />
</Frame>

Bien que le cadre soit le même, il existe de nombreuses façons différentes de réaliser ce processus de débruitage. Il s’agit souvent d’un compromis entre vitesse et précision.

### Présentation des échantillonneurs

À l’heure où ces lignes sont écrites, 19 échantillonneurs sont disponibles dans Novita AI, et ce nombre semble augmenter avec le temps. Quelles sont les différences ?

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_03.png" />
</Frame>

Vous les découvrirez dans la suite de cet article. Les détails techniques peuvent être déroutants, je vais donc inclure une vue d’ensemble dans cette section pour vous aider à vous faire une idée générale de ce qu’ils sont.

#### Solveurs ODE classiques

Commençons par les plus simples. Certains des échantillonneurs de la liste ont été inventés il y a plus de cent ans. Ce sont des solveurs classiques pour équations différentielles ordinaires (ODE).

* Euler – Le solveur le plus simple possible.
* Heun – Une version plus précise, mais plus lente, d’Euler.
* LMS (Linear Multi-Step Method) – Même vitesse qu’Euler, mais supposément plus précis.

#### Échantillonneurs ancestraux

Remarquez-vous que certains noms d’échantillonneurs comportent une seule lettre « a » ?

* Euler a
* DPM2 a
* DPM++ 2S a
* DPM++ 2S a Karras

Ce sont des échantillonneurs ancestraux. Un échantillonneur ancestral ajoute du bruit à l’image à chaque étape d’échantillonnage. Ce sont des échantillonneurs stochastiques, car le résultat de l’échantillonnage contient une part d’aléatoire.

Notez que de nombreux autres échantillonneurs sont également stochastiques, même si leur nom ne contient pas de « a ».

L’inconvénient de l’utilisation d’un échantillonneur ancestral est que l’image peut ne pas converger. Comparez ci-dessous les images générées avec Euler a et Euler.

Euler a ne converge pas. (étapes d’échantillonnage 2–40)

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_04.webp" />
</Frame>

Euler converge. (étapes d’échantillonnage 2-40)

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_05.webp" />
</Frame>

Les images générées avec Euler a ne convergent pas à un nombre élevé d’étapes d’échantillonnage, tandis que les images issues d’Euler convergent bien.

Pour la reproductibilité, il est souhaitable que l’image converge. Si vous souhaitez générer de légères variations, vous devriez utiliser une graine variationnelle.

#### Planification du bruit Karras

Les échantillonneurs étiquetés « Karras » utilisent la planification du bruit recommandée dans l’[article de Karras](https://arxiv.org/abs/2206.00364). Si vous regardez attentivement, vous verrez que les tailles des pas de bruit sont plus petites vers la fin. Cet ajustement améliore la qualité des images.

#### DDIM et PLMS

DDIM (Denoising Diffusion Implicit Model) et PLMS (Pseudo Linear Multi-Step Method) étaient les échantillonneurs inclus avec le Stable Diffusion v1 original. DDIM est l’un des premiers échantillonneurs conçus pour les modèles de diffusion, tandis que PLMS est une alternative plus récente et plus rapide à DDIM. Ils sont généralement considérés comme obsolètes et ne sont plus beaucoup utilisés.

#### DPM et DPM++

DPM (Diffusion Probabilistic Model Solver) et DPM++ sont de nouveaux échantillonneurs conçus pour les modèles de diffusion, publiés en 2022. Ils représentent une famille de solveurs à l’architecture similaire.

DPM et DPM2 sont similaires, DPM2 étant du second ordre (plus précis, mais plus lent).

DPM++ est une amélioration de DPM.

DPM adaptive ajuste la taille des pas de manière adaptative. Il peut être lent, car il ne garantit pas l’achèvement dans le nombre spécifié d’étapes d’échantillonnage.

#### UniPC

UniPC (Unified Predictor-Corrector) est un nouvel échantillonneur publié en 2023. Inspiré par la méthode prédicteur-correcteur des solveurs ODE, il peut générer des images de haute qualité en 5 à 10 étapes.

### Comment choisir un échantillonneur

Dans cette section, je fournirai quelques comparaisons objectives pour vous aider à décider.

#### Convergence de l’image

Dans cette section, je vais générer la même image avec différents échantillonneurs, jusqu’à 40 étapes d’échantillonnage. La dernière image à la 40e étape servira de référence pour évaluer la vitesse de convergence de l’échantillonnage, avec la méthode Euler comme point de comparaison.

> Euler, DDIM, PLMS, LMS Karras et Heun

Commençons par examiner Euler, DDIM, PLMS, LMS Karras et Heun en tant que groupe, car ils représentent des solveurs ODE classiques ou des solveurs de diffusion originaux. DDIM converge avec à peu près le même nombre d’étapes qu’Euler, mais avec davantage de variations en raison de l’injection de bruit aléatoire pendant ses étapes d’échantillonnage.

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_06.png" />
</Frame>

PLMS n’a pas donné de bons résultats dans ce test.

LMS Karras semble avoir du mal à converger et se stabilise à une ligne de base plus élevée.

Heun converge plus rapidement, mais il est deux fois plus lent, car il s’agit d’une méthode du second ordre. Par conséquent, nous devrions comparer Heun à 30 étapes avec Euler à 15 étapes, par exemple.

> Échantillonneurs ancestraux

Si votre objectif est d’obtenir une image stable et reproductible, vous devriez éviter d’utiliser des échantillonneurs ancestraux, car ils échouent tous à converger.

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_07.png" />
</Frame>

> DPM et DPM2

DPM fast n’a pas bien convergé. DPM2 et DPM2 Karras donnent de meilleurs résultats qu’Euler, mais là encore au prix d’une lenteur deux fois plus importante.

DPM adaptive donne des résultats trompeusement bons, car il utilise ses propres étapes d’échantillonnage adaptatives. Il peut être très lent.

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_08.png" />
</Frame>

> Solveurs DPM++

DPM++ SDE et DPM++ SDE Karras souffrent du même défaut que les échantillonneurs ancestraux. Non seulement ils ne convergent pas, mais les images fluctuent aussi fortement lorsque le nombre d’étapes change.

DPM++ 2M et DPM++ 2M Karras donnent de bons résultats. La variante Karras converge plus rapidement lorsque le nombre d’étapes est suffisamment élevé.

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_09.png" />
</Frame>

> UniPC

UniPC converge un peu plus lentement qu’Euler, mais cela reste tout à fait correct.

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_10.png" />
</Frame>

#### Vitesse

<Frame>
  <img height="404" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_11.png" />
</Frame>

Bien que DPM adaptive donne de bons résultats en convergence, il est aussi le plus lent.

Vous avez peut-être remarqué que le reste des temps de rendu se répartit en deux groupes : le premier prend à peu près le même temps (environ 1x), tandis que l’autre prend environ deux fois plus longtemps (environ 2x). Cela reflète l’ordre des solveurs. Les solveurs du 2e ordre, bien que plus précis, doivent évaluer deux fois le U-Net de débruitage. Ils sont donc 2x plus lents.

#### Qualité

Bien sûr, la vitesse et la convergence ne signifient rien si les images ont l’air médiocres.

**Images finales**

Commençons par examiner des échantillons de l’image.

<Frame>
  <img height="1200" src="https://next-app-static.s3.ap-southeast-1.amazonaws.com/get-started/sampler_12.png" />
</Frame>

DPM++ fast a échoué assez nettement. Les échantillons ancestraux n’ont pas convergé vers l’image vers laquelle les autres échantillonneurs ont convergé.

Les échantillonneurs ancestraux ont tendance à converger vers l’image d’un chaton, tandis que les déterministes ont tendance à converger vers un chat. Il n’y a pas de bonne réponse tant que le résultat vous plaît.

Qualité perceptuelle
Une image peut toujours avoir une belle apparence même si elle n’a pas convergé. Voyons à quelle vitesse chaque échantillonneur peut produire une image de haute qualité.

Vous verrez la qualité perceptuelle mesurée avec BRISQUE (Blind/Referenceless Image Spatial Quality Evaluator). Cette métrique mesure la qualité des images naturelles.

DDIM s’en sort étonnamment bien ici, capable de produire l’image de la meilleure qualité du groupe en seulement 8 étapes.

### Alors… lequel est le meilleur ?

Voici mes recommandations :

1. Si vous voulez utiliser quelque chose de rapide, convergent, récent et de qualité correcte, d’excellents choix sont

* DPM++ 2M Karras avec 20 – 30 étapes
* UniPC avec 20-30 étapes.

2. Si vous voulez des images de bonne qualité et que la convergence vous importe peu, de bons choix sont

* DPM++ SDE Karras avec 10-15 étapes (Remarque : il s’agit d’un échantillonneur plus lent)
* DDIM avec 10-15 étapes.

3. Évitez d’utiliser des échantillonneurs ancestraux si vous préférez des images stables et reproductibles.

4. Euler et Heun sont de bons choix si vous préférez quelque chose de simple. Réduisez le nombre d’étapes pour Heun afin de gagner du temps.
