Установка и запуск нейронной сети на ПК с видеокартой AMD
По состоянию статистики Steam на конец января 2023 года, видеокарты компании AMD являются аутсайдерами на рынке графических ускорителей. И всё больше производителей профессионального ПО и игр предпочитают в первую очередь оптимизировать свои продукты под графические решения от компании Nvidia. Такое положение дел не обошло стороной и нейронные сети. В этой небольшой инструкции вы узнаете, как назло общепринятым стандартам, заставить нейронную сеть Stable Diffusion (генерация картинок по любому текстовому запросу) работать c видеокартами AMD.

Установка сети
В настоящее время существует примерно три реализации Stable Diffusion, которые со скрипом, но способны использовать GPU AMD для ускорения обработки задач. Однако все они привязаны к новейшей архитектуре RDNA или работают только под Linux, что автоматом отсеивает большинство красных пользователей, которые не хотят разоряться на покупке новой видеокарты или устанавливать непривычную ОС из-за желания испытать нейронную сеть. Обойдём эти ограничения, заставив нейронную сеть Stable Diffusion работать на Windows 10/11 c любым относительно современным GPU AMD!
Минимальный системные требования:
ОС: Windows 10/11/Linux 64 Бит.
RAM: 8+ Гб.
CPU: 2/4+ ядра 3.0+ ГГц.
GPU: AMD (Возможна работа силами CPU).
1. Скачиваем и устанавливаем необходимые компоненты:
Python 3.10.6 (Не забудьте поставить галочку PATH).
2. Загружаем архив с нейронной сетью.

3. Распаковываем нейронную сеть в корень любого носителя.

4. Скачиваем архивы с модифицированными файлами для работы нейронной сети с видеокартами AMD.
Архивы:
5. Переходим в папку C:\stable-diffusion-webui-directml\repositories и распаковываем все файлы архива k-diffusion-directml-master.zip (Не его папку, а файлы, что внутри неё) в папку k-diffusion. Аналогично поступаем с архивом stablediffusion-directml-main.zip, но его файлы уже распаковываем в папку stable-diffusion-stability-ai.

6. Теперь нам необходимо в файл запуска нейронной сети webui-user.bat добавить команды для обхода проверки отсутствующих ядер CUDA и общей оптимизации. Подробнее о параметрах запуска вы всегда можете почитать тут.
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --lowvram --disable-nan-check --autolaunch --opt-split-attention
set GIT_SSL_NO_VERIFY=true
call webui.bat
Более быстрая генерация (Возможны баги):
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --lowvram --precision full --no-half --no-half-vae --opt-sub-quad-attention --opt-split-attention-v1 --disable-nan-check --autolaunch
set GIT_SSL_NO_VERIFY=true
call webui.bat

7. Скачиваем обученные модели, чтобы наша нейронная сеть понимала, кого и что ей рисовать. Я остановил свой выбор на NeverEnding Dream.

Переносим файл обученной модели в:
C:\stable-diffusion-webui-directml\models\Stable-diffusion
8. Теперь необходимо скачать файл конфигурации VAE для нормализации конечного изображения и перенести его в:
C:\stable-diffusion-webui-directml\models\VAE
9. Выполняем запуск нейронной сети через файл webui-user.bat в папке C:\stable-diffusion-webui-directm и дожидаемся загрузки и установки всех необходимых компонентов. Если всё прошло успешно, то вас автоматически перенесёт на страницу панели управления нейронной сетью в вашем браузере.

10. Переходим в Setting и в разделе Stable Diffusion выбираем наш VAE. Теперь нам необходимо выбрать алгоритм восстановление лица, который не зависит от наличия CUDA или тензорных ядер Nvidia. Переходим в раздел Face Restoration, выбираем алгоритм GFPGAN. Применяем настройки.
11. Возвращаемся во вкладку txt2img, где для проверки работы ускорения нейронной сети на GPU AMD вводим любой желаемый запрос. По нагрузке на GPU и CPU в диспетчере задач проверяем результат.

Фанфары, гром и молния! Всё работает.
Результат (RX 550)
Конечный результат получился немного пошлый, но зато сразу после удалось создать красивого рыцаря.

