November 16, 2022

Разбираем Sampling method для SD

Окно Sampling Steps и Sampling method

Что такое Sampling method?
Это методы выборки для предсказание объектов из задонного вами промпта в сгенерированном шуме для приведения промпта к картинке. Промпт это текст который вы хотите сгенерировать.

Automatic1111 имеет на борту 17 Sampling method. Если охота прямо разобраться на коде как работают методы то советую почитать документацию с HuggingFace

Так какой же метод использовать и что значат ползунки?

CFG Scale

С начала разберемся в простом. CFG Scale это параметр определяющий на сколько промпт будет усилен (Чем больше число тем сильнее промпт ищется на картинке, но появляются артефакты). Нормальны результаты можно получить варьируя числа от 5 до 15.

Пример с значериями CFG Scale 5, 8, 15, 30

Что такое Sampling Steps и какое число брать?

Sampling Steps это число сколько раз программа пройдет через нейросеть в поисках обьектов из промпта одним из выбранных Sampling method'ов.

Из шума в жука

Собственно прогоним все Sampling method и посмотрим на результаты

Prompt: An intricate painting of divali celebrations by moebius and makoto shinkai, featured on artstation, pixiv, volumetric lighting, 8 k, highly detailed render, soft glow

Divali celebrations - это праздник, фестиваль света в индии

Euler a, Euler, LMS, Heun, DPM2

Euler a, Euler, LMS, Heun, DPM2

DPM2 a, DPM++ 2S a, DPM++ 2M, DPM fast, DPM adaptive, LMS Karras

DPM2 a, DPM++ 2S a, DPM++ 2M, DPM fast, DPM adaptive, LMS Karras

DPM2 Karras, DPM2 a Karras, DPM++ 2S a Karras, DPM++ 2M Karras, DDIM, PLMS

DPM2 Karras, DPM2 a Karras, DPM++ 2S a Karras, DPM++ 2M Karras, DDIM, PLMS,

И финальный прогон по 50 Sampling Steps с записью времени

50 шагов

Как видно можно получить идентичный результат, потратив разное время, иногда более чем в два раза.
Так что в финал я выбрал самых шустрых и прикольных на мой вкус


Euler a, LMS, DPM fast, LMS Karras, DPM++ 2M Karras


и устрол им мини забег на короткую дистанцию 1, 2, 3, 4, 8, 10 шагов.

Результаты

По полученым результатам, я скажу так LMS меня удивил и теперь его я не оставлю без внимания, я бы не выбирал между DPM++ 2M Karras И LMS Karras, так как результаты похожи, но LMS Karras на две сек быстрее так что победа.
Надеюсь стало понятнее что за семплер методы и на что они влияют (как минимум на скорость). Кстати забавно как DPM себя показал ужасно на короткой.

ПОБЕДА LMS Karras

Euler a
Euler
LMS
Heun
DPM2
DPM2 a
DPM++ 2S a
DPM++ 2M
DPM fast
DPM adaptive
LMS Karras
DPM2 Karras
DPM2 a Karras
DPM++ 2S a Karras
DPM++ 2M Karras
DDIM
PLMS

ПОБЕДА LMS Karras