9_1327415_ddd7d687d30fed3.png

水中捞月

告别一切环境依赖问题,使用 Docker 本地无痛搭建 StableDiffusion Web UI,有手就行【N卡必须】

我没有用过大佬们的一键包,一直用的 Automatic1111 的 web-ui 项目,最近重装了系统,突然发现从头搭建 StableDiffusion 对环境要求是挺麻烦的。

一般根据经验来讲, 这种对环境有复杂依赖的应用其实应该放到一个隔离的环境之中去做。
毫无疑问,得上 Docker,恰好能用显卡的 nvidia container 也出世很久了。

所以再根据经验,这种事肯定有人比我先想到,并且还动手去做了。

于是我去 Github 搜索找到了这个项目: Stable Diffusion WebUI Docker

简单介绍一下 Docker,它是一种超轻量的虚拟容器,是一种普遍而强大的应用隔离方案。
Docker 与传统虚拟化技术相比,效率大幅提高,而资源开销却低到忽略不计,启动也是几乎是瞬时的。
Docker 可以通过预先编排好构建文件,来实现自动化在容器镜像中为你自动安装一切运行特定应用所需的环境。

所以你只需要安装 Docker,通过别人预先编写好的配置让Docker 自动下载和构建 Stable Diffusion 所需的运行环境。
构建完毕后直接启动容器就能直接开始使用了,不用再在自己的系统中为这些东西的兼容性而头疼。
你不需要去管什么 Python 版本啦,CUDA啦,torch 为啥不用 GPU 非要用 CPU 之类的问题。
Docker 已经为你做好了这一切。

所以我称之为"无痛搭建"



虽说 Docker 搭建很方便,但是还是得说一下环境的要求:

1、必须是 N 卡。

2、必须是 Windows 或者 Linux (本文不含 Linux 安装过程)  

3、Windows 10 release >= 2021H2,按 Win + R 输入 winver 查看。

4、必须开启了 WSL2 功能(即  Windows Subsystem for Linux 2)

提前说明,启用 WSL2 和安装 Docker 都很简单,不要因为陌生而感到害怕。






启用 WSL2

勾选图中第4步,然后按提示重启。




也可以参考微软官方文章或者上 B 站搜索教程

注意: 参考 B 站教程时无需去商店安装 Linux 发行版。



确保你的 WSL 可用的内存有 16 GB。

C:\User\你的用户名\.wslconfig 增加如下代码,如果没有则新建这个文件,并且在其中添加如下内容
复制代码
  1. [wsl2]
  2. memory=16GB



下载安装 Docker Desktop.

官网地址:https://docker.com



安装一定要勾选 WSL2 这个选项,只有基于 WSL2 的 Docker 才能看得到你的 GPU。



安装完 Docker 后可能也会要求你重启。重启之后就可以在开始菜单搜索到 Docker

 

启动 Docker,会在右下角托盘发现一个图标,等它动画完毕。

打开 Powershell,输入wsl -l -v,如果你的结果和我图里一样的话,最麻烦的事情已经做完了。

 

解压项目文件

