> ## 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.

# Eine kurze Einführung in Sampler

Stable Diffusion Art. (o. D.). Samplers. Abgerufen von [https://stable-diffusion-art.com/samplers/.](https://stable-diffusion-art.com/samplers/)

In Novita AI stehen viele Sampling-Methoden zur Verfügung, darunter Euler a, Heun und DDIM. Was sind Sampler? Wie funktionieren sie? Worin unterscheiden sie sich? Welche sollten Sie verwenden? Die Antworten finden Sie in diesem Artikel.

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

Um ein Bild zu erzeugen, generiert Stable Diffusion zunächst ein vollständig zufälliges Bild im latenten Raum. Der Noise Predictor schätzt anschließend das Rauschen des Bildes, das danach vom Bild subtrahiert wird. Dieser Prozess wird mehrfach wiederholt, wodurch ein sauberes Bild entsteht.

Dieser Entrauschungsprozess wird Sampling genannt, weil Stable Diffusion bei jedem Schritt ein neues Beispielbild generiert. Die beim Sampling verwendete Methode wird als `sampler` oder `sampling method` bezeichnet.

Sampling ist nur ein Teil des Stable Diffusion-Modells. Lesen Sie den Artikel „How Does Stable Diffusion Work?“, wenn Sie das gesamte Modell verstehen möchten.

Unten sehen Sie einen Sampling-Prozess in Aktion. Der Sampler erzeugt nach und nach immer sauberere Bilder.

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

Obwohl das Framework dasselbe ist, gibt es viele verschiedene Möglichkeiten, diesen Entrauschungsprozess durchzuführen. Oft handelt es sich um einen Kompromiss zwischen Geschwindigkeit und Genauigkeit.

### Überblick über Sampler

Zum Zeitpunkt der Erstellung dieses Artikels sind in Novita AI 19 Sampler verfügbar, und diese Zahl scheint mit der Zeit zu wachsen. Worin liegen die Unterschiede?

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

Im späteren Teil dieses Artikels erfahren Sie mehr darüber. Die technischen Details können überwältigend sein, daher gebe ich in diesem Abschnitt einen Überblick aus der Vogelperspektive, damit Sie eine allgemeine Vorstellung davon bekommen, was sie sind.

#### Klassische ODE-Solver

Beginnen wir mit den einfacheren. Einige der Sampler in der Liste wurden vor mehr als hundert Jahren erfunden. Sie sind klassische Solver für gewöhnliche Differentialgleichungen (ODE).

* Euler – Der einfachste mögliche Solver.
* Heun – Eine genauere, aber langsamere Version von Euler.
* LMS (Linear Multi-Step Method) – Gleiche Geschwindigkeit wie Euler, aber angeblich genauer.

#### Ancestral Sampler

Fällt Ihnen auf, dass einige Sampler-Namen den einzelnen Buchstaben „a“ enthalten?

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

Dies sind Ancestral Sampler. Ein Ancestral Sampler fügt dem Bild bei jedem Sampling-Schritt Rauschen hinzu. Sie sind stochastische Sampler, weil das Sampling-Ergebnis eine gewisse Zufälligkeit enthält.

Beachten Sie, dass viele andere Sampler ebenfalls stochastisch sind, auch wenn ihre Namen kein „a“ enthalten.

Der Nachteil bei der Verwendung eines Ancestral Samplers besteht darin, dass das Bild möglicherweise nicht konvergiert. Vergleichen Sie unten die mit Euler a und Euler erzeugten Bilder.

Euler a konvergiert nicht. (Sampling-Schritte 2–40)

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

Euler konvergiert. (Sampling-Schritte 2-40)

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

Mit Euler a erzeugte Bilder konvergieren bei vielen Sampling-Schritten nicht, während Bilder von Euler gut konvergieren.

Für Reproduzierbarkeit ist es wünschenswert, dass das Bild konvergiert. Wenn Sie leichte Variationen erzeugen möchten, sollten Sie einen variational seed verwenden.

#### Karras Noise Schedule

Die mit „Karras“ gekennzeichneten Sampler verwenden den Noise Schedule, der im [Karras article](https://arxiv.org/abs/2206.00364) empfohlen wird. Wenn Sie genau hinsehen, erkennen Sie, dass die Schrittgrößen des Rauschens gegen Ende kleiner sind. Diese Anpassung verbessert die Qualität der Bilder.

#### DDIM und PLMS

DDIM (Denoising Diffusion Implicit Model) und PLMS (Pseudo Linear Multi-Step Method) waren die Sampler, die im ursprünglichen Stable Diffusion v1 enthalten waren. DDIM ist einer der ersten Sampler, die für Diffusionsmodelle entwickelt wurden, während PLMS eine neuere und schnellere Alternative zu DDIM ist. Sie gelten allgemein als veraltet und werden heute nicht mehr häufig verwendet.

#### DPM und DPM++

DPM (Diffusion Probabilistic Model Solver) und DPM++ sind neue Sampler, die für Diffusionsmodelle entwickelt und 2022 veröffentlicht wurden. Sie stellen eine Familie von Solvern mit ähnlicher Architektur dar.

DPM und DPM2 sind ähnlich, wobei DPM2 ein Verfahren zweiter Ordnung ist (genauer, aber langsamer).

DPM++ ist eine Verbesserung gegenüber DPM.

DPM adaptive passt die Schrittgröße adaptiv an. Es kann langsam sein, da es keine Fertigstellung innerhalb der angegebenen Anzahl von Sampling-Schritten garantiert.

#### UniPC

UniPC (Unified Predictor-Corrector) ist ein neuer Sampler, der 2023 veröffentlicht wurde. Inspiriert von der Predictor-Corrector-Methode in ODE-Solvern kann er eine hochwertige Bilderzeugung in 5-10 Schritten erreichen.

### So wählen Sie einen Sampler aus

In diesem Abschnitt gebe ich einige objektive Vergleiche, die Ihnen bei der Entscheidung helfen.

#### Bildkonvergenz

In diesem Abschnitt erzeuge ich dasselbe Bild mit verschiedenen Samplern mit bis zu 40 Sampling-Schritten. Das letzte Bild beim 40. Schritt wird als Referenz verwendet, um zu bewerten, wie schnell das Sampling konvergiert, wobei die Euler-Methode als Benchmark dient.

> Euler, DDIM, PLMS, LMS Karras und Heun

Sehen wir uns zunächst Euler, DDIM, PLMS, LMS Karras und Heun als Gruppe an, da sie klassische ODE-Solver oder ursprüngliche Diffusions-Solver darstellen. DDIM konvergiert bei ungefähr derselben Anzahl von Schritten wie Euler, jedoch mit mehr Variationen aufgrund der Einspeisung von zufälligem Rauschen während seiner Sampling-Schritte.

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

PLMS schnitt in diesem Test nicht gut ab.

LMS Karras scheint Schwierigkeiten bei der Konvergenz zu haben und stabilisiert sich auf einem höheren Basisniveau.

Heun konvergiert schneller, ist aber doppelt so langsam, da es sich um eine Methode zweiter Ordnung handelt. Daher sollten wir zum Beispiel Heun mit 30 Schritten mit Euler mit 15 Schritten vergleichen.

> Ancestral Sampler

Wenn ein stabiles, reproduzierbares Bild Ihr Ziel ist, sollten Sie Ancestral Sampler vermeiden, da sie alle nicht konvergieren.

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

> DPM und DPM2

DPM fast konvergierte nicht gut. DPM2 und DPM2 Karras schneiden besser ab als Euler, allerdings erneut auf Kosten einer doppelt so langsamen Ausführung.

DPM adaptive schneidet scheinbar gut ab, weil es eigene adaptive Sampling-Schritte verwendet. Es kann sehr langsam sein.

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

> DPM++-Solver

DPM++ SDE und DPM++ SDE Karras leiden unter demselben Nachteil wie Ancestral Sampler. Sie konvergieren nicht nur nicht, sondern die Bilder schwanken auch erheblich, wenn sich die Anzahl der Schritte ändert.

DPM++ 2M und DPM++ 2M Karras schneiden gut ab. Die Karras-Variante konvergiert schneller, wenn die Anzahl der Schritte hoch genug ist.

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

> UniPC

UniPC konvergiert etwas langsamer als Euler, aber nicht allzu schlecht.

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

#### Geschwindigkeit

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

Obwohl DPM adaptive bei der Konvergenz gut abschneidet, ist es auch am langsamsten.

Vielleicht ist Ihnen aufgefallen, dass die übrigen Renderzeiten in zwei Gruppen fallen: Die erste Gruppe benötigt ungefähr dieselbe Zeit (etwa 1x), und die andere Gruppe benötigt ungefähr doppelt so lange (etwa 2x). Dies spiegelt die Ordnung der Solver wider. Solver zweiter Ordnung sind zwar genauer, müssen das entrauschende U-Net jedoch zweimal auswerten. Daher sind sie 2x langsamer.

#### Qualität

Natürlich bedeuten Geschwindigkeit und Konvergenz nichts, wenn die Bilder schlecht aussehen.

**Endgültige Bilder**

Sehen wir uns zunächst Beispiele des Bildes an.

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

DPM++ fast ist ziemlich deutlich gescheitert. Ancestral Samples konvergierten nicht zu dem Bild, zu dem andere Sampler konvergierten.

Ancestral Sampler tendieren dazu, zu einem Bild eines Kätzchens zu konvergieren, während die deterministischen dazu tendieren, zu einer Katze zu konvergieren. Es gibt keine richtigen Antworten, solange sie für Sie gut aussehen.

Wahrnehmungsqualität
Ein Bild kann immer noch gut aussehen, auch wenn es nicht konvergiert ist. Schauen wir uns an, wie schnell jeder Sampler ein hochwertiges Bild erzeugen kann.

Sie sehen die Wahrnehmungsqualität gemessen mit BRISQUE (Blind/Referenceless Image Spatial Quality Evaluator). Es misst die Qualität natürlicher Bilder.

DDIM schneidet hier überraschend gut ab und kann innerhalb der Gruppe bereits mit nur 8 Schritten das Bild mit der höchsten Qualität erzeugen.

### Also … welcher ist der beste?

Hier sind meine Empfehlungen:

1. Wenn Sie etwas Schnelles, Konvergierendes, Neues und von ordentlicher Qualität verwenden möchten, sind ausgezeichnete Optionen:

* DPM++ 2M Karras mit 20 – 30 Schritten
* UniPC mit 20-30 Schritten.

2. Wenn Sie Bilder von guter Qualität möchten und Konvergenz für Sie keine Rolle spielt, sind gute Optionen:

* DPM++ SDE Karras mit 10-15 Schritten (Hinweis: Dies ist ein langsamerer Sampler)
* DDIM mit 10-15 Schritten.

3. Vermeiden Sie die Verwendung von Ancestral Samplern, wenn Sie stabile, reproduzierbare Bilder bevorzugen.

4. Euler und Heun sind gute Optionen, wenn Sie etwas Einfaches bevorzugen. Reduzieren Sie bei Heun die Anzahl der Schritte, um Zeit zu sparen.