- Запрос: Knight girl with red hair (Девушка рыцарь с красными волосами).
- Модель: NeverEnding Dream.
- Количество проходов: 40 (GPU).
- Сэмплер: PLMS.
- Фильтры и стили: нет.
- Исправление лица: активно.
Заключение
Несмотря на то что способ является лютыми костылями и проигрывает по качеству реализации генерации готового изображения видеокартам Nvidia, он всё же позволяет намного быстрее создавать готовые шедевры, чем классическое задействование возможностей CPU. Создавайте, делитесь своими творения и никогда не позволяйте компаниям диктовать свои условия.
ПС. Инструкция для видеокарт Nvidia.
112 комментариев
Добавить комментарий
А если видяха нвидиа, и есть «кУда»? Жду вариант руководства для них. :-)
https://www.ixbt.com/live/sw/ustanovka-neyronnoy-seti-na-pk-v-dva-klika.html
и . По указанным ссылкам не могу найти искомые архивы. Заранее благодарю
Couldn't launch python
exit code: 9009
stderr:
Python
Launch unsuccessful. Exiting.
Для продолжения нажмите любую клавишу...
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/1423
--no-half --precision full --no-half-vae --opt-sub-quad-attention --opt-split-attention-v1
You can download 3.10 Python from here: https://www.python.org/downloads/release/python-3109/
Alternatively, use a binary release of WebUI: https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases
Use --skip-python-version-check to suppress this warning.
==============================================================================================================
Python 3.11.2 (tags/v3.11.2:878ead1, Feb 7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)]
Commit hash:
Installing torch and torchvision
ERROR: Could not find a version that satisfies the requirement torch==1.13.1 (from versions: none)
ERROR: No matching distribution found for torch==1.13.1
Traceback (most recent call last):
File «C:\stable-diffusion-webui-directml-master\launch.py», line 352, in
prepare_environment()
File «C:\stable-diffusion-webui-directml-master\launch.py», line 268, in prepare_environment
run(f'"{python}" -m {torch_command}', «Installing torch and torchvision», «Couldn't install torch», live=True)
File «C:\stable-diffusion-webui-directml-master\launch.py», line 89, in run
raise RuntimeError(f"""{errdesc or 'Error running command'}.
RuntimeError: Couldn't install torch.
Command: «C:\stable-diffusion-webui-directml-master\venv\Scripts\python.exe» -m pip install torch==1.13.1 torchvision==0.14.1 torch-directml
Error code: 1
Для продолжения нажмите любую клавишу...
объяснить кому-то как это вышло уже не смогу ))
буду дальше возиться (радеон 580 4ГБ)
спасибо, работает!
А промты как в миджорни можно давать ему?
А модели только с этого сайта скачивать? (этот какой-то совсем мультяшный)
Моделей целая уйма. Представлены ссылки в гайде для Nvidia.
«AttributeError: function RAMUsage_Get»"'ADL2_Adapter_DedicatedV" и выключается.
по-моему все инструкции выполнил.
Traceback (most recent call last):
File «C:\Downloads\stable-diffusion-webui-directml-master\launch.py», line 360, in
start()
File «C:\Downloads\stable-diffusion-webui-directml-master\launch.py», line 351, in start
import webui
File «C:\Downloads\stable-diffusion-webui-directml-master\webui.py», line 15, in
from modules import import_hook, errors, extra_networks, ui_extra_networks_checkpoints
File «C:\Downloads\stable-diffusion-webui-directml-master\modules\ui_extra_networks_checkpoints.py», line 6, in
from modules import shared, ui_extra_networks, sd_models
File «C:\Downloads\stable-diffusion-webui-directml-master\modules\shared.py», line 12, in
import modules.interrogate
File «C:\Downloads\stable-diffusion-webui-directml-master\modules\interrogate.py», line 15, in
from modules import devices, paths, shared, lowvram, modelloader, errors
File «C:\Downloads\stable-diffusion-webui-directml-master\modules\devices.py», line 101, in
from modules import atiadlxx
File «C:\Downloads\stable-diffusion-webui-directml-master\modules\atiadlxx.py», line 2, in
from .atiadlxx_apis import *
File «C:\Downloads\stable-diffusion-webui-directml-master\modules\atiadlxx_apis.py», line 41, in
ADL2_Adapter_DedicatedVRAMUsage_Get = atiadlxx.ADL2_Adapter_DedicatedVRAMUsage_Get
File «C:\Users\Gaisj\AppData\Local\Programs\Python\Python310\lib\ctypes\__init__.py», line 387, in __getattr__
func = self.__getitem__(name)
File «C:\Users\Gaisj\AppData\Local\Programs\Python\Python310\lib\ctypes\__init__.py», line 392, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'ADL2_Adapter_DedicatedVRAMUsage_Get' not found
Для продолжения нажмите любую клавишу...
Решение не нашлось, не подскажите?
Та же ошибка
видеокарта RX570 4гб?
Python 3.10.10 (tags/v3.10.10:aad5f6a, Feb 7 2023, 17:20:36) [MSC v.1929 64 bit (AMD64)]
Commit hash:
Installing gfpgan
Traceback (most recent call last):
File «Z:\stable-diffusion-webui-directml-master\launch.py», line 359, in
prepare_environment()
File «Z:\stable-diffusion-webui-directml-master\launch.py», line 276, in prepare_environment
run_pip(f«install {gfpgan_package}», «gfpgan»)
File «Z:\stable-diffusion-webui-directml-master\launch.py», line 137, in run_pip
return run(f'"{python}" -m pip {args} --prefer-binary{index_url_line}', desc=f«Installing {desc}», errdesc=f«Couldn't install {desc}»)
File «Z:\stable-diffusion-webui-directml-master\launch.py», line 105, in run
raise RuntimeError(message)
RuntimeError: Couldn't install gfpgan.
Command: «Z:\stable-diffusion-webui-directml-master\venv\Scripts\python.exe» -m pip install git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 --prefer-binary
Error code: 1
stdout: Collecting git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379
Cloning https://github.com/TencentARC/GFPGAN.git (to revision 8d2447a2d918f8eba5a4a01463fd48e45126a379) to c:\users\user\appdata\local\temp\pip-req-build-378qv4ft
stderr: ERROR: Error [WinError 2] while executing command git version
ERROR: Cannot find command 'git' — do you have 'git' installed and in your PATH?
Есть идеи что не так?
Ну написано же, что поставьте галочку PATH при установке Python. Зачем делал скрины, не понятно…
File «C:\stable-diffusion-webui-directml-master\modules\paths.py», line 26, in
assert sd_path is not None, «Couldn't find Stable Diffusion in any of: » + str(possible_sd_paths)
AssertionError: Couldn't find Stable Diffusion in any of: ['C:\\stable-diffusion-webui-directml-master\\repositories/stable-diffusion-stability-ai', '.', 'C:\\']
куды бечь ?-) rx6800
Я также написал. Euler a, 512x768 изображение было обработано за 1 мин.17сек. Я нашел комментарии в этой теме и написал новую строку
--opt-sub-quad-attention --no-half --precision full --disable-nan-check --autolaunch --opt-split-attention-v1
И сейчас Euler a, 512x768 изображение было обработано за 0 мин.17сек. Моя видеокарта RX 6700 XT
Хотя на проц версии уже давно работаю, и всё хорошо, хотя прописано всё правильно, и перенёс
--medvram --precision full --no-half --no-half-vae --opt-sub-quad-attention --opt-split-attention-v1 --disable-nan-check --autolaunch
DPM++2M Karras, steps 20, 512x640 / 0 min 13 sec / RX 6700 XT
[notice] A new release of pip available: 22.2.1 -> 23.0.1
[notice] To update, run: C:\SD\venv\Scripts\python.exe -m pip install --upgrade pip
Installing gfpgan
Installing clip
Installing open_clip
Cloning Taming Transformers into repositories\taming-transformers...
Cloning CodeFormer into repositories\CodeFormer...
Cloning BLIP into repositories\BLIP...
Traceback (most recent call last):
File «C:\SD\launch.py», line 356, in
prepare_environment()
File «C:\SD\launch.py», line 300, in prepare_environment
git_clone(blip_repo, repo_dir('BLIP'), «BLIP», blip_commit_hash)
File «C:\SD\launch.py», line 159, in git_clone
run(f'"{git}" clone "{url}" "{dir}"', f«Cloning {name} into {dir}...», f«Couldn't clone {name}»)
File «C:\SD\launch.py», line 105, in run
raise RuntimeError(message)
RuntimeError: Couldn't clone BLIP.
Command: «git» clone «https://github.com/salesforce/BLIP.git» «repositories\BLIP»
Error code: 128
stdout:
stderr: Cloning into 'repositories\BLIP'...
error: 3746 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
Для продолжения нажмите любую клавишу.. .
В чем может быть причина?
PC Win 11, Ryzen7 3700x 32 ОЗУ RX5700XT SSD 512
Собственно обновил C:\SD\venv\Scripts\python.exe -m pip install --upgrade pip
И заработало)
Сделал всё по инструкции. Карта RX 580 (8gb).
Вчера всё работало.
Сегодня утром запустил — не работает.
Вначале долгая прогрузка cmd (dos-кий экран), без автозапуска вэбинтрефейса в Хроме.
Перезапустил — cmd быстрее, но опять без автозапуска вэбинтрефейса.
Запустил вэбинтрефейса вручную по адресу http://127.0.0.1:7860/.
Начинаю генерить картинку процес идет, но потом слетает.
В dos-ком экране сообщение о нехватки видеопамяти:
«RuntimeError: Could not allocate tensor with 268435456 bytes. There is not enough GPU video memory available!»
Update...
Ложная тревога — запускал *.cmd, а надо было *.bat.
Всё работает!
venv «C:\stable-diffusion-webui\venv\Scripts\Python.exe»
Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
Commit hash: a9fed7c364061ae6efb37f797b6b522cb3cf7aa2
Fetching updates for Stable Diffusion...
Checking out commit for Stable Diffusion with hash: 47b6b607fdd31875c9279cd2f4f16b92e4ea958e...
Traceback (most recent call last):
File «C:\stable-diffusion-webui\launch.py», line 380, in
prepare_environment()
File «C:\stable-diffusion-webui\launch.py», line 315, in prepare_environment
git_clone(stable_diffusion_repo, repo_dir('stable-diffusion-stability-ai'), «Stable Diffusion», stable_diffusion_commit_hash)
File «C:\stable-diffusion-webui\launch.py», line 164, in git_clone
run(f'"{git}" -C "{dir}" checkout {commithash}', f«Checking out commit for {name} with hash: {commithash}...», f«Couldn't checkout commit {commithash} for {name}»)
File «C:\stable-diffusion-webui\launch.py», line 113, in run
raise RuntimeError(message)
RuntimeError: Couldn't checkout commit 47b6b607fdd31875c9279cd2f4f16b92e4ea958e for Stable Diffusion.
Command: «git» -C «C:\stable-diffusion-webui\repositories\stable-diffusion-stability-ai» checkout 47b6b607fdd31875c9279cd2f4f16b92e4ea958e
Error code: 128
stdout:
stderr: fatal: reference is not a tree: 47b6b607fdd31875c9279cd2f4f16b92e4ea958e
Для продолжения нажмите любую клавишу...
Creating venv in directory D:\stable-diffusion-webui-directml-master\venv using python «C:\Users\1998я7\AppData\Local\Programs\Python\Python310\python.exe»
Unable to create venv in directory «D:\stable-diffusion-webui-directml-master\venv»
exit code: 3
stderr:
Что делать? заранее спасибо
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --medvram --precision full --no-half --no-half-vae --opt-split-attention-v1 --opt-sub-quad-attention --disable-nan-check --autolaunch --theme=dark
set GIT_SSL_NO_VERIFY=true
call webui.bat
RX 580 8 gb.
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --medvram --precision full --no-half --no-half-vae --opt-split-attention-v1 --opt-sub-quad-attention --disable-nan-check --autolaunch --theme=dark
set GIT_SSL_NO_VERIFY=true
call webui.bat
Вот мой конфиг 30 секунл, у тебя с конфигом что дал автор поста минуты полтары примерно?
Вот, установил в автоматическом режиме: https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-AMD-GPUs#automatic-installation, даже работает, вот только загрузка Rx580 в районе 10% и на рендер уходит… кхм… 5 минут. Пробовал разные флаги оптимизации, но загрузка gpu от этого не увеличивается. С чем может быть связано?
Мне весьма лень создавать инструкцию для Linux, так как это практически никому не нужно.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
venv «F:\stable-diffusion-webui-directml-master\venv\Scripts\Python.exe»
Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
Commit hash:
Installing requirements for Web UI
Launching Web UI with arguments: --lowvram --precision full --no-half --no-half-vae --opt-sub-quad-attention --opt-split-attention-v1 --disable-nan-check --autolaunch
Traceback (most recent call last):
File «F:\stable-diffusion-webui-directml-master\launch.py», line 349, in
start()
File «F:\stable-diffusion-webui-directml-master\launch.py», line 340, in start
import webui
File «F:\stable-diffusion-webui-directml-master\webui.py», line 31, in
from modules import extra_networks, ui_extra_networks_checkpoints
File «F:\stable-diffusion-webui-directml-master\modules\ui_extra_networks_checkpoints.py», line 5, in
from modules import shared, ui_extra_networks, sd_models
File «F:\stable-diffusion-webui-directml-master\modules\shared.py», line 12, in
import modules.interrogate
File «F:\stable-diffusion-webui-directml-master\modules\interrogate.py», line 15, in
from modules import devices, paths, shared, lowvram, modelloader, errors
File «F:\stable-diffusion-webui-directml-master\modules\devices.py», line 99, in
dml = torch_directml.device(torch_directml.default_device())
File «F:\stable-diffusion-webui-directml-master\venv\lib\site-packages\torch_directml\device.py», line 38, in device
raise Exception(f«Invalid device_id argument supplied {device_id}. device_id must be in range [0, {num_devices}).»)
Exception: Invalid device_id argument supplied 0. device_id must be in range [0, 0).
Press any key to continue...
Не знаю связано как-то или нет,- вчера обновился Автоматик (я ещё не пробовал).
Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
Commit hash:
Installing gfpgan
Traceback (most recent call last):
File «D:\stable-diffusion-webui-directml-master\launch.py», line 348, in
prepare_environment()
File «D:\stable-diffusion-webui-directml-master\launch.py», line 258, in prepare_environment
run_pip(f«install {gfpgan_package}», «gfpgan»)
File «D:\stable-diffusion-webui-directml-master\launch.py», line 129, in run_pip
return run(f'"{python}" -m pip {args} --prefer-binary{index_url_line}', desc=f«Installing {desc}», errdesc=f«Couldn't install {desc}»)
File «D:\stable-diffusion-webui-directml-master\launch.py», line 97, in run
raise RuntimeError(message)
RuntimeError: Couldn't install gfpgan.
Command: «D:\stable-diffusion-webui-directml-master\venv\Scripts\python.exe» -m pip install git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379 --prefer-binary
Error code: 1
stdout: Collecting git+https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379
Cloning https://github.com/TencentARC/GFPGAN.git (to revision 8d2447a2d918f8eba5a4a01463fd48e45126a379) to c:\temp\pip-req-build-9rly9bws
stderr: ERROR: Error [WinError 2] while executing command git version
ERROR: Cannot find command 'git' — do you have 'git' installed and in your PATH? Помогите чайнику разобраться!
Решил пойти на крайность, всё грохнул и поставил заново — Openpose работает, ошибки в консоли пропали.
Остальные фишки ControlNet не тестил, займусь с понедельника.
venv «C:\stable-diffusion-webui-directml-master\venv\Scripts\Python.exe»
No Python at '«C:\Users\mrdei\AppData\Local\Programs\Python\Python311\python.exe'
НУ НЕТУ У МЕНЯ В „venv“ нету pyton.exe
и вот не знаю как я обновить эту пипу! уже два раза питон удалил и установил а теперь оно пишет что у меня вообще питона нет(( ну что поделать админушка?
И webui-user.bat у меня ни разу не появлялось!!! одни вебуи юзер(((
и злая командная строка просит обновить эту вонючую пипу, она почти всегда указывает команду, которую если ввести, то пипка обновится. У меня она написала это: To update, run: и дальше написала команду, которую мне надо было ввести в
командную строку. У меня она выглядела так: D:\stable-diffusion-webui-directm1-master\venv\Scripts\python.exe -m pip install --upgrade pip. У тебя должна быть такая же штука. Я ввёл короче это чудо в командную строку и свершилось обновление!
Только вот чтобы изменения вступили в силу мне понадобилось перезапустить пк так что тоже советую так поступить. Надеюсь с этой проблемкой помог (да лаконичность явно не моё и если ты дочитал до этого момента и не умер, то ты сверхчеловек :D)
Кто-нибудь знает как оживить эту кнопку или мб есть нейронки, заточенные под такой формат? :3
Добавить комментарий