Выбор быстрого метода сэмплирования в stable diffusion

Архитектуру системы можно представить в виде четырех основных компонентов.

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 зависит от ваших конкретных требований к скорости и точности. Вот некоторые основные моменты, которые стоит учесть:

Дополнительный анализ:  Какую it профессию выбрать для старта

Вот некоторые конкретные сэмплеры, которые доступны в Stable Diffusion:

  1. Euler: Этот простой и быстрый сэмплер является классикой для решения обыкновенных дифференциальных уравнений (ODE).
  2. Heun: Еще один классический сэмплер, который также используется для решения ODE.
  3. LMS (Linear multi-step method): Этот сэмплер использует линейный многошаговый метод для решения ODE.
  4. DDIM: Этот сэмплер является одним из корней Stable Diffusion. DDIM и PLMS (псевдолинейный многоэтапный метод) были пробоотборниками, поставляемыми с исходной версией Stable Diffusion v1 . При этом PLMS — это более новая и быстрая альтернатива DDIM. Обычно они считаются устаревшими и больше не используются широко.
  5. PLMS: Еще один сэмплер, который был разработан на основе Stable Diffusion.
  6. DPM и DPM++: Это новые сэмплеры, которые каждый по-своему сочетают скорость, точность и характеристики модели.DPM (Diffusion вероятностная модель решателя) и DPM++ — это новые семплеры, предназначенные для диффузионных моделей, выпущенные в 2022 году. Они представляют собой семейство решателей схожей архитектуры. DPM и DPM2 похожи, за исключением того, что DPM2 имеет второй порядок (более точный, но медленный). DPM++ — это улучшение по сравнению с DPM.
  7. UniPC (Unified Predictor-Corrector): Этот сэмплер был разработан в 2023 году и наследует черты методов предиктор-корректор, способных генерировать изображения высокого качества за минимальное количество шагов: 5–10.
  8. K-Diffusion: Это сокровищница сэмплеров, созданных на основе знаний Кэтрин Кроусон, которые привносят находки Карраса 2022 года на передний план.

Сравним окончательные образцы изображения

Выбор быстрого метода сэмплирования в stable diffusion
Выбор быстрого метода сэмплирования в stable diffusion

Быстрый DPM++ потерпел неудачу. Родительские образцы предков не сходились с изображением, к которому сходились другие сэмплеры. Родительские сэмплеры имеют тенденцию сходиться к образу котенка, тогда как детерминистические сэмплеры имеют тенденцию сходиться к образу –  кошке. Не существует правильных ответов, пока они вам нравятся.

Какой же сэмплер использовать?

Достойный выбот:
DPM++ 2M Karras  – хорошая скорость .
DPM++SDE Каррас  – хорошее качество.

Опытные пользователи утверждают, что  «Модель LCM превосходит обе эти модели с помощью сэмплера k-Euler-Ancestral, используя 4-8 шагов в масштабе 1-2 CFG (512×768). Изображения получаются очень быстрыми и божественного качества. Использование Lora также улучшит детализацию за счет небольшого количества времени.»

Мы проверили Модель LCM – фото генерирует действительно очень быстро, но на минимальных настройках картинки получаются размытые:

Выбор быстрого метода сэмплирования в stable diffusion

Настройки: Sampling steps: 8 , CFG Scale: 2 + LoRA LCM (в промпте: <lora:pytorch_lora_weights:1>), дает лучший результат и хороши для генерации анимации и видео с размытым задним планом:

Выбор быстрого метода сэмплирования в stable diffusion

Чтобы ускорить генерацию изображений в Stable Diffusion, достаточно одного LoRA LCM, который можно реализовать непосредственно в промпте ( <lora:pytorch_lora_weights:1>), как и обычные LoRA. Посетите официальную страницу Latent Consistency Models Hugging Face для получения доступа.

Страницы для скачивания файла LCM LoRA

В вашем распоряжении как LCM SDXL, так и LCM SD 1.5 LoRA:

В любом случае, если вашей целью является стабильное воспроизводимое изображение, вам не следует использовать предковые сэмплеры, потому что все они не сходятся.

Оцените статью
Аналитик-эксперт