Запуск 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
После запуска интерфейс откроется в браузере по локальному адресу. Если генерация идёт, но медленно, попробуйте добавить в 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, несмотря на название.
Способ 3: ZLUDA — эмуляция CUDA
ZLUDA — это слой совместимости, который позволяет приложениям, написанным под CUDA, работать на картах AMD без переписывания кода. Для Stable Diffusion существуют готовые сборки и инструкции, объединяющие ZLUDA с Automatic1111 или ComfyUI на Windows.
Плюс подхода — скорость генерации обычно выше, чем у DirectML, и доступны расширения, требующие CUDA. Минус — настройка сложнее: нужно установить HIP SDK, подменить библиотеки в папке приложения и убедиться, что ваша модель карты поддерживается. На неподдерживаемых моделях возможны падения или артефакты генерации.
Что проверить перед установкой ZLUDA
Убедитесь, что установлен HIP SDK совместимой версии и последний драйвер AMD. Проверьте в репозитории ZLUDA список поддерживаемых архитектур GPU. Сделайте резервную копию папки webui перед заменой библиотек — это позволит быстро откатиться при проблемах.
Сравнение способов запуска
Выбор метода зависит от вашей системы, модели карты и готовности возиться с настройкой. Обобщённое сравнение приведено ниже — точные цифры скорости сильно зависят от конкретной видеокарты, поэтому таблица даёт качественную, а не количественную оценку.
| Способ | ОС | Скорость | Сложность настройки | Совместимость карт |
|---|---|---|---|---|
| DirectML | Windows | Низкая/средняя | Низкая | Очень широкая |
| ROCm | Linux | Высокая | Средняя | Ограниченный список |
| ZLUDA | Windows/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 потребуются флаги экономии памяти, а генерация займёт больше времени.