Установка xFormers для Stable Diffusion чаще всего заканчивается ошибкой ModuleNotFoundError или падением скорости генерации из-за несовпадения версий PyTorch и CUDA. Библиотека оптимизирует механизм attention в нейросети, снижая потребление видеопамяти и ускоряя создание изображений, но ставить её нужно строго под вашу конфигурацию. Ниже разберём, как проверить совместимость, какие команды вводить и что делать, если установка не проходит.
Материал ориентирован на пользователей Automatic1111 WebUI и ComfyUI на Windows с видеокартами NVIDIA. На AMD и macOS xFormers либо не поддерживается, либо работает через альтернативные бэкенды — об этом тоже скажем отдельно.
Что такое xFormers и зачем она нужна
xFormers — библиотека от Meta (Facebook Research), содержащая оптимизированные реализации блоков трансформера. В контексте Stable Diffusion используется её модуль memory-efficient attention, который заменяет стандартный расчёт внимания в U-Net.
Практический эффект для пользователя — заметное снижение расхода VRAM и прирост скорости, особенно при больших разрешениях и длинных батчах. На картах с 6–8 ГБ памяти это часто разница между «генерация не влезает в память» и стабильной работой.
- ⚡ Снижение потребления видеопамяти при генерации
- 🚀 Ускорение inference на поддерживаемых GPU NVIDIA
- 🖼️ Возможность работать с большими разрешениями без ошибок OOM
- 🔧 Прозрачная интеграция — не требует изменения моделей и промптов
⚠️ Внимание: xFormers не ускоряет обучение LoRA и DreamBooth в Automatic1111 «из коробки» — основной выигрыш относится именно к генерации изображений. Для обучения потребуются отдельные настройки.
Проверка совместимости перед установкой
Прежде чем ставить xFormers, убедитесь, что ваша видеокарта поддерживает библиотеку. Официально собранные пакеты рассчитаны на GPU NVIDIA с архитектурой Pascal и новее и на установленный PyTorch с поддержкой CUDA. Проверить версию PyTorch и доступность CUDA можно прямо из виртуального окружения WebUI.
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
Если команда выводит версию PyTorch и True — база для установки есть. Если False, сначала переустановите PyTorch с CUDA по инструкции вашего интерфейса, иначе xFormers либо не встанет, либо не даст никакого ускорения.
На видеокартах AMD и встроенной графике xFormers в стандартной сборке не работает. Для AMD под Windows используются сборки с DirectML или ZLUDA, где оптимизация внимания реализуется иначе — устанавливать xFormers туда бессмысленно.
Установка xFormers для Automatic1111 WebUI
Самый надёжный способ для Automatic1111 — дать установку самому интерфейсу. Откройте webui-user.bat в папке WebUI любым текстовым редактором и добавьте в строку параметров флаг --xformers:
set COMMANDLINE_ARGS=--xformers
При следующем запуске webui-user.bat интерфейс сам подберёт и скачает совместимую под ваш PyTorch версию xFormers. Это предпочтительный путь: ручная установка через pip нередко приводит к конфликту версий, потому что колёса xFormers собраны под конкретные версии PyTorch и CUDA.
☑️ Установка xFormers в Automatic1111
Если автоматическая установка не сработала, активируйте виртуальное окружение вручную и поставьте пакет командой. В папке WebUI выполните:
venv\Scripts\activate
pip install xformers
После завершения установки перезапустите WebUI. Признак успеха — отсутствие строк об ошибках xFormers в консоли и строка вида «Applying xformers cross attention optimization» при запуске.
Установка в ComfyUI и других интерфейсах
В ComfyUI xFormers обычно уже входит в состав портативной сборки для Windows — проверьте это командой pip show xformers в окружении интерфейса. Если пакета нет, установка выполняется так же через pip install xformers в соответствующем окружении Python.
Для портативной версии ComfyUI используйте встроенный интерпретатор из папки сборки, а не системный Python. Путь выглядит примерно так:
python_embeded\python.exe -m pip install xformers
В SD.Next и Fooocus ситуация аналогичная: либо xFormers ставится автоматически при первом запуске, либо активируется в настройках интерфейса. Точные названия пунктов зависят от версии, поэтому сверяйтесь с документацией конкретной сборки.
Типичные ошибки и их решение
Чаще всего установка ломается на этапе компиляции: pip пытается собрать xFormers из исходников, потому что не нашёл готовое колесо под вашу связку «Python + PyTorch + CUDA». Сборка из исходников на Windows требует Visual Studio Build Tools и занимает много времени — обычно проще подобрать готовый пакет.
| Ошибка | Вероятная причина | Что сделать |
|---|---|---|
| No matching distribution found | Нет колеса под вашу версию Python | Проверьте версию Python, обновите pip |
| ModuleNotFoundError: xformers | Пакет не установился или встал в другое окружение | Переустановить через активированный venv |
| Началась сборка из исходников | Несовпадение версий PyTorch/CUDA | Отменить, дать установить через --xformers |
| Ошибки CUDA при запуске | Конфликт версий xformers и torch | Удалить xformers и поставить совместимую версию |
| Скорость не выросла | xFormers не активирован флагом | Проверить COMMANDLINE_ARGS и лог запуска |
⚠️ Внимание: не скачивайте и не устанавливайте «сборки xFormers» со сторонних сайтов и файлообменников. Берите пакет только из официального PyPI через pip — посторонние колёса могут содержать вредоносный код.
Если после установки генерация падает с ошибкой CUDA, удалите пакет командой pip uninstall xformers и повторите установку через флаг --xformers, позволив WebUI самому подобрать версию. В большинстве конфликтных случаев это решает проблему без ручного подбора номеров версий.
Как проверить, что xFormers реально работает
Откройте консоль WebUI при запуске — там должна быть строка об активации xformers cross attention optimization. Дополнительно сгенерируйте одно и то же изображение с флагом и без: при работающей библиотеке расход VRAM заметно ниже, а время генерации меньше. Смотреть показания удобно через диспетчер задач или nvidia-smi.
Альтернативы xFormers
Начиная с PyTorch 2.x в сам фреймворк встроен механизм SDPA (Scaled Dot Product Attention), который выполняет ту же задачу оптимизации внимания. В свежих версиях Automatic1111 и ComfyUI он используется по умолчанию, и прирост от xFormers поверх него может быть небольшим или отсутствовать вовсе.
Тем не менее на некоторых конфигурациях xFormers всё ещё даёт выигрыш по памяти, поэтому имеет смысл протестировать оба варианта на своей карте. Замер делайте на одинаковом промпте, разрешении и количестве шагов — только так сравнение будет честным.
Проверка результата и тонкая настройка
После установки запустите WebUI и сгенерируйте несколько изображений при типичном для вас разрешении. Сравните время генерации и пиковое потребление VRAM с прежними значениями — данные по памяти можно посмотреть командой nvidia-smi в отдельном окне терминала во время генерации.
Если прироста нет, проверьте, не конфликтует ли xFormers с другими флагами оптимизации, например --opt-sdp-attention. Одновременное включение нескольких бэкендов внимания не имеет смысла — оставьте один, показавший лучший результат на вашей системе.
- 🧪 Тестируйте скорость на фиксированном промпте и seed
- 📊 Сравнивайте пиковую VRAM через nvidia-smi
- 🔁 Перезапускайте WebUI после любых изменений флагов
- 📦 Не обновляйте PyTorch без переустановки xFormers
⚠️ Внимание: на очень старых GPU (архитектуры до Pascal) xFormers может не работать вовсе. Если установка упорно завершается ошибками, а карта старше поколения GTX 10-й серии, вероятно, стоит использовать встроенный SDP-Attention без xFormers.
Часто задаваемые вопросы
Обязательно ли ставить xFormers для Stable Diffusion?
Нет. Современные версии WebUI и ComfyUI используют встроенный SDP-Attention из PyTorch 2.x, который даёт схожую оптимизацию. xFormers имеет смысл ставить, если вы хотите выжать дополнительную экономию VRAM или работаете на старой версии интерфейса.
Почему pip начинает собирать xFormers из исходников?
Это значит, что для вашей комбинации версий Python, PyTorch и CUDA не нашлось готового скомпилированного пакета. Прервите установку и используйте флаг --xformers в webui-user.bat — WebUI подберёт совместимую версию автоматически.
Работает ли xFormers на видеокартах AMD?
В стандартных сборках — нет, библиотека рассчитана на NVIDIA CUDA. Для AMD существуют отдельные решения (DirectML, ZLUDA, ROCm на Linux), где оптимизация внимания реализована иначе.
Как удалить xFormers, если после установки всё сломалось?
Активируйте виртуальное окружение WebUI и выполните pip uninstall xformers, затем уберите флаг --xformers из webui-user.bat. Интерфейс вернётся к стандартному механизму внимания.
Ускорит ли xFormers обучение LoRA?
Не напрямую: в Automatic1111 основной выигрыш относится к генерации. Некоторые расширения для обучения используют memory-efficient attention, но это настраивается отдельно в параметрах соответствующего расширения.