Stable Diffusion на AMD: полное руководство по запуску и настройке

Запуск Stable Diffusion на видеокарте AMD упирается в одну ключевую проблему: популярный интерфейс Automatic1111 изначально рассчитан на CUDA от NVIDIA, поэтому на «красных» картах он либо не стартует вообще, либо выдаёт ошибку RuntimeError: No CUDA GPUs are available. Это не означает, что генерация невозможна — просто потребуется другой путь: через DirectML на Windows, через ROCm на Linux или через прослойку ZLUDA.

Ниже разберём рабочие способы запуска, сравним их по скорости и стабильности, а также разберём типичные ошибки, с которыми сталкиваются владельцы Radeon. Подходы отличаются в зависимости от модели видеокарты и операционной системы, поэтому перед началом стоит уточнить, какая у вас карта и сколько у неё видеопамяти.

Почему Stable Diffusion работает на AMD иначе

Большинство инструментов для локальной генерации изображений построены на фреймворке PyTorch, который исторически оптимизирован под технологию CUDA. У AMD собственная экосистема — ROCm, но её официальная поддержка в Windows ограничена, а под Linux она охватывает не все модели видеокарт. Именно из-за этого разрыва и существует несколько обходных путей.

Для пользователя это означает простую вещь: универсальной инструкции «скачал и запустил» для AMD нет. Необходимо выбрать один из трёх маршрутов в зависимости от системы:

  • 🪟 DirectML — вариант для Windows, работает почти на любых картах Radeon, но медленнее нативных решений.
  • 🐧 ROCm — вариант для Linux, даёт наилучшую производительность на поддерживаемых моделях.
  • ZLUDA — прослойка, эмулирующая CUDA поверх ROCm/HIP; рабочий, но требующий аккуратной настройки вариант.
⚠️ Внимание: поддержка конкретной модели видеокарты в ROCm и ZLUDA отличается. Перед установкой сверьтесь с официальным списком совместимых устройств AMD и документацией выбранного инструмента — не все карты, включая часть старых и младших моделей, поддерживаются официально.

Способ 1: Stable Diffusion через DirectML на Windows

Самый доступный путь для Windows — форк Stable Diffusion WebUI DirectML (проект на базе Automatic1111, адаптированный под DirectML). Он использует ONNX Runtime и работает через DirectX 12, поэтому совместим с широким парком карт AMD, включая те, что не поддерживаются ROCm.

Порядок установки в общих чертах выглядит так:

git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml

cd stable-diffusion-webui-directml

webui-user.bat

Перед первым запуском убедитесь, что в системе установлены Python совместимой версии (обычно 3.10.x — точную версию уточняйте в документации проекта) и Git. При первом старте скрипт сам скачает зависимости, это может занять продолжительное время.

☑️ Подготовка к запуску через DirectML

Выполнено: 0 / 5

После запуска интерфейс откроется в браузере по локальному адресу. Если генерация идёт, но медленно, попробуйте добавить в webui-user.bat параметры оптимизации, например --opt-sub-quad-attention для карт с небольшим объёмом VRAM.

Способ 2: ROCm на Linux

На дистрибутивах Linux ситуация заметно лучше: ROCm позволяет PyTorch работать с картами AMD почти так же, как с CUDA. В этом случае подходит оригинальный Automatic1111 или ComfyUI без специальных форков — достаточно установить PyTorch, собранный под ROCm.

Установка обычно включает три этапа: установку самого ROCm из репозиториев AMD, создание виртуального окружения Python и установку PyTorch с индексом ROCm. Команда установки PyTorch выглядит примерно так:

pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.x

Точную версию ROCm в адресе индекса подбирайте под установленную в системе — она должна совпадать, иначе PyTorch не увидит видеокарту. Проверить, что GPU определился, можно короткой командой в интерпретаторе Python: torch.cuda.is_available() — в сборке под ROCm этот вызов возвращает True, несмотря на название.

📊 Какой способ запуска Stable Diffusion на AMD вы используете?
DirectML на Windows
ROCm на Linux
ZLUDA
Пока только выбираю вариант

Способ 3: ZLUDA — эмуляция CUDA

ZLUDA — это слой совместимости, который позволяет приложениям, написанным под CUDA, работать на картах AMD без переписывания кода. Для Stable Diffusion существуют готовые сборки и инструкции, объединяющие ZLUDA с Automatic1111 или ComfyUI на Windows.

Плюс подхода — скорость генерации обычно выше, чем у DirectML, и доступны расширения, требующие CUDA. Минус — настройка сложнее: нужно установить HIP SDK, подменить библиотеки в папке приложения и убедиться, что ваша модель карты поддерживается. На неподдерживаемых моделях возможны падения или артефакты генерации.

Что проверить перед установкой ZLUDA

Убедитесь, что установлен HIP SDK совместимой версии и последний драйвер AMD. Проверьте в репозитории ZLUDA список поддерживаемых архитектур GPU. Сделайте резервную копию папки webui перед заменой библиотек — это позволит быстро откатиться при проблемах.

Сравнение способов запуска

Выбор метода зависит от вашей системы, модели карты и готовности возиться с настройкой. Обобщённое сравнение приведено ниже — точные цифры скорости сильно зависят от конкретной видеокарты, поэтому таблица даёт качественную, а не количественную оценку.

