当前位置:首页 > 资讯 > > 正文

本地 stable-diffusion-webui v1.3.2 Win虚拟机WSL部署指南及安装注意事项 -20230609-全球播报

来源:哔哩哔哩    时间:2023-06-12 04:54:15

WSL + Anaconda + Stable Diffusion + (ControlNet + GroundingDino鸽到下一期吧)

鉴于大家对 stable-diffusion-webui 的学习热度不减, 更新一篇我最近的环境部署,希望能帮助到对AIGC感兴趣的同学。

其实最简单的部署方法,应该是在B站找各路大佬提供的一键整合包。本文只适用于真的对Stable Diffusion感兴趣,想了解整套部署流程的同学。

1.基础概念

介绍必要的关键概念知识


【资料图】

Stable Diffusion: AIGC文生图模型,很火,后文可能简称SD。 基本原理科普可见:

【翻译】How Stable Diffusion Work - 给小白看的StableDiffusion原理介绍 Sparrowfc Sparrowfc  -  https://zhuanlan.zhihu.com/p/598070109

零基础读懂Stable Diffusion(III):怎么控制 - https://zhuanlan.zhihu.com/p/598070109

Stable Diffusion Webui: 大神开发的基于python gradio的网页前端,集成了很多Stable Diffusion文生图的流程工具,很火。

WSL: Windows Linux子系统, windows下的官方Linux虚拟机工具,用来在Windows系统中跑一个Ubuntu系统用于部署SD webui。

Anaconda: python环境的隔离工具, 防止不同版本python, 不同版本依赖软件包互相干扰。

2.部署方案

介绍整套部署方案的软硬件框架

硬件:  配置一 = i5 1135G7 笔记本 + 外置显卡坞 1080ti + 16G内存 . 配置二 = 11代i7 , 1080ti,  40G内存

软件: Win11 > WSL > Ubuntu-20.04 > anaconda > pytorch - cuda > stable diffusion webui > controlnet - grounding dino

3.部署指南

部署 wsl + gpu驱动工具,  配置anaconda环境, 安装 stable diffusion webui , 安装 sd webui内的插件 controlnet等

注释说明:

(default: XXX.XX) - 本人安装时的软件或驱动版本, 可作为默认参考

(@@在线版@@) - 考虑到国内网络环境, 大部分的能提前下载的内容我都放到网盘了。网络好的同学可以按照在线版的部分, 替换对应安装步骤。

TLDR:  后续所有代码指令在这复制一份, 方便快速ctrl+c ctrl +v

3.0 将网盘内的内容都下载下来

网盘地址: 

链接:https://pan.baidu.com/s/1MjoX4pUghUYOR-2UNbAVMA?pwd=wtum 

提取码:wtum

3.1 WSL下的Ubuntu虚拟机安装

安装 wsl  的 Ununtu 20.04 虚拟机, 并通过Windows Terminal终端进入虚拟机

平时工作环境更习惯linux, 而且linux下各种环境比较容易配置。 非技术类的同学要有个预期, 后面可能会敲很多指令。

nvidia官网更新显卡驱动(default: 531.79)- 应该都会, 不细讲了

https://www.nvidia.cn/Download/index.aspx?lang=cn

microsoft store 下载安装 Windows Terminal - 后续的指令大多通过这个软件输入

打开 Windows Terminal (可能名字叫 终端,自己试一下), 输入 

wsl --update   更新 wsl

wsl -v   查看wsl版本  (default: 1.2.5.0)

microsoft store 下载 Ubuntu 20.04 - 用20.04版本而不用22.04的原因,是22版本大显存下可能存在兼容问题, 我不确定, 可以自行尝试 (default: 20.04.6 LTS)

500多mb要下载, 微软服务器可能抽风, 这里可能比较慢.

下载完成后点击打开

此时弹出窗口, 会开始wsl虚拟机安装流程

输入登陆账号用户名(username)

输入账户的密码, 两遍

完成后虚拟机应该就成功安装了

关闭所有终端窗口, 确保所有窗口已关闭

