Windows下Stable Diffusion WebUI使用AMD显卡指北
Stable Diffusion(下称SD)
SD有纯命令行和带WebUI之分,本文针对的是带ui的版本。这两个版本的安装方式稍有不同。
安装流程
前置要求
SD安装前,首先要有git和Python3.10(应该在3.10.6以上)。
注意,git是必须装的,从GitHub上把压缩包下载下来是不够的。安装过程中还会拉取在线repo,别图省事,别抖机灵。
git是种管理器,比如代码版本管理,文档版本管理等等。有了git之后相当于给程序做了N多快照,可以随时恢复到任何一个节点。
在这里git的作用更像一个下载器。
Python不用介绍了吧,如果不知道去搜索一下再回来吧。Python安装过程中选中“Add Python to PATH”,如果忘了选也问题不大,将Python安装路径和Scripts添加到环境变量即可,具体方法网上应该有很多,搞定之后再回来。
Adrenalin显卡驱动,这个东西不会有人不装吧?
(可选)虚拟环境
很多教程里都用到了conda环境,其实这不是必须的,如果你没有其他Python使用需求,直接在系统里安装就可以。
这conda虚拟环境主要是应用于你需要多种不同版本的Python时,比如A软件需要Python3.7,B软件需要Python3.12,conda就派上用场了。
除此之外SD WebUI运行时会用到venv,这也是一种虚拟环境,只能用于隔离引用不同版本的程序包,不能用来指定不同的Python版本。另外要注意,virtualenv与venv不是一回事。好了,如果你用conda的话,似乎不太用考虑venv的问题,只要都在conda环境下就可以了。如果直接使用操作系统的Python环境,如果有些操作无效的话,尝试激活venv环境后再试一次。本文使用conda介绍。
安装miniconda
安装包不放了,到官网下载即可。安装完之后开始菜单里就有了miniconda,里面有PowerShell和terminal两种方式,我的环境下PowerShell抱错,不知原因,无处下手,但是terminal是可以正常使用的,部署也都通过terminal设置,没有问题;但我还是推荐你使用PowerShell方式部署。
git下载repo
使用cd命令导航到一个空目录,或者用mkdir命令创建个新的
如果是使用CUDA,也就是Nvidia显卡的话,(要先安装上CUDA工具哦)用这句:
git clone https://ghproxy.com/https://github.com/AUTOMATIC1111/stable-diffusion-webui.gitAMD显卡用这句:
git clone https://ghproxy.com/https://github.com/lshqqytiger/stable-diffusion-webui-directml.git就是下载文件到当前目录,AMD显卡还要下载下面两个库,直接给出命令了:
git clone https://ghproxy.com/https://github.com/lshqqytiger/k-diffusion-directml.git
git clone https://ghproxy.com/https://github.com/lshqqytiger/stablediffusion-directml.git以上两个repo的下载位置无所谓,下载后将k-diffusion-directml文件夹中的全部内容(不要包括主文件夹)移动到“SD主目录\repositories\k-diffusion”下;将stablediffusion-directml文件夹中的全部内容移动到 “SD主目录\repositories\stable-diffusion-stability-ai”下。
接下来修改一下SD目录下的launch.py,主要是使用国内镜像下载库,比如说pytorch有2.3G的体积,如果不使用国内镜像下载起来就比较慢了。用文本编辑器,打开launch.py,像上面一样,将
https://github.com
改成
https://ghproxy.com/https://github.com
改完后确认你修改的没有问题,别改多了。
然后还有一个关键步骤,使用文本编辑器打开SD主目录\webui-user.bat,在“set COMMANDLINE_ARGS=”后面加入“--precision full --no-half”,最终应该像这样:
set COMMANDLINE_ARGS=--precision full --no-half我的显卡是R9 370,只有4G显存,需要--no-half --medvram才能跑起来,不然一跑图显存必爆,如果有更小显存或者显存爆了,还可以试试添加--lowvram,内存小的话也可以试试--lowram,前提是有足够的显存,这种情况应该很少吧。
下载要使用的模型和LoRA
模型下载可以到Hugging Face – The AI community building the future.和Civitai | Stable Diffusion models, embeddings, hypernetworks and more查看。
下载的如果是checkpoint类型的文件,放入“SD主目录\models\Stable-diffusion”中;LoRA类型放入“SD主目录\models\Lora”中。
自动补全程序运行所需要的包
接着就是在conda中执行webui-user.bat,程序会自动下载所需要的文件并自动安装,这一步通常会持续一段时间,还可能会因为网络问题或者GitHub访问问题中断报错,如果是网络问题,重新运行一次就好了。如果是其他问题就得具体问题具体分析了。
在conda中激活你要使用的虚拟环境,比如
conda activate -n 环境名或者直接在开始菜单中选择miniconda命令行的快捷图标,直接继续。
像我目前还没有什么别的项目,加上懒,就直接用了base,如果一切正常,命令行应该像这样:
(base) C:\Users\administrator>前面的括号内就是现在的虚拟环境名称。
用cd命令导航到SD主目录下,然后执行
.\weibui-user.bat如果最终得到类似如下内容,说明启动成功了
venv "E:\sd\stable-diffusion-webui-directml\venv\Scripts\Python.exe"
Python 3.10.9 | packaged by conda-forge | (main, Jan 11 2023, 15:15:40) [MSC v.1916 64 bit (AMD64)]
Commit hash: c88824995d87be36a62b110dd509ff7ccb6eeaa2
Installing requirements for Web UI
Launching Web UI with arguments: --precision full --no-half
Warning: caught exception 'Torch not compiled with CUDA enabled', memory monitor disabled
No module 'xformers'. Proceeding without it.
Loading weights [fc2511737a] from E:\sd\stable-diffusion-webui-directml\models\Stable-diffusion\chilloutmix_NiPrunedFp32Fix.safetensors
Creating model from config: E:\sd\stable-diffusion-webui-directml\configs\v1-inference.yaml
LatentDiffusion: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
Applying cross attention optimization (InvokeAI).
Textual inversion embeddings loaded(0):
Model loaded in 214.9s (load weights from disk: 2.3s, create model: 0.8s, apply weights to model: 151.1s, apply dtype to VAE: 0.1s, move model to device: 59.7s, hijack: 0.2s, load textual inversion embeddings: 0.6s).
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.Warning: caught exception 'Torch not compiled with CUDA enabled', memory monitor disabled.这句无需理会。
No module 'xformers'. Proceeding without it.xformers对使用AMD显卡来说无效。
然后浏览器访问http://127.0.0.1:7860 或者http://localhost:7860就可以访问所谓的webui了,个人觉得比命令行直观方便。
安装中文语言
https://github.com/VinsonLaro/stable-diffusion-webui-chinese