使用Anaconda对Stable-Diffusion进行环境隔离本地化部署

(可以用羽翼城大大的steamcommunity302,勾选github访问后开启服务解决)

此处的部署方式采用AUTOMATIC1111大大制作的webui,更新快,功能多

部署方案综合了很多大佬的教程以及自己的探索,不保证一定是最简便的,但应该是对计算机环境影响比较小的。

AUTOMATIC1111的webui的github工程链接:https://github.com/AUTOMATIC1111/stable-diffusion-webui

太长不看类:

将webui的仓库clone下来

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

放入想要使用的模型

创建并激活虚拟环境后将anaconda prompt转移至\stable-diffusion-webui目录下输入

python launch.py

即可运行。这个省略了后续的人工clone操作,交给脚本处理

1.前置需求

A.安装anaconda

官网为:https://www.anaconda.com/

Anaconda记得不要勾选添加环境变量。

Anaconda安装结束后打开

如果输入conda –version返回conda 的版本号,并且输入conda list出现如下图,及说明安装成功。

image

B.安装CUDA

先打开英伟达控制面板-帮助-系统信息-组件查看CUDA版本

image

去英伟达官网下载与之对应的toolkit。网址为https://developer.nvidia.com/cuda-toolkit-archive

image

根据自己的操作系统选择合适的解决方案

image

安装完成后在cmd中输入 nvcc -V 如果返回CUDA工具的版本即为安装成功。具体如下图

image

C.下载git

