Выбор быстрого метода сэмплирования в stable diffusion
Автор АналитикНа чтение 23 мин.Просмотров3Опубликовано
Архитектуру системы можно представить в виде четырех основных компонентов.
Events (Schema Registry & Data Catalog). Инструмент декларирования и описания аналитики. Позволяет объявлять типы событий и атрибуты, которые будут отправляться в аналитику из клиентских приложений, следить за актуальностью аналитики, ответственными, качеством интеграций.
SDK (IOS, Android, Web). SDK позволяет реализовать сбор и отправку аналитических событий с клиентских приложений. Одна из особенностей SDK Statist — статическая типизированность. Для каждого типа события у нас есть необходимая сигнатура функции с типизированными атрибутами, а все SDK версионируются по Semver при изменении структуры событий. Это возможно благодаря инструменту декларирования и описания аналитики Events.
Collector & Event Processing & Analytics Storage. Часть системы, которая обеспечивает надежную доставку событий и метрик в хранилище данных с момента получения их из клиентских приложений. В процессе доставки обрабатываются события и телеметрия: их валидация, обогащение информацией о геопозиции и устройстве и запись в хранилище для последующего анализа.
Visualization Tools —собственный UI-инструмент для анализа данных, где можно без специальных знаний SQL и подключения BI-инструментов создать отчет ad-hoc. Дополнительно можно использовать другие инструменты, которые есть в компании, для более детального анализа и изучения данных клиентской аналитики. Например, Helicopter (аналог Zeppelin), ETL и BI-инструменты.
Основной сценарий выглядит так: на уровне сервиса администрирования событий определяются любые продуктовые события. Далее с помощью SDK настраивается сбор и отправка объявленных событий в клиентских приложениях. Все данные из приложения поступают в коллектор событий. На следующем этапе они обрабатываются: валидация, обогащение и роутинг данных. В итоге данные поступают в аналитическое хранилище. Доступ к данным есть напрямую через запросы к базе данных и через собственный UI-инструмент с удобной визуализацией.
Выбор метода сэмплирования (sampling method) в Stable Diffusion зависит от ваших конкретных требований к скорости и точности. Вот некоторые основные моменты, которые стоит учесть:
Вот некоторые конкретные сэмплеры, которые доступны в Stable Diffusion:
Euler: Этот простой и быстрый сэмплер является классикой для решения обыкновенных дифференциальных уравнений (ODE).
Heun: Еще один классический сэмплер, который также используется для решения ODE.
LMS (Linear multi-step method): Этот сэмплер использует линейный многошаговый метод для решения ODE.
DDIM: Этот сэмплер является одним из корней Stable Diffusion. DDIM и PLMS (псевдолинейный многоэтапный метод) были пробоотборниками, поставляемыми с исходной версией Stable Diffusion v1 . При этом PLMS — это более новая и быстрая альтернатива DDIM. Обычно они считаются устаревшими и больше не используются широко.
PLMS: Еще один сэмплер, который был разработан на основе Stable Diffusion.
DPM и DPM++: Это новые сэмплеры, которые каждый по-своему сочетают скорость, точность и характеристики модели.DPM (Diffusion вероятностная модель решателя) и DPM++ — это новые семплеры, предназначенные для диффузионных моделей, выпущенные в 2022 году. Они представляют собой семейство решателей схожей архитектуры. DPM и DPM2 похожи, за исключением того, что DPM2 имеет второй порядок (более точный, но медленный). DPM++ — это улучшение по сравнению с DPM.
UniPC (Unified Predictor-Corrector): Этот сэмплер был разработан в 2023 году и наследует черты методов предиктор-корректор, способных генерировать изображения высокого качества за минимальное количество шагов: 5–10.
K-Diffusion: Это сокровищница сэмплеров, созданных на основе знаний Кэтрин Кроусон, которые привносят находки Карраса 2022 года на передний план.
Сравним окончательные образцы изображения
Быстрый DPM++ потерпел неудачу. Родительские образцы предков не сходились с изображением, к которому сходились другие сэмплеры. Родительские сэмплеры имеют тенденцию сходиться к образу котенка, тогда как детерминистические сэмплеры имеют тенденцию сходиться к образу – кошке. Не существует правильных ответов, пока они вам нравятся.
Опытные пользователи утверждают, что «Модель LCM превосходит обе эти модели с помощью сэмплера k-Euler-Ancestral, используя 4-8 шагов в масштабе 1-2 CFG (512×768). Изображения получаются очень быстрыми и божественного качества. Использование Lora также улучшит детализацию за счет небольшого количества времени.»
Мы проверили Модель LCM – фото генерирует действительно очень быстро, но на минимальных настройках картинки получаются размытые:
Настройки: Sampling steps: 8 , CFG Scale: 2 + LoRA LCM (в промпте: <lora:pytorch_lora_weights:1>), дает лучший результат и хороши для генерации анимации и видео с размытым задним планом:
Чтобы ускорить генерацию изображений в Stable Diffusion, достаточно одного LoRA LCM, который можно реализовать непосредственно в промпте ( <lora:pytorch_lora_weights:1>), как и обычные LoRA. Посетите официальную страницу Latent Consistency Models Hugging Face для получения доступа.
В вашем распоряжении как LCM SDXL, так и LCM SD 1.5 LoRA:
В любом случае, если вашей целью является стабильное воспроизводимое изображение, вам не следует использовать предковые сэмплеры, потому что все они не сходятся.