Всем привет! Мы создаем простую, быструю и компактную диффузионную модель, которую можно обучать и запускать на обычных видеокартах, сохранив при этом высокое качество. Simple Diffusion (sdxs-1b) – это первый результат наших опытов, мы публикуем её как альфа-версию под лицензией Apache-2.0 вместе с открытым кодом подготовки данных и обучения. https://huggingface.co/AiArtLab/sdxs-1b

Как создавалась модель

Работа началась в декабре 2024 года. Начали мы с изучения линейных трансформеров на базе Sana (мы, это AiArtLab - чатик в телеграм, в котором небольшая группа людей экспериментирует с моделями). За диффузионки отвечаем мы со Стасом) После неуспешного дообучения, а затем и переделывания данной модели мы пришли у выводу что можно и нужно сделать с нуля и лучше. С февраля 2025 года я переключился на эволюционный путь развития на базе UNet-архитектуры, а Стас выбрал революционный подход и начал разрабатывать ДиТ архитектуры и быстрые автоенкодеры. За полгода было обучено множество вариантов архитектур, к сожалению неудачных. Модели либо схлопывались в бесконечность либо не обладали обобщающей способностью к анатомии, либо великолепно подхватывали анатомию, но не могли перейти к генерации мелких деталей.

С августа по сентябрь 2025 года я решил набить руку на более простых моделях и проводил эксперименты с разными вариантами VAE, которые в конечном итоге вылились в создание sota версии vae (на тот момент) и коллекции файнтюнов (улучшений) различных VAE.

В декабре 2025 года была обучена первая версия sdxs-1b (на тот момент 0,8 млрд параметров) с UNet в стиле SD1.5, Long CLIP, 16-канальным Simple VAE с flow matching таргетом.

пример генерации sdxs-0.8

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

В январе-феврале 2026 года были протестированы все ключевые идеи из SDXL, одна за одной, но в итоге вернулись к более простой классической архитектуре. Удивительно, но тесты показали либо деградацию либо существенное замедление при спорных улучшениях по всем 5 основным гипотезам выдвинутых Stability в SDXL (при том, что это одна из лучших моделей на мой взгляд).

Примерно в это время Стас убедил вернуться к тестам Flux.2, выяснилось что модель сложнее чем кажется и на самом деле 128 канальная. Но тесты показали неспособность к обучению небольшой модели на 128 каналах, всвязи с чем вае был конвертирован в 32 канальный (на котором расширенная 1.5 модель уже успешно училась), а затем хакнут и дообучен в полноценный 32-канальный асимметричный VAE. Дообучение заняло смешное время (около 2 суток) и проводилось на 1 ГПУ. Обучение ВАЕ в лоб приводит к размыванию деталей, всвязи с чем было выполнено с помощью 5 одновременных таргетов и разработанных для их нормализации алгоритмом.

оригинал / восстановленная
оригинал / восстановленная

Качество  VAE

Среди 16× наша модель показывает рекордные значения PSNR и LPIPS с огромным отрывом и превышает качество Flux1 vae при сравнении с моделями с 8x сжатием. Конечно это заслуга Flux.2, взятого за основу.

8x scale factor
SDXL             | MSE=1.925e-03 PSNR=30.00 LPIPS=0.123 Edge=0.181 KL=32.113
FLUX.1           | MSE=4.098e-04 PSNR=36.06 LPIPS=0.033 Edge=0.083 KL=13.127
FLUX.2           | MSE=2.425e-04 PSNR=38.33 LPIPS=0.023 Edge=0.065 KL=2.160

16x scale factor
Wan2.2-TI2V-5B (2Gb) | MSE=7.034e-04 PSNR=34.65 LPIPS=0.050 Edge=0.115 KL=9.429
sdxs-1b (200Mb)      | MSE=2.655e-04 PSNR=37.83 LPIPS=0.026 Edge=0.066 KL=2.170

Позднее был выполнен переход на Qwen3.5 в качестве текстового енкодера, так как я счел скорость обучения на нем потрясающей в сравнении с немультимодальными моделями.

Апрель 2026 года - наше время: альфа-версия.

Все началось с Гаусовского шума
Все началось с Гаусовского шума

Данные и предобработка

Для тестового обучения мы собрали выборку из ~1–2 миллионов изображений из открытых датасетов Midjourney, Nijourney и тп. В основном рисунки и иллюстрации с небольшой долей фотографий. Подписи к ним представлены как в danbooru-формате (короткие теги) так и естественными описаниями (до 250 токенов). Перед подачей на обучение мы масштабировали картинки от 768 до 1408 пикселей (с шагом 64) – это позволило модели работать с разными соотношениями сторон. При этом само обучение идет на вдвое меньшем разрешении.

Финальная архитектура

SDXS-1B состоит из трёх компонентов:

- UNet1.6 млрд параметров (примерно вдвое больше, чем в SD1.5). В итоге модель архитектурно более близка к Stable Diffusion 1.5, чем к SDXL. Число блоков выбрано относительно небольшим и равномерным – это оказалось оптимальным для равномерного внимания к разным частям изображения (анатомия/детали).

