Запуск Stable Diffusion Forge на видеокарте AMD упирается в одну фундаментальную проблему: интерфейс изначально собран под CUDA — технологию NVIDIA, которой у «красных» карт просто нет. Поэтому стандартная установка через webui-user.bat на AMD-системе либо падает с ошибкой torch.cuda.is_available() returned False, либо молча работает на процессоре, генерируя одно изображение по несколько минут.
Хорошая новость в том, что рабочие пути существуют: бэкенд DirectML для Windows, прослойка ZLUDA и нативный ROCm для Linux. Ниже разберём каждый вариант, типичные ошибки и настройки, которые реально влияют на скорость генерации.
Почему Forge не работает «из коробки» на AMD
Forge — это оптимизированный форк AUTOMATIC1111, и как оригинал, он зависит от PyTorch с поддержкой CUDA. Библиотека torch в стандартной сборке ищет именно CUDA-ядра, поэтому видеокарта Radeon остаётся «невидимой» для генератора. Это не баг конкретной сборки, а архитектурное ограничение.
Существует три основных обходных пути, и выбор зависит от вашей операционной системы и модели GPU:
- 🔧 DirectML — форк Forge с бэкендом Microsoft DirectML, работает на Windows почти с любой картой AMD;
- ⚡ ZLUDA — эмуляция CUDA поверх HIP, даёт заметно более высокую скорость на поддерживаемых картах;
- 🐧 ROCm — родной стек AMD для Linux, самый быстрый вариант при поддержке вашей модели GPU.
⚠️ Внимание: поддержка конкретных видеокарт в ROCm и ZLUDA зависит от архитектуры (RDNA, RDNA 2, RDNA 3, CDNA). Перед установкой сверьтесь с официальным списком совместимости AMD и репозиторием ZLUDA — попытка запуска на неподдерживаемой карте обычно заканчивается падением процесса или артефактами генерации.
Вариант 1: Forge с DirectML на Windows
Самый простой способ для Windows — использовать форк stable-diffusion-webui-forge с веткой DirectML либо аналогичные сборки сообщества. Принцип: PyTorch заменяется версией torch-directml, которая отправляет вычисления через DirectX 12, а не CUDA.
Общий порядок действий выглядит так: клонируется репозиторий форка, создаётся виртуальное окружение Python, ставится torch-directml, после чего запуск выполняется с флагом, указывающим бэкенд. Точные команды зависят от конкретной сборки, поэтому берите их из README выбранного репозитория — они периодически меняются.
pip install torch-directml
python launch.py --directml
Скорость на DirectML ниже, чем у ZLUDA и ROCm, зато способ работает практически на любой современной Radeon-карте без танцев с драйверами. Для первого знакомства с Forge на AMD это разумная стартовая точка.
Вариант 2: ZLUDA — эмуляция CUDA на Windows
ZLUDA — библиотека, которая подменяет вызовы CUDA на HIP-аналоги, позволяя стандартной CUDA-сборке Forge работать на Radeon. По отзывам сообщества, прирост скорости по сравнению с DirectML ощутимый, особенно на картах серий RX 6000 и RX 7000.
Вам потребуется установить свежий драйвер AMD с компонентом HIP SDK, скачать релиз ZLUDA и подложить его библиотеки в окружение Forge — либо воспользоваться готовыми сборками, где это уже сделано. После первого запуска ZLUDA компилирует ядра под вашу архитектуру: первая генерация может занять заметно больше времени, чем последующие — это нормальное поведение, а не зависание.
☑️ Проверка перед запуском Forge через ZLUDA
Если при запуске появляется ошибка вида HIP error: shared object initialization failed или процесс завершается без сообщения, чаще всего причина в несовместимости версии HIP SDK с релизом ZLUDA. Проверьте соответствие версий в документации сборки — это первое действие при любых «немых» падениях.
Вариант 3: ROCm на Linux
Для Linux существует официальный путь: PyTorch собран под ROCm, и Forge работает на нём без прослоек. Устанавливается стек ROCm от AMD, затем torch с индекса ROCm-сборок:
pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.x
Номер версии ROCm в адресе индекса должен соответствовать установленному стеку — актуальную ссылку берите с официального сайта PyTorch. После установки проверка видимости карты выполняется командой python -c "import torch; print(torch.cuda.is_available())" — в ROCm-сборках CUDA-интерфейс эмулируется, поэтому ответ True означает, что GPU определён.
На некоторых картах, формально не входящих в список поддержки ROCm, помогает переменная окружения HSA_OVERRIDE_GFX_VERSION, подменяющая идентификатор архитектуры. Это неофициальный обход: стабильность не гарантируется, поэтому применяйте его с пониманием рисков и ищите значение именно для вашей модели GPU в документации сообщества.
Сравнение способов запуска
Точные цифры скорости зависят от модели карты, объёма VRAM и разрешения генерации, поэтому ниже — качественное сравнение без выдуманных бенчмарков:
| Способ | ОС | Совместимость | Скорость | Сложность настройки |
|---|---|---|---|---|
| DirectML | Windows | Очень широкая | Низкая/средняя | Низкая |
| ZLUDA | Windows | Средняя (зависит от архитектуры) | Средняя/высокая | Средняя |
| ROCm | Linux | Ограниченная списком AMD | Высокая | Средняя/высокая |
| CPU fallback | Любая | Полная | Очень низкая | Минимальная |
Типичные ошибки и их диагностика
Первая группа проблем — «невидимая» видеокарта. Симптом: в логе torch.cuda.is_available() возвращает False, генерация идёт на CPU. Проверьте, что установлена правильная версия torch (DirectML- или ROCm-сборка), а не стандартная CUDA-сборка, и что драйвер AMD обновлён.
Вторая группа — ошибки нехватки памяти (out of memory). Forge умеет выгружать части модели, но на картах с малым объёмом VRAM помогают флаги запуска, например --medvram или --lowvram, а также снижение разрешения и включение оптимизаций внимания. Конкретный набор флагов зависит от бэкенда — не все ключи работают в DirectML-сборках.
- 🧩 Ошибка
No module named 'torch_directml'— не установлен пакет DirectML в активном окружении; - 🧩 Чёрные или шумные изображения — возможная несовместимость precision; попробуйте флаг
--precision fullи отключение half-вычислений для VAE; - 🧩 Падение при загрузке модели — проверьте целостность файла чекпоинта и свободное место на диске;
- 🧩 Экстремально медленная первая генерация на ZLUDA — компиляция ядер, дождитесь завершения.
⚠️ Внимание: не копируйте наборы флагов запуска из чужих конфигов без разбора. Часть аргументов предназначена только для CUDA и на AMD-сборках либо игнорируется, либо провоцирует ошибки. Добавляйте флаги по одному и проверяйте результат после каждого изменения.
Оптимизация скорости генерации
После того как Forge стабильно запускается, имеет смысл заняться производительностью. Наибольший эффект обычно дают: использование моделей в формате fp16 (если бэкенд корректно с ним работает), уменьшение количества шагов сэмплирования в связке с современными сэмплерами и включение встроенных оптимизаций Forge — он по умолчанию эффективнее управляет памятью, чем оригинальный A1111.
Дополнительно следите за разрешением: генерация 1024×1024 требует заметно больше VRAM и времени, чем 512×512. Для слабых карт разумно генерировать в меньшем разрешении и затем применять апскейл через Hires. fix или внешние апскейлеры.
Почему Forge быстрее оригинального A1111
Forge переработал логику управления памятью: модули модели подгружаются и выгружаются из VRAM по мере необходимости, что снижает пиковое потребление и ускоряет работу на картах с ограниченной памятью. Однако на AMD-бэкендах часть этих оптимизаций может быть недоступна или работать иначе — фактическую скорость проверяйте на своей конфигурации.
FAQ: частые вопросы о Forge на AMD
Работает ли Stable Diffusion Forge на AMD Radeon без NVIDIA?
Да, но не в стандартной CUDA-сборке. Нужен форк с DirectML, прослойка ZLUDA на Windows или ROCm-окружение на Linux. Каждый способ имеет свои ограничения по совместимости с конкретными моделями карт.
Почему Forge пишет, что CUDA недоступна?
Потому что стандартный PyTorch ищет GPU NVIDIA. На AMD это ожидаемое поведение: установите сборку torch под ваш бэкенд (DirectML или ROCm) и проверьте видимость карты тестовой командой до запуска интерфейса.
Что быстрее на Windows — DirectML или ZLUDA?
По опыту сообщества, ZLUDA обычно обеспечивает более высокую скорость на поддерживаемых картах, но требовательнее к версиям драйвера и HIP SDK. DirectML проигрывает в скорости, зато работает на более широком парке устройств.
Сколько VRAM нужно для Forge на AMD?
Точная цифра зависит от модели, разрешения и флагов оптимизации. С картами с малым объёмом памяти используйте режимы --medvram/--lowvram и модели SD 1.5 вместо SDXL — они существенно легче.
Можно ли запустить Forge на интегрированной графике AMD?
Технически DirectML-сборка может работать и на встроенной графике, но скорость будет низкой, а память делится с системой. Для комфортной работы нужна дискретная видеокарта.