从git官网(https://git-scm.com/)选择download for windows,安装时勾选右键菜单出现git,即

image

至此准备工作完成。

2.部署stable-diffusion到本地

选择一个你想把工程放在哪里的目录,并在那个目录下选择 在终端中打开(如果没有此选项,可选择git bash here)

在弹出的窗口中输入:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

静待其部署完成即可。

完成后会产生一个新的名为stable-diffusion-webui的文件夹。

打开\stable-diffusion-webui\models\stable-diffusion目录,此处为各种模型的存放处。

需要预先存放一个模型才能正常使用。

3.使用anaconda进行webui的创建

使用管理员权限打开下图应用程序

image

使用代码创建虚拟环境路径:

conda config --add envs_dirs W:\SoftWare\Anaconda\envs //此处自行更改为对应的虚拟环境路径,一般在Anaconda根目录下 conda config --add pkgs_dirs W:\SoftWare\Anaconda\pkgs //此处自行更改为对应的虚拟环境路径,一般在Anaconda根目录下

创建完成后将conda的操作环境换入\stable-diffusion-webui目录下,示例代码:

此时,conda 的环境应该在\stable-diffusion-webui 下了,如图:

image

使用如下代码创建虚拟环境配置(以下配置一定要在\stable-diffusion-webui下进行):

conda env create -f environment-wsl2.yaml //创建环境,默认环境名称为automatic activate  automatic //切换为automatic环境 mkdir repositories //创建其他仓库父目录
 

克隆Stable-diffusion等仓库,注意目录层级结构,git clone的操作是在stable-diffusion-webui目录做的,因此下面这些仓库都是存放在stable-diffusion-webui/repositories/*

git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer git clone https://github.com/salesforce/BLIP.git repositories/BLIP git clone https://github.com/openai/CLIP.git repositories/CLIP

待上述命令完成后,输入下述命令安装其他依赖:

pip install transformers==4.19.2 diffusers invisible-watermark --prefer-binary pip install git+https://github.com/crowsonkb/k-diffusion.git --prefer-binary pip install git+https://github.com/TencentARC/GFPGAN.git --prefer-binary pip install -r repositories/CodeFormer/requirements.txt --prefer-binary pip install -r requirements.txt  --prefer-binary pip install -U numpy  --prefer-binary
 

至此便具有了基础运行功能。

4.运行webui

运行程序(此处指从零开始):

以管理员身份打开anaconda prompt,初始界面如图:

image

输入以下指令:

activate automatic //激活automatic环境 cd N:\stable-diffusion-webui //自行替换为对应目录 N: //更改盘符
 

上述指令的结果如图,注意base已经更改为automatic字样:

image

之后输入:

python launch.py //启动webui部署

出现下图所示字样即算成功。

image

此时可以在浏览器页面输入127.0.0.1:7860或localhost:7860打开webui。

image

在Settings选项卡中下拉找到Stable Diffusion分项,在checkpoint选择自己放入的模型;支持hypernetworks的模型可以把hypernetwork选择对应的配置文件。 之后点击Apply Settings即可开始使用AI作图功能。

5.额外功能

如果想让局域网内其他机器也可以访问,那么请更改如下命令:

在webui.py的第100行中,将

server_name=0.0.0.0 if cmd_opts.listen else None, 

改成

server_name="0.0.0.0, 

并保存。(局域网内的其他机器则是输入机器的IP地址:7860.例如192.168.1.3:7860)

模型汇总:https://rentry.org/sdmodels

常见二次元模型为NovelAI,Waifu Diffusion,TrinArt。不同的模型会有自己的额外关键词。

Stable-Diffusion官方模型:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original (需要注册并登录hugging face。)

Extra分项:

可使用GFPGAN,ESRGAN等模型用于其他作用。例如GFPGAN可修复脸部,ESRGAN用于放大图片。

GFPGAN v1.4:https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth

下载后放入stable-diffusion-webui/models/gfpgan目录下。

RealESRGAN X4PLUS ANIME 6B: https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth

下载后放入stable-diffusion-webui/models/realesrgan目录下。需要在settings里设置让其显示才可以用。

之后再EXTRA选项卡中可以勾选对应模型进行额外操作。

更新webui库:

在\stable-diffusion-webui目录下运行:

git pull //拉取新代码 pip install -r requirements.txt //更新依赖库。 

混合两个模型

Checkpoint merger中可以将两个模型融合为一个新模型。调节interpolation amount即可改变内插度,混合比例。生成的模型会自动存储在模型文件夹中。

利用script生成图片

在script下拉框中选择不同的script可以生成不同的图片,比如x/y plot可以生成由一个参数决定的几种不同的图片。

6.常见BUG的解决方法:

1.非绿厂的显卡无法使用CUDA,则AMD与核显只能使用CPU进行计算,此时消耗CPU与内存。

2.早期的显卡与笔记本端的MX系列显卡不支持半精度运算,出现黑屏,绿屏等现象:

Download cudnn libraries from NVIDIA site, version > 8.2.0 (I have tested 8.5.0.96 and 8.3.3.40)

Place them into your torch installation: conda\envs\automatic\Lib\site-packages\torch\lib

Place missing dependency zlibwapi.dll to the same folderor-

Update torch to version including new cundnn : e.g. torch==1.12.0+cu116

After that you should get black image instead of green, that mean you are on the right wayAdd following lines to txt2img:

torch.backends.cudnn.benchmark = Truetorch.backends.cudnn.enabled = True

After that you should get normal images, not green and not black

(github上有人是这么解决的。本人不是16系的卡所以没试过上述的解决办法)

或者

在启动的时候加上后缀–precision full –no-half也可以解决

3.Nvidia系显卡运行时出现 Torch is not able to use GPU ,无法进行部署:

首先确认自己装了CUDA TOOLKIT.(作者的CUDA版本是CUDA11,不保证其余CUDA版本是否能够正常工作,有条件可以升级到CUDA11)

之后在pytorch官网查询与CUDA兼容的pytorch版本(CUDA11.7可以当作CUDA 11.3处理)

image

之后打开anaconda prompt,activate automatic后输入

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch 

更新conda已有的pytorch和其他驱动包。

如果出现无可供写入的包环境,那么请将pkgs文件夹的权限从只读改为可读可写。

更新后执行下图命令:

image

4.出现SSL certificate problem: unable to get local issuer certificate 错误

执行

git config --global http.sslVerify false 

即可解决。

5.出现RuntimeError: "LayerNormKernelImpl" not implemented for ‘Half’:

非N卡和某些N卡会出现这个错误。解决方案为

1.在启动的时候加上后缀–precision full –no-half 使用此条命令即让CPU进行AI运算

2.按照问题3中的步骤安装与CUDA兼容的pytorch并检测是否能够正常使用。

6.低内存出现错误:

启动时加上后缀:–medvram或者–lowvram(取决于显存大小,2GB用low,4GB-6GB用med,更多可以不加)

7.如何查看AI是用GPU在运行还是CPU在运行:

A卡和核显理应是在用CPU和内存运行的,因为缺少CUDA。

而N卡则可以在任务管理器的GPU分项中将任一选项改成CUDA,在运算时如果CUDA有占用,则torch正常调用了GPU在进行计算,此时使用GPU和显存。

如果没有CUDA选项,请在windows设置中关闭硬件加速GPU计划后重启电脑。

image

- THE END -
版权声明:
转载原创文章请注明,文章出处://kinggoo.com
原文地址:https://kinggoo.com/python-novelai-anaconda-install.htm
发表评论?

0 条评论。

发表评论


此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据