
sampler of sampling method.
Sampling is slechts één onderdeel van het Stable Diffusion-model. Lees het artikel “Hoe werkt Stable Diffusion?” als je het volledige model wilt begrijpen.
Hieronder zie je een samplingproces in actie. De sampler produceert geleidelijk steeds schonere afbeeldingen.

Overzicht van samplers
Op het moment van schrijven zijn er 19 samplers beschikbaar in Novita AI, en dit aantal lijkt in de loop van de tijd te groeien. Wat zijn de verschillen?
Ouderwetse ODE-oplossers
Laten we beginnen met de eenvoudigere. Sommige samplers in de lijst zijn meer dan honderd jaar geleden uitgevonden. Het zijn ouderwetse oplossers voor gewone differentiaalvergelijkingen (ODE).- Euler – De eenvoudigst mogelijke oplosser.
- Heun – Een nauwkeurigere maar langzamere versie van Euler.
- LMS (Linear Multi-Step Method) – Dezelfde snelheid als Euler, maar vermoedelijk nauwkeuriger.
Ancestrale samplers
Merk je op dat sommige samplernamen één enkele letter “a” hebben?- Euler a
- DPM2 a
- DPM++ 2S a
- DPM++ 2S a Karras


Karras-ruisschema
De samplers met het label “Karras” gebruiken het ruisschema dat wordt aanbevolen in de Karras-artikel. Als je goed kijkt, zie je dat de stapgroottes van de ruis tegen het einde kleiner zijn. Deze aanpassing verbetert de kwaliteit van de afbeeldingen.DDIM en PLMS
DDIM (Denoising Diffusion Implicit Model) en PLMS (Pseudo Linear Multi-Step Method) waren de samplers die bij de oorspronkelijke Stable Diffusion v1 waren inbegrepen. DDIM is een van de eerste samplers die voor diffusiemodellen zijn ontworpen, terwijl PLMS een nieuwer en sneller alternatief voor DDIM is. Ze worden over het algemeen als verouderd beschouwd en worden niet meer veel gebruikt.DPM en DPM++
DPM (Diffusion Probabilistic Model Solver) en DPM++ zijn nieuwe samplers die zijn ontworpen voor diffusiemodellen en in 2022 zijn uitgebracht. Ze vertegenwoordigen een familie van solvers met een vergelijkbare architectuur. DPM en DPM2 lijken op elkaar, waarbij DPM2 van de tweede orde is (nauwkeuriger maar langzamer). DPM++ is een verbetering ten opzichte van DPM. DPM adaptive past de stapgrootte adaptief aan. Het kan traag zijn, omdat het geen voltooiing binnen het opgegeven aantal samplingstappen garandeert.UniPC
UniPC (Unified Predictor-Corrector) is een nieuwe sampler die in 2023 is uitgebracht. Geïnspireerd door de predictor-corrector-methode in ODE-solvers kan deze in 5-10 stappen beeldgeneratie van hoge kwaliteit bereiken.Een sampler kiezen
In dit gedeelte geef ik enkele objectieve vergelijkingen om je te helpen beslissen.Afbeeldingsconvergentie
In dit gedeelte genereer ik dezelfde afbeelding met verschillende samplers met maximaal 40 samplingstappen. De laatste afbeelding bij de 40e stap wordt gebruikt als referentie om te evalueren hoe snel de sampling convergeert, waarbij de Euler-methode als benchmark dient.Euler, DDIM, PLMS, LMS Karras en HeunLaten we eerst Euler, DDIM, PLMS, LMS Karras en Heun als groep bekijken, omdat ze old-school ODE-solvers of oorspronkelijke diffusiesolvers vertegenwoordigen. DDIM convergeert bij ongeveer hetzelfde aantal stappen als Euler, maar met meer variaties door de injectie van willekeurige ruis tijdens de samplingstappen.

Ancestrale samplersAls een stabiele, reproduceerbare afbeelding je doel is, moet je het gebruik van ancestrale samplers vermijden, omdat ze allemaal niet convergeren.

DPM and DPM2DPM fast convergeerde niet goed. DPM2 en DPM2 Karras presteren beter dan Euler, maar opnieuw ten koste van twee keer zo langzaam zijn. DPM adaptive presteert bedrieglijk goed omdat het zijn eigen adaptieve samplingstappen gebruikt. Het kan erg langzaam zijn.

DPM++-solversDPM++ SDE en DPM++ SDE Karras hebben dezelfde tekortkoming als ancestrale samplers. Ze convergeren niet alleen niet, maar de afbeeldingen fluctueren ook aanzienlijk wanneer het aantal stappen verandert. DPM++ 2M en DPM++ 2M Karras presteren goed. De Karras-variant convergeert sneller wanneer het aantal stappen hoog genoeg is.

UniPCUniPC convergeert iets langzamer dan Euler, maar niet al te slecht.

Snelheid

Kwaliteit
Natuurlijk betekenen snelheid en convergentie niets als de afbeeldingen er waardeloos uitzien. Eindafbeeldingen Laten we eerst naar voorbeelden van de afbeelding kijken.
Dus… welke is de beste?
Hier zijn mijn aanbevelingen:- Als je iets snels, convergerends, nieuws en met behoorlijke kwaliteit wilt gebruiken, zijn uitstekende keuzes
- DPM++ 2M Karras met 20 – 30 stappen
- UniPC met 20-30 stappen.
- Als je afbeeldingen van goede kwaliteit wilt en je niet om convergentie geeft, zijn goede keuzes
- DPM++ SDE Karras met 10-15 stappen (Opmerking: dit is een tragere sampler)
- DDIM met 10-15 stappen.
- Vermijd het gebruik van ancestrale samplers als je stabiele, reproduceerbare afbeeldingen verkiest.
- Euler en Heun zijn prima keuzes als je iets eenvoudigs verkiest. Verlaag het aantal stappen voor Heun om tijd te besparen.