重新打开 Windows Terminal 终端, 此时上方的小三角可以选择新安装的 Ubuntu 20.04 了

点击即可进入ubuntu系统, 注意此时有两个标签页, 左边 Windows PowerShell 是最初打开的windows系统终端, 右边的tiger@XXXX 是Ubuntu虚拟机内的终端了.  后续执行命令时要分清在哪个终端输入.

可选操作: 如果你的C盘资源比较吃紧, 可以安装后将Ubuntu迁移到别的盘

3.2 CUDA工具包安装

安装虚拟机内的CUDA工具包 ,CUDA是NVIDIA提供的GPU调用工具包 ,用来给显卡分配工作任务

大部分的AI项目都需要调用CUDA工具包进行模型的推理,训练等任务。 这里使用固定版本进行安装, 保证一致性。

(@@在线版@@) CUDA Toolkit 11.7 Downloads - https://developer.nvidia.com/cuda-11-7-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local

安装解压工具

进入Ubuntu虚拟机终端, 执行

sudo apt install unzip安装解压软件 unzip. 

会提示要输入Ubuntu系统安装时设置的密码.

拷贝+解压 cuda工具包

打开文件资源管理器, 左边应该已经出现了新装的虚拟机的磁盘系统。

在 /home/tiger/ 下新建 cuda 文件夹(此处的tiger为安装时的账户名, 后文不再单独说明)

将网盘内下载的 /2_CUDA_ToolKit/2_CUDA_ToolKit.zip 拷贝到这里(新创建文件夹或者拷贝文件后,看不到,可以尝试右键刷新一下)

再切回Ubuntu终端, 执行

cd ~/cuda  进入刚创建的cuda文件夹

unzip 2_CUDA_ToolKit.zip  解压文件

安装cuda toolkit (default: 11.7)

sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600会提示输入密码

sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb

sudo cp /var/cuda-repo-wsl-ubuntu-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/

sudo apt-get update//这里我没有配置成国内源,如果这步很慢通不过的同学可以尝试搜索 ’ubuntu20.04 替换国内源’

sudo apt-get -y install cuda

这几步基本都是官方指令, 大概就是配置安装源,安装粘贴过来的软件安装包

会安一大堆的东西, 这里是不是国内网络会造成安装失败我也不确定, 希望评论区回复

Anaconda/Miniconda环境安装

安装Anaconda环境。 Anaconda可以帮助配置虚拟的Python运行环境, 而python又是各类AI项目必不可少的。 Anaconda可以帮助解决各种项目python环境的冲突

(@@在线版@@) https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

这里我们使用的是Anaconda的精简版Miniconda

拷贝安装脚本

在虚拟机/home/tiger/ 下新建文件夹 conda

将网盘下的 /3_Anaconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh 文件拷贝到新建的conda文件夹

安装miniconda

打开Ubuntu虚拟机终端,执行

cd ~/conda

chmod +x Miniconda3-py310_23.3.1-0-Linux-x86_64.sh 配置安装文件权限为允许运行

./Miniconda3-py310_23.3.1-0-Linux-x86_64.sh

会提示要看用户协议, 一路按回车即可

等到没有字了, 按提示输入 yes 回车

然后提示设置安装位置, 不用修改直接回车。

之后会再提示要自动初始化,这里输入yes后回车

等安装好后, 按提示先关闭所有终端窗口, 再打开Ubuntu终端,执行

conda config --set auto_activate_base false  取消默认进入conda环境的设置项(其实这步可有可无)

配置miniconda环境

将网盘下的 /3_Anaconda/.condarc 文件拷贝到Ubuntu虚拟机 /home/tiger/目录下, 文件内写入了国内的软件包下载站

在Ubuntu终端中执行

conda clean -i  清空旧的配置数据, 按提示输入y后回车

conda create -n sd python==3.10 创建一个新的名为 sd 的环境, 继续按提示输入y后回车

这时会开始安装一些基础的软件包, 安装完成后执行

conda activate sd 切换到新建的 sd 环境

注意这一句后续会经常输入, 保存好.  基本上每次关闭终端再打开后都需要输入这句指令

离线安装依赖软件包