- Текстовый энкодер Qwen3.5-2B . Мы проверяли разные энкодеры (CLIP, LongCLIP, SigLIP, MexMaSigLip, Qwen-0.6b и др.) и убедились, что Qwen3.5 даёт  наилучшее качество после LongCLIP, но добавляет мультиязычность, мультимодальность и прочие ЛЛМ преимущества (рефайнера, чат, распознование изображений). Эмбеддинги берутся с предпоследнего слоя, что позволяет эффективнее извлекать информацию о структуре изображения.

- Асимметричный VAE (латент 32 канала, энкодер 8×, декодер 16×). VAE сжимает изображение в 8 раз, а декодер восстанавливает его вдвое большим (16× по сторонам вместо привычных 8×). При инференсе это работает как встроенный латентный 2× апскейлер – он увеличивает изображение в 2 раза внутри обученного диапазона (512–768px) без «дорисовки» новых деталей. Такой подход даёт высокое качество при генерации и позволяет лучше масштабировать результат, а главное на порядок снижает затраты на обучение. Впрочем для пользователя главное все же ускорение инференса, тк генерация в 512 непропорционально быстрее генерации в 1024 при том же результате

Апскейлер

Ключевой особенностью VAE является 2× апскейлер. Данный апскейлер масштабирует картинку вдвое, убирая пикселизацию, но сохраняя стиль и детали (vae по своей природе обучаются восстанавливать изображение максимально точно).

На примерах видно, что увеличенное изображение остаётся «тем же самым», но в два раза больше по разрешению. Такой подход хорошо работает даже на видео и может быть использован отдельно от генеративного цикла (можно взять только веса VAE). Безусловно есть специализированные на определенные задачи апскейлеры: удаление jpg артефактов, артефактов сжатия телеэкранов и так далее, но есть класс задач где истинность важнее креативности, увеличение рентгеновских снимков или копий картин, например. Или генерация.

Также, мы реализовали уточнение промпта: короткий или теговый запрос автоматически улучшает встроенный рефайнер, чтобы модель лучше поняла задачу. (Есть специфика в том, как обрабатывают текст Клип модели и Языковые). Также можно подавать на вход изображение для кодирования или даже звук вместо текста (image-to-image режим в экспериментальном режиме).

Примеры генераций на seed = 0, но с выбранными промптами:

Рис.1. Пример наших результатов:

Рис.2. Разнообразие - иллюстрации кошек на разных seed, промпт «cat»

Примеры работы апскейлера: исходный и увеличенный в 2× фрагмент.

Процесс обучения и гиперпараметры

Обучение шло поэтапно: сперва мы «приучали» модель к базовым формам (low-level features), затем к композиции в целом, и финально – к мелким деталям (лица, текстуры). Использовался AdamW8bit с базовым LR 4e-5 и минимальным 4e-6 и ниже, что оказалось достаточно «щадящим» к ошибкам настройки. Мы экспериментировали с изменением learning rate на разных этапах (с сценариями 0.5, 1.0, 3.0, 5.0 по схеме в README), но в целом придерживались «стандартных» значений. Эксперименты с Мюон показали деградацию в анатомии. В целом роль гиперпараметров невероятна переоценена. Модель либо учится, либо нет.

На обучении было задействовано от 1 до 8 карт RTX 5090, всего обучение данной версии заняло около 2-3 месяцев (модель в процессе постоянно совершенствовалась и переобучалась). Для предобработки текста мы ограничивали длину в 250 токенов и использовали довольно большой дропаут (10%) на выходе текстового энкодера, чтобы повысить устойчивость к шуму

Весь код open-source: в репозитории есть скрипты для конвертации датасетов и простой монолитный train.py. Подробные команды приведены в README

Инструкции по использованию

Получить SDXS-1B просто через библиотеку Diffusers от Hugging Face.

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

Дополнительные материалы: код обучения и подготовки датасета, онлайн-демо, веса.

Среднее качество генераций на рандомных промптах (текстах, которые модель не знает) будет ниже, всвязи с ограничениями датасета

Ограничения

Несмотря на проделанную работу, SDXS-1B всё ещё остаётся моделью альфа-версии. Из-за небольшого датасета она не охватывает все возможные темы – например, фотографии получаются хуже, чем мультяшные иллюстрации. Пока мы советуем при генерации добавлять «photo» в negative prompt, чтобы подавить фотореализм.

Лицензия модели – Apache-2.0, что позволяет свободно использовать её в своих проектах.

Перспективы и дальнейшие работы

В перспективе дообученая модель могла бы вернуть зрение слепым людям, менять реальность в режиме реального времени или работать в качестве локальной модели на телефоне. Но в настоящий момент может использоваться только для генерации забавных (не всегда) картинок.

В настоящий момент обучение приостановлено и мы опубликовали sdxs-1b «как есть»

Следующие шаги: увеличить тренировочный датасет и завершить обучение. Турбо лора, контролнет с плавным переходом в видео модель.

Модель выложена на Hugging Face, и мы надеемся на помощь сообщества с обучением и развитием.

Буду рад любым предложениям о сотрудничестве, контакты в карточке модели