Как установить xFormers для Stable Diffusion

Команда 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Версия, совместимая с вашим WebUIpython --version
PyTorchВерсия и сборка CUDApip 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

Выполнено: 0 / 5
📊 Какой интерфейс Stable Diffusion вы используете?
AUTOMATIC1111
ComfyUI
Forge
Другой вариант

Установка 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. Их комбинация допустима и полезна на картах с малым объёмом видеопамяти.