关于AMD GPU使用Olive的SD Webui环境搭建的尝试(不是教程)
GraueFedern
编辑于 2025年04月15日 09:53


一路上还是踩了不少坑,大概是我太菜了吧。我希望能展示一下不是计算机专业的小白应该如何尝试搭建。我会写得非常详细并展示一路上我犯的所有低级错误,还请各位大佬骂轻点。

Step 1

https://community.amd.com/t5/ai/updated-how-to-running-optimized-automatic1111-stable-diffusion/ba-p/630252

以上网址是AMD官方给的提示基本上是对的,没啥大问题,只是对我这种没有基本编程知识的有点难受。要折腾的小伙伴可以认真读一下。

Step 2

准备必要的软件

    1·Git (https://gitforwindows.org/) 哪个新就下载哪个版本,目前发现没啥影响。

    2·Anaconda/Miniconda (https://docs.conda.io/projects/miniconda/en/latest/miniconda-other-installer-links.html)这一步遇到了一点问题,用最新的版本尝试了一天都没成功,然后发现官方介绍后面有这么一条命令,因此Python 3.11能不能用我不知道,但我起码知道有人用Python 3.10.6成功了

来自AMD的提示

所以根据提示Anaconda/Miniconda也应该用Python 3.10对应的

Anaconda/Miniconda

    3·之前不知道其他啥软件装了Python,不管它是啥版本,我选择卸载重装Python 3.10.6(https://www.python.org/downloads/release/python-3106/)

    4·确认一下A卡的驱动是不是大于AMD Software: Adrenalin Edition™ 23.7.2(https://www.amd.com/zh-hans/support)这个版本,我选择更新到23.11.1,官网介绍说是对AI有优化

Adrenalin Edition™ 23.11.1

Step 3

安装

    1·显卡驱动版本不正确的注意更新一下。

    2·Git和Python与其它版本SD安装的方式是完全一样的,不会的可以参考各路大佬的介绍,注意一定把它们都加入到环境变量的Path里,不然后面命令窗口里调用不了。

    3·安装Anaconda/Miniconda,我选的为所有用户安装,然后一直下一步就行。

    4·安装完后把Anaconda/Miniconda也加入Path,找不到就在开始里输入,然后把只有两个快捷方式的文件夹加入Path,注意是文件夹的位置,不是这两个文件映射的位置。

    4·打开Anaconda/Miniconda,正常打开就行,不需要管理员权限。然后就会看到Anaconda Prompt字样的命令窗口

    5·开始输入命令 conda create --name Automatic1111_olive python=3.10.6,然后按y确认一下就会自己安装了。

    6·看到这个就是安装好了

    7·输入命令 conda activate Automatic1111_olive,看到这个就是完成了

    8·输入命令 git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml,没有反馈,完成了就又可以输入命令了

    9·输入命令 cd stable-diffusion-webui-directml

    10·输入命令 git submodule update --init --recursive

    11·输入命令 webui.bat --onnx --backend directml 开始配置环境和需要的文件

    12·然后我们就可以发现它装了N卡用的cu118的pytorch,暂时不管它,让它继续

    13·安装完会看到这个报错,看来它是真的默认N卡了

    14·输入命令 pip install torch-directml 纠正一下,cu118不卸载也没问题,反正后面也不会调用

    15·安装好后输入 webui.bat --onnx --backend directml --skip-torch-cuda-test 然后继续报错,这个报错就是AMD提到的这个了

    16·输入 cd stable-diffusion-webui-directml\venv\Scripts 的时候要注意,这个时候命令行的状态大概是在C:\Users\xxxxxx\stable-diffusion-webui-directml>这个位置的,因此cd stable-diffusion-webui-directml\venv\Scripts 就会找不到

    17·总之cd到:\Users\xxxxxx\stable-diffusion-webui-directml\venv\Scripts>这里就行大概率是cd venv\Scripts

    18·然后输入 pip install httpx==0.24.1,完成后pip升不升级都可以

    19·这个时候该做的准备都准备好了,直接 webui.bat --onnx --backend directml --skip-torch-cuda-test 应该就可以运行了,但是我宣布个事儿,我是XX

    20·因为不知道为啥webui.bat找不到了,折腾了很久,然后我就发现我现在的位置在cd stable-diffusion-webui-directml\venv\Scripts,这里当然没有webui.bat ,连续输入两次 cd .. 回到C:\Users\xxxxxx\stable-diffusion-webui-directml>这个位置,再输入webui.bat --onnx --backend directml --skip-torch-cuda-test

    21·然后还是报错,原因在这里。Olive需要的命令是 --use-directml,而AMD给的却是--backend directml ,可能AMD的大佬有ta自己的想法吧。

    22·输入命令 webui.bat --onnx --use-directml --skip-torch-cuda-test,然后就会看到没模型的报错和启动成功的网页,到这里我们想要的ONNX和Olive就有了

Step 4

现在基本的SD Webui已经跑起来了,该下模型的下模型,该下插件的下插件,该设置的设置,最后静等Olive优化模型就好,优化有点慢,可以晚上睡觉的时候去优化。

目前测试下来运行是没有问题的,我硬件配置为5950X+64G DDR4+Radeon VII(AMD全家桶),使用最新版lshqqytiger/stable-diffusion-webui-directml(python-3.10.11 pytorch-2.0.0)的计算能力是SD1.5模型 512*512  euler a  平均1.76it/s(连续生成64张图片),而使用了带Olive的SD时(python-3.10.6 pytorch-1.13.1),用官方提供的优化后的SD1.5模型 512*512  euler a  平均2.41it/s(连续生成64张图片),将官方优化模型再优化一次后可以达到平均3.04it/s,模型优化时间3分41秒,CPU调用大部分时候只有4核顶满了,内存占用最大突破38G。

仍然未解决的问题

    1·安装的时候确实是下载的Pytorch-directml 2.0.0,但是因为各种依赖问题会被退回到Pytorch-directml 1.13.1,总所周知,Pytorch 2 对比 Pytorch 1 有巨大的提升,如果能更新上2.0 相比原来应该会有100%以上的提升,可惜我不会。

    2·似乎需要ONNX的模型才能用Olive转换,转换时间也受到模型和硬件的影响,转换时只能用CPU 而且内存占用巨大。

祝各位玩得愉快

Mit freundlichen Grüßen