大部分需要用到的Python软件包我都进行了离线下载, 方便无科学上网的同学使用。对自己网络有自信的同学可以略过这一步, 不过不推荐。

在虚拟机 /home/tiger/ 目录下新建文件夹 sd  (如看不到新建的文件夹的, 右键刷新一下)

将网盘内/4_Python_Packages/下的 pip_package.zip 拷贝到新建的 /home/tiger/sd 目录

在虚拟机终端中执行

cd ~/sd

unzip pip_package.zip 解压压缩包

解压完成后执行(如果没在新建的sd的环境下,输入 conda activate sd , 保证终端显示的用户名前有”(sd)”的标记)

pip install --upgrade pip setuptools wheel 更新一下安装工具

继续执行

pip install --no-index --find-links=~/sd/pip_package ~/sd/pip_package/* 安装软件包

这就完成了软件包的离线安装(这里我将大部分需要的软件包都提前进行了下载, 尽可能避免网络问题)

至此,基本的环境配置就大致完成了

3.4 SD WebUI配置

部署 stable-diffusion-webui 项目, 原项目地址https://github.com/AUTOMATIC1111/stable-diffusion-webui, 通过Python的gradio工具搭建了一个web端的便于使用的图形化工具。 类似于我们平时玩的游戏客户端, 其游戏本身是基于虚幻或者Unity引擎开发的,stable-diffusion-webui 使用的引擎就是 Stability AI 的 stable diffusion. 这个图形化工具依赖了很多第三方的python软件包,大家安装时出现的各种问题,大多都是因为这些复杂的依赖关系,某一个软件包安装失败, 整个项目都跑不起来

项目文件位于网盘 /1_Github_SD_WebUI/stable-diffusion-webui.zip ,  拷贝到上面创建的sd文件夹内

在Ubuntu终端执行

cd ~/sd

unzip stable-diffusion-webui.zip

进入解压出的 stable-diffusion-webui 文件夹, 将网盘内的 /1_Github_SD_WebUI/repositories.zip 文件拷贝到这里, 这里是本项目依赖的一些第三方的开源项目

在Ubuntu终端执行

cd ~/sd/stable-diffusion-webui

unzip repositories.zip

将网盘内的 /1_Github_SD_WebUI/v1-5-pruned-emaonly.safetensors 这一 stable diffusion 的官方模型文件拷贝到 sd/stable-diffusion-webui/models/Stable-diffusion文件夹内

将网盘内的 /1_Github_SD_WebUI/webui.sh 文件拷贝到 stable-diffusion-webui 文件夹内, 替换原文件。 然后执行

cd ~/sd/stable-diffusion-webui

chmod +x ./webui.sh

./webui.sh

这里的 webui.sh 只进行了部分代码的注释,从而使用我们配置好的conda的python环境,而不是重新创建python的虚拟环境。可以自行和原项目文件对比。

此时就会开始初始化webui的python代码,因为大部分依赖都离线安装了,因此应该不会耗费太长的时间(可能还会访问一下github的代码库, 如果有卡在这里的同学也可以反馈一下)

至此, 整体的安装就完成了。 在浏览器访问 127.0.0.1:7860 就可以打开sd webui了。

如果想退出程序, 关闭Ubuntu终端, 或者在Ubuntu终端里按Ctrl+c 都可以。 下次想再打开程序时,在Ubuntu终端执行

cd ~/sd/stable-diffusion-webui

conda activate sd

./webui.sh

4. 部署问题QA

最后执行 webui.sh 时提示 Can't load tokenizer for 'openai/clip-vit-large-patch14’ ?

A: 大概率是网络问题, 尝试访问 https://huggingface.co/ 看是否正常, 可以尝试更新dns为 8.8.8.8 或 8.8.4.4 后重启电脑重试

出现 Permission denied?

A:  记得在./webui.sh前执行 chmod +x ./webui.sh

3. 出现 Couldn’t install 某个包 或者 Import 某个包失败之类的问题?

A: 先检查是否在conda环境下 (conda activate sd)

关键词:

精心推荐

X 关闭

X 关闭