Команда pip install xformers, выполненная вне виртуального окружения Stable Diffusion, — самая частая причина того, что библиотека вроде бы установлена, но WebUI её не видит и продолжает работать без ускорения. Пакет должен оказаться именно в том Python-окружении, из которого запускается AUTOMATIC1111 или ComfyUI, иначе импорт модуля просто не произойдёт.
В этой инструкции разберём, что даёт xFormers, как проверить совместимость системы, как установить библиотеку в разных интерфейсах и что делать, если после установки появляются ошибки. Материал ориентирован на Windows с видеокартой NVIDIA — именно такая связка встречается чаще всего.
Что такое xFormers и зачем он нужен
xFormers — библиотека от Meta с оптимизированными реализациями механизма внимания (attention), который лежит в основе диффузионных моделей. В контексте Stable Diffusion она заменяет стандартные вычисления attention на более эффективный вариант memory-efficient attention.
Практический эффект — снижение потребления видеопамяти и ускорение генерации изображений. Насколько заметным будет прирост, зависит от видеокарты, разрешения и размера батча: на картах с небольшим объёмом VRAM выигрыш обычно ощутимее, поскольку именно там нехватка памяти становится узким местом.
- 🚀 Ускорение генерации за счёт оптимизированного attention
- 💾 Снижение потребления VRAM при тех же настройках
- 🖼️ Возможность генерировать более крупные изображения без ошибок памяти
- 🔧 Прозрачная интеграция: включается одним флагом запуска
Проверка совместимости перед установкой
Прежде чем устанавливать пакет, убедитесь, что окружение соответствует базовым требованиям. Библиотека ориентирована на GPU NVIDIA с поддержкой CUDA; на AMD-картах и при запуске на CPU она либо не работает, либо не даёт преимуществ.
Проверьте версии ключевых компонентов. Откройте командную строку и выполните:
python --version
pip show torch
Обратите внимание на версию PyTorch: xFormers собирается под конкретные версии torch и CUDA, и несовпадение — типичный источник ошибок импорта. Если WebUI обновлялся недавно, а xFormers ставился давно, вероятен именно такой конфликт.
| Компонент | Что проверить | Как проверить |
|---|---|---|
| Видеокарта | NVIDIA с поддержкой CUDA | Команда nvidia-smi |
| Python | Версия, совместимая с вашим WebUI | python --version |
| PyTorch | Версия и сборка CUDA | pip show torch |
| xFormers | Уже установлен или нет | pip show xformers |
⚠️ Внимание: не устанавливайте xFormers в глобальный Python системы, если WebUI работает в виртуальном окружении (папка
venvв каталоге Stable Diffusion). Пакет попадёт не туда, и интерфейс его не увидит.
Установка xFormers для AUTOMATIC1111
В AUTOMATIC1111 WebUI есть два пути. Самый простой — просто добавить флаг запуска: современные версии WebUI умеют подтягивать совместимую версию xFormers автоматически при старте.
Откройте файл webui-user.bat в папке Stable Diffusion и найдите строку set COMMANDLINE_ARGS=. Добавьте в неё флаг:
set COMMANDLINE_ARGS=--xformers
После сохранения файла запустите WebUI как обычно. При первом старте с этим флагом установка может занять время — скачивается и собирается нужная версия пакета.
Если автоматическая установка не сработала, поставьте пакет вручную в виртуальное окружение. Активируйте venv из папки WebUI и выполните:
venv\Scripts\activate
pip install xformers
☑️ Установка xFormers в AUTOMATIC1111
Установка xFormers в ComfyUI
В ComfyUI библиотека подключается аналогично — через аргумент командной строки. Добавьте к команде запуска флаг --use-pytorch-cross-attention не нужно; для xFormers используется собственный параметр. Строка запуска выглядит так:
python main.py --xformers
Если вы используете portable-сборку ComfyUI, установку выполняйте через встроенный Python из папки сборки, а не через системный интерпретатор. Команда запускается из каталога ComfyUI с указанием встроенного python.exe.
Стоит учитывать: в ComfyUI оптимизации внимания уже частично встроены, поэтому прирост от xFormers может быть скромнее, чем в AUTOMATIC1111. Тем не менее на тяжёлых рабочих процессах разница по памяти всё же заметна.
Типичные ошибки и их решение
Чаще всего пользователи сталкиваются с ошибкой вида ModuleNotFoundError: No module named 'xformers' или сообщением о несовместимости версий. Разберём основные сценарии.
- 🔄 Конфликт версий torch и xformers — переустановите пакет, чтобы pip подобрал сборку под ваш PyTorch:
pip install --force-reinstall xformers - 📦 Пакет установлен не в то окружение — убедитесь, что активирован venv из папки WebUI, и проверьте
pip show xformers - 🧱 Ошибка компиляции при установке — попробуйте обновить pip командой
python -m pip install --upgrade pipи повторить установку - ⚙️ WebUI игнорирует флаг — проверьте, что флаг добавлен именно в
COMMANDLINE_ARGS, а не в другую строку bat-файла
⚠️ Внимание: принудительная переустановка с флагом
--force-reinstallможет затронуть зависимости. Если после неё WebUI перестал запускаться, переустановите PyTorch по официальной инструкции вашего интерфейса — версии torch и xformers должны быть согласованы.
Как проверить, что xFormers реально работает
Откройте консоль, из которой запущен WebUI. При старте с флагом --xformers в логе появляется строка о применении xformers для cross-attention. Если такой строки нет, а интерфейс запустился — флаг не был распознан или пакет не найден в окружении.
Альтернативы xFormers
xFormers — не единственный способ оптимизировать внимание. В современных версиях WebUI доступны и другие варианты, которые выбираются флагами запуска или в настройках интерфейса.
Например, SDP (scaled dot product attention из PyTorch) часто включён по умолчанию и не требует установки дополнительных пакетов. Есть и режимы для слабых карт: --lowvram и --medvram снижают потребление памяти ценой скорости. Если xFormers никак не устанавливается, эти варианты позволяют продолжить работу.
Часто задаваемые вопросы
Ухудшит ли xFormers качество изображений?
Нет. Библиотека меняет способ вычисления attention, а не саму модель. Результаты генерации остаются сопоставимыми, возможны лишь незначительные численные отличия из-за иного порядка вычислений.
Работает ли xFormers на видеокартах AMD?
Библиотека ориентирована на CUDA и GPU NVIDIA. На AMD-картах в Windows она, как правило, не применяется — используйте встроенные оптимизации вашего интерфейса или сборки с поддержкой DirectML/ROCm, если они предусмотрены.
Нужно ли переустанавливать xFormers после обновления WebUI?
Если обновление затронуло версию PyTorch, да — пакет может стать несовместимым. Признак проблемы: ошибки импорта при запуске. Решение — переустановка командой pip install --force-reinstall xformers в активированном окружении.
Что делать, если pip не находит подходящую версию пакета?
Обычно это означает несовпадение версий Python или PyTorch с доступными сборками. Проверьте python --version и pip show torch, обновите pip и повторите попытку. Если ошибка сохраняется, воспользуйтесь автоматической установкой через флаг --xformers — WebUI сам подберёт совместимую версию.
Можно ли использовать xFormers вместе с --medvram или --lowvram?
Да, эти флаги решают разные задачи: xFormers оптимизирует attention, а режимы экономии памяти управляют загрузкой модели в VRAM. Их комбинация допустима и полезна на картах с малым объёмом видеопамяти.