还是打开你的 Powershell,然后下载项目 到任意目录并且解压出来,建议选个空闲空间大的地方,以后下载的模型动辄就接近10个G,吃空间得很。
(有 git 的同学也可以 git clone  https://github.com/AbdBarho/stable-diffusion-webui-docker

解压后大概长这样:

 

自动下载基础模型

在新打开的 Powershell 窗口里输入 docker compose --profile download up --build 启动自动构建基本镜像,并且下载基本的 SD 1.5 模型。 下载数据大概 12G 左右,所以执行多久取决于网络速度,如果遇到网络原因失败,可以反复执行,没关系的。 提前提醒:模型只用下载一次,包括后续自动构建 Web-ui 的步骤也是一样,都只需要等待第一次下载很多东西,再启动就非常的快了.



当你看到下面这样的时候,下载就算完了。



自动安装 Stable Diffusion + web UI

输入 docker compose --profile auto up --build 开始自动安装 Stable Diffusion + Automatic1111 Web UI。

你不需要去管什么 Python 版本啦,CUDA啦,torch 为啥不用 GPU 非要用 CPU 之类的问题,Docker 镜像已经编排好了一切。



容器构建完成并启动了之后:



搞定,可以运行了。


9_1327415_ddd7d687d30fed3.png

水中捞月

占个二楼备用

a5.gif

9d613f92

生成图的速度咋样,有提升吗,这是最关键的问题

9_1327415_ddd7d687d30fed3.png

水中捞月

引用
引用第2楼9d613f92于2023-03-15 10:43发表的  :
生成图的速度咋样,有提升吗,这是最关键的问题



这不是我这个帖子所要解决的关键问题
凭感觉来讲生图速度略有提升,装插件重启 WebUI 的速度快了起码5倍。
但是我本地版已经没有了,没有兴趣和动力再次手动安装一个去进行详细的对比测试。

如果你有这方面的疑问,并且有已经搭建好的本地版,建议你自己搭个 Docker 的试试,并不麻烦。

none.gif

8e02ad0c

大佬,这边wsl2按b站教程安装好了,wsl -l -v也显示Ubuntu在运行,为啥安装doctor没有Use WSL 2 based engine的提示啊?

271223.png

加班摸鱼

B5F  2023-03-15 22:33
(祝赛博coser早日战胜福利鸡)
有群晖,有什么简便的方式用doctor远程控制家里本地的sd和chatglm吗

271223.png

加班摸鱼

B6F  2023-03-15 22:35
(祝赛博coser早日战胜福利鸡)
不对,如果按照楼主的说法,直接可以在群晖上直接搭建SD了,只要有权限就可以随时使用吧,对NAS本身有没有要求

9_1327415_ddd7d687d30fed3.png

水中捞月

引用
引用第4楼8e02ad0c于2023-03-15 21:44发表的  :
大佬,这边wsl2按b站教程安装好了,wsl -l -v也显示Ubuntu在运行,为啥安装doctor没有Use WSL 2 based engine的提示啊?




这儿也行

none.gif

0362e24f

这个也要限定win10?

9_1327415_ddd7d687d30fed3.png

水中捞月

引用
引用第5楼017fed90于2023-03-15 22:33发表的  :
有群晖,有什么简便的方式用doctor远程控制家里本地的sd和chatglm吗


标题上写了,N卡必须。。

none.gif

0362e24f

回 5楼(赛博coser爱好者) 的帖子

群辉应该不行,至少有个10系显卡才行吧

none.gif

0362e24f

回 9楼(水中捞月) 的帖子

docker的话,会影响显卡gpu的效率么?

9_1327415_ddd7d687d30fed3.png

水中捞月

回 11楼(0362e24f) 的帖子

根据我不科学的、未观测的、凭感觉的说,没影响  

none.gif

e75c4332

从来没试过,马下

IMG_20230922_200251.jpg

Xivilization

B14F  2023-03-16 21:20
(↗↘→举大旗,看全网谁与ta为敌,四面八方皆是敌,我是ta的好兄 ..)
这个版本有关闭nsfw检查吗?

a13.gif

XAIAX

这个比起本地部署有什么优势吗
秋叶的本地整合包感觉比这个方便

none.gif

至高酱

A卡可以用什么ai阿,哭(இдஇ; )也想做涩....不是,做好看的图呀

1410910.jpg

幺幺奇

B17F  2023-03-18 02:31
(执A卡,走天涯)

回 16楼(至高酱) 的帖子

我有写教程,A卡早可以用SD了,茶馆里自取哦

1410910.jpg

幺幺奇

B18F  2023-03-18 02:32
(执A卡,走天涯)
这……N卡装Automatic 1111只要四步,还需要绕一圈用docker干嘛

832578.jpg

最近好奇怪啊

B19F  2023-03-18 14:54
(最棒的是我还有网~)
技术贴 马克

9_1327415_ddd7d687d30fed3.png

水中捞月

回 14楼(+-×÷) 的帖子

不知道你说的NSFW检查是什么  

9_1327415_ddd7d687d30fed3.png

水中捞月

引用
引用第15楼b3ed2da4于2023-03-16 21:54发表的  :
这个比起本地部署有什么优势吗
秋叶的本地整合包感觉比这个方便


并不适合所有人,所以原因我写在文章的第一段哦

9_1327415_ddd7d687d30fed3.png

水中捞月

引用
引用第18楼df1805f7于2023-03-18 02:32发表的  :
这……N卡装Automatic 1111只要四步,还需要绕一圈用docker干嘛

并不适合所有人,所以原因我写在文章的第一段哦

9_1327415_ddd7d687d30fed3.png

水中捞月

不过话说回来,写完这个帖子我就发现 ComfyUI,这才是未来啊。
https://github.com/comfyanonymous/ComfyUI
ComfyUI 才是真贴心,自带了 Python,点击即玩,功能强大组合自由。
使用方法可以去B站找教程,建议诸位趁早叛逃  

a5.gif

手指抽筋

B24F  2023-03-18 20:47
(啊呀呀~)
赞美大佬