Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Диффузионный генератор изображений удалось уместить на локальной GPU и приблизить к интерактивной скорости без переобучения основной модели. В препринте Adobe и NVIDIA, который не рецензировался и все числа для которого получили сами авторы, лучшая конфигурация создала изображение за 0,27 секунды при пиковом расходе 5,7 ГБ видеопамяти. Работа даёт практический порядок оптимизаций: сначала уменьшить текстовый энкодер, затем подобрать точность вычислений и только после этого переносить веса между оперативной и видеопамятью.
Малый энкодер переводит признаки в пространство большого
Диффузионная модель получает не исходный запрос, а векторные представления текста. Обычно их строит крупный языковой энкодер, который занимает заметную часть памяти, хотя работает лишь в начале генерации.
Frieder Ganz и Maximilian Müller заменили штатный энкодер FLUX.2-klein на компактный Qwen3 и добавили между ним и генератором переводчик представлений. Он преобразует признаки малого энкодера в формат, который ожидает диффузионный трансформер. Сам трансформер и декодер изображений при обучении переводчика остаются замороженными.
Такой подход не требует заново обучать весь генератор и позволяет использовать текстовую модель, которая уже установлена на устройстве. Тогда вместе с редактором нужно поставлять только переводчик, а не второй крупный энкодер.
В лучшем варианте память под этот участок конвейера сократилась с 8 до 1,77 ГБ. Качество следования запросу немного уступило исходному энкодеру, но увеличение переводчика последовательно улучшало изображения. Самая маленькая версия иногда сводила разные запросы к одному доминирующему стилю, а переводчики с механизмом внимания не обошли обычную многослойную сеть сопоставимого размера.
Близость внутренних признаков при этом плохо предсказывала итог. Несколько переводчиков почти одинаково воспроизводили выход большого энкодера, но давали изображения разного качества. Поэтому выбирать такую замену только по ошибке сопоставления признаков нельзя: нужен сквозной прогон до готового изображения.
Квантизация экономит память, а перенос весов спасает от переполнения
После энкодера основную цену задаёт диффузионный трансформер: он хранит больше всего весов и повторно выполняется на каждом шаге. Авторы применили к нему квантизацию после обучения — перевели веса и промежуточные значения в форматы меньшей разрядности.
Квантизация весов сокращает расход видеопамяти. Квантизация промежуточных значений дополнительно ускоряет вычисления, если GPU поддерживает соответствующие операции. На RTX PRO 6000 Blackwell время одного шага снизилось со 105 до 57 миллисекунд, но NVFP4 сильнее отклонял результат от исходной точности, чем FP8.
Если даже сжатые веса не помещаются, часть слоёв можно держать в оперативной памяти и заранее передавать на GPU по PCIe. Пока один слой работает, следующий загружается. Изображение остаётся побитово тем же, что и при полностью размещённой в видеопамяти модели, однако система платит задержкой, если передача не успевает за вычислениями.
Это делает перенос весов средством против дефицита видеопамяти, а не универсальным ускорением. На быстрой GPU, где модель уже помещается целиком, обмен с оперативной памятью только мешает. На более медленной карте вычисления дольше перекрывают передачу, поэтому тот же приём обходится дешевле по времени.
Проверку провели на FLUX.2-klein с запросами PartiPrompts, изображениями 1024×1024 и четырьмя шагами генерации. Замеры охватывают Mac M3 Max, RTX 4070 Ti и RTX PRO 6000, поэтому результаты показывают поведение конкретного короткого конвейера, а не диффузионных моделей любого размера и архитектуры.
Планы стоит менять в порядке оптимизаций, а не в целевой задержке
Работа показывает, что локальную генерацию стоит проектировать как систему из нескольких независимо настраиваемых узлов. Замена энкодера освобождает фиксированный объём памяти, квантизация одновременно меняет скорость и качество, а перенос весов расширяет список подходящих устройств ценой задержки. Если применять эти приёмы без раздельных замеров, причина ухудшения результата теряется.
Для продукта полезен предложенный авторами перебор конфигураций: фиксировать запрос и начальное случайное состояние, затем менять энкодер, точность и долю весов на GPU. Для каждого варианта нужно измерять пиковую память, время отдельных стадий и качество готового изображения. Особенно важно проверять запросы продукта, потому что потери при низкой разрядности зависят от содержания сцены.
Ориентир в доли секунды пока относится к профессиональной Blackwell-карте. На пользовательской RTX 4070 Ti с 12 ГБ памяти редактор строил изображение примерно за три секунды. Поэтому работа не обосновывает единый целевой показатель для всего парка устройств, но подтверждает более практичный план: один набор моделей можно адаптировать к разным GPU настройками точности и размещения весов, не выпуская отдельный генератор для каждого класса оборудования.
Источники
Иллюстрация: рисунок из статьи «The Weight Is Over - Interactive Diffusion on Consumer GPUs», Frieder Ganz, Maximilian M\"uller, CC BY 4.0
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



