Stable Diffusion UniPC: практический тест нового сэмплера
Чо за новый сэмплер?
Получаем автообновление или делаем git pull - новый сэмплер встроен в базовый пакет AUTOMATIC1111 WebUI.
- Страница сэмплера на GitHub
- Что-то на математическом для умных про то как оно работает
Вкратце - мы получили супер быстрый сэмплер выдающий хороший результат
Тут Heun на 30% медленнее UniPC
А если выключить HiRez то получаем 13.29 сек. против 9.63 сек. Heun vs UniPC соответственно.
И это на 8 шагах сэмплера. Если взять более стандартные 32 шага, то разрыв будет 36.22 сек. против 21.85 сек. - ~45%!
Тесты UniPC при низких шагах сэмплера
Мы на UniPC пришли за скоростью, так давайте посмотрим насколько сильно его можно урезать оставаясь в диапазоне приемлемых результатов.
Сразу оговорюсь, что я использую UniPC в настройке UniPC variant: bh1, UniPC skip type: time_quadratic, UniPC order: 3, UniPC lower order final: true.
Тест вариантов и тайпов делал всего один и качественной разницы не особо заметил (разве что logSNR выдал синюю шляпу, а vary_coeff проматерился на меня в консоли)
Итак, тесты
С хорошим промптом хороший результат можно получить уже на 6 шаге, но более стабильными являются результаты с 8-10 шагов. Однако, на маленьких шагах спасает высокий денойз апскейлера.
Особенно если поставить нашему апскейлеру не 10 шагов, а 15 или 20.
Насчёт апскейлера:
- я люблю Swin_4x, но он медленный;
- latent нарисовал коту человеческие глаза;
- 4x_valar может быть немного детальней;
- но он всё равно немного медленнее чем R-ESRGAN 4x+ который и используется в сегодняшнем тесте.
Но нельзя забывать, что многое зависит от правильно составленного промпта
В зависимости от промпта разница количества шагов может быть маленькой
Кстати про высокий денойз: он немного глушит авторский стиль типа by Author Name. Или мне просто кажется? 🤔
UnIPC на разных моделях (checkpoints)
Напоследок сравним работу разных моделей.
- UniPC, 8 steps, 512x512
- R-ESRGAN 4x+, 15 steps, x1.25 up to 640x640
- На RTX 3070 ~7 сек./картинку
Итог
Я буду использовать данный сэмплер в тех случаях, когда мне нужно сгенерировать более сотни картинок за раз, но полной заменой других сэмплеров он не стал.
UPD: убран NSFW контент