СпособОССкоростьСложность настройкиСовместимость карт
DirectMLWindowsНизкая/средняяНизкаяОчень широкая
ROCmLinuxВысокаяСредняяОграниченный список
ZLUDAWindows/LinuxСредняя/высокаяВысокаяЗависит от версии
CPU-режимЛюбаяОчень низкаяНизкаяНе требует GPU

Оптимизация скорости и расхода VRAM

Даже после успешного запуска генерация на AMD может быть медленной или прерываться ошибкой нехватки памяти. Вам помогут несколько проверенных приёмов, работающих независимо от выбранного способа.

Во-первых, снизьте разрешение генерации: изображения 512×512 требуют заметно меньше VRAM, чем 768×768 и выше. Во-вторых, используйте модели в формате .safetensors с пониженной точностью (fp16) — они занимают примерно вдвое меньше памяти, чем fp32-версии.

  • 🚀 Включите оптимизацию внимания: --opt-sub-quad-attention или --opt-split-attention.
  • 💾 При нехватке VRAM используйте --medvram или --lowvram.
  • 🖼️ Уменьшите размер батча до 1 — параллельная генерация нескольких картинок резко повышает расход памяти.
  • 🧩 Для апскейла применяйте Hires. fix умеренно: он генерирует картинку фактически дважды.
⚠️ Внимание: параметр --precision full вместе с --no-half иногда советуют при артефактах, но он удваивает расход видеопамяти. Применяйте его только если генерация даёт чёрные или испорченные изображения, и другие меры не помогли.

Типичные ошибки и их решение

Наиболее частая проблема — ошибка OutOfMemoryError или её аналог в DirectML. Она означает, что модель и параметры генерации не помещаются в видеопамять. Решение — флаги экономии VRAM, уменьшение разрешения и закрытие других приложений, занимающих GPU (браузер с аппаратным ускорением, игры).

Вторая распространённая ситуация — чёрные картинки вместо результата. Возможная причина — вычисления в fp16 на карте, которая с ними работает некорректно; в этом случае попробуйте запуск с --no-half, но помните про рост потребления памяти. Третья типичная жалоба — падение при загрузке PyTorch с сообщением об отсутствии совместимого GPU: это почти всегда признак того, что установлена CUDA-сборка PyTorch вместо DirectML- или ROCm-версии. Переустановите torch по инструкции вашего способа.

Где искать логи при ошибках

Automatic1111 выводит полный traceback в консоль, из которой запущен webui-user.bat. Ищите последнюю строку с типом исключения (RuntimeError, OSError и т.п.) — имена модулей в стеке подскажут, на каком этапе произошёл сбой: загрузка модели, выделение памяти или работа расширения.

Альтернативные интерфейсы: ComfyUI и Fooocus

Помимо Automatic1111, существуют другие интерфейсы, которые некоторым пользователям AMD подходят лучше. ComfyUI работает на узловой системе и нередко показывает более стабильную работу и меньший расход памяти; его также можно запускать через DirectML или ROCm. Fooocus ориентирован на простоту — минимум настроек, автоматические пресеты, что удобно новичкам.

Если ваш основной сценарий — просто генерировать картинки без тонкой настройки пайплайна, попробуйте несколько интерфейсов и оставьте тот, который стабильнее работает именно на вашей связке «карта + драйвер». Стабильность может заметно отличаться даже между соседними версиями драйверов AMD.

Часто задаваемые вопросы

Можно ли запустить Stable Diffusion на AMD без видеокарты, на процессоре?

Да, существует режим генерации на CPU — например, через параметр --use-cpu all в Automatic1111. Однако скорость будет на порядки ниже: одна картинка может генерироваться десятки минут. Такой режим годится только для проверки работоспособности, а не для регулярного использования.

Работают ли расширения и ControlNet на AMD?

Расширения, не требующие CUDA-специфичных библиотек, обычно работают. ControlNet функционирует в DirectML-форке и под ROCm, хотя скорость может быть ниже, чем на NVIDIA. Расширения, жёстко привязанные к CUDA (некоторые оптимизаторы внимания), могут не запуститься — проверяйте описание конкретного расширения.

Сколько видеопамяти нужно для Stable Diffusion на AMD?

Для базовой генерации 512×512 с флагами экономии достаточно карт с 4 ГБ VRAM, хотя комфортный минимум — 8 ГБ. Для больших разрешений, SDXL-моделей и обучения LoRA желательно 12–16 ГБ и больше. Точные требования зависят от модели и параметров запуска.

Что делать, если генерация идёт, но очень медленно?

Проверьте, что используется именно GPU, а не CPU (в консоли при старте указывается устройство). Затем примените флаги оптимизации внимания, уменьшите разрешение и количество шагов, закройте лишние приложения. Если вы на DirectML и скорость критична — рассмотрите переход на ROCm под Linux или настройку ZLUDA.

Будет ли работать SDXL на карте AMD?

Да, модели SDXL запускаются через все три способа, но они заметно требовательнее к памяти и вычислениям, чем SD 1.5. На картах с малым объёмом VRAM потребуются флаги экономии памяти, а генерация займёт больше времени.