[IDE(AI绘画)]从零开始在本地部署AI绘画实例(2023.4)
一、前言
跟我的版本号走基本上不会出错,如果安装错误请检查自己是不是升级版本了,python 3.11.x在文章发布时并不支持
如果有稳定的节点就不需要修改镜像源,有些包镜像源的版本是过时的,安装时会报错
安装环境:
CPU:AMD R7-5800H
GPU:RTX3060 6G
内存:16G
系统:Win11 22H2
网络环境:香港节点
二、安装stable-diffusion-webui
1. 环境配置
1.安装git
2.安装miniconda,用于管理python版本
-
执行
conda -V
,显示版本号即为安装成功 -
创建ai绘画运行环境,安装python3.10.9
conda create --name aidraw python=3.10.9 #激活环境 conda activate aidraw
-
升级并修改镜像源
python -m pip install --upgrade pip #修改为镜像源是为了解决国内网络环境不稳定导致ERROR: No matching distribution found for torch==1.13.1+cu117错误 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
3.安装CUDA
- 终端输入
nvidia-smi
记住图中所示CUDA的版本,去官网下载对应版本,请装在固态硬盘上,在终端中执行nvcc -V
出现版本号即为安装成功
如果提示安装失败,先将安装的包全部删除,然后在重新安装时选择自定义安装,取消勾选VS
- 下载CUDNN,填写问卷下载对应CUDA的版本,我的是
cuDNN v8.8.1 (March 8th, 2023), for CUDA 12.x
,下载后将压缩包中的bin
、include
、lib
三个文件夹中的文件复制到CUDA安装目录覆盖文件即可,一般在这里:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1
2. 安装stable-diffusion-webui
1. 打开Anaconda Prompt,激活aidraw环境,进入你要安装的盘,比如D盘(最好这个盘是固态盘)我要安装到Game文件夹中
(aidraw) C:\Users\ERRUI>D:
(aidraw) C:\Users\ERRUI>cd Game
(aidraw) D:\Game>git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
2. 在外网节点环境执行根目录中的webui-user.bat
文件
#可能会报错或者提示升级
(aidraw) D:\Game\stable-diffusion-webui>webui.bat
此时会生成tmp
和venv
目录,然后编辑venv
目录下pyvenv.cfg
文件,将include-system-site-packages = false
改为true
,引用系统中的模块
再次执行webui-user.bat
,会安装torch,需要很长时间,之后如果在安装webui时报错gradio
,请先删除镜像源(AppData\Roaming\pip),不管时阿里的还是清华的,然后在外网环境中下载gradio
3. 安装中文UI组件
#任意目录下执行
git clone https://github.com/VinsonLaro/stable-diffusion-webui-chinese
#复制chinese-all-0306.json和chinese-english-0306.json两个文件到以下目录下
stable-diffusion-webui\localizations
#运行webui-user.bat后在网页中设置语言
Settings -> User interface -> Localization (requires restart) -> chinese-all-0220 -> Apply Settings -> Reload UI
4. 其他注意事项
- 面部修复功能和有些模型第一次运行时需要下载依赖包,可在终端查看进度,进度条可能会卡住,此时请勿进行任何停止操作,以免下载失败,实测面部修复下载失败第二次使用就会报空类型错误
5. 显卡优化设置
1. 低显存优化方式
```bash#编辑根目录/webui-user.bat文件,“set COMMANDLINE_ARGS=”后根据自己显卡的显存选择下面的参数填入4G显存:--precision full --no-half --lowvram --always-batch-cond-uncond6G-5G显存:--precision full --no-half --medvram低于3G显存:--lowvram --always-batch-cond-uncond ```
2. 安装xformers,该库仅适用于N卡,特点是加速图片生成并降低显存占用,代价是输出图像不稳定
执行`pip install xformers==0.0.16rc425`,在“set COMMANDLINE_ARGS=”后填入`--xformers`,进入webui界面,最底部版本型号那里显示xformers即为成功,更新包请带上版本号,否则会不识别
3. 禁止使用浏览器硬件加速(Edge可以直接在搜索栏中检索关键字“硬件加速”找到)
4. 右键选择 nvidia控制面板,管理3d设置->全局设置->电源管理模式改为“最高性能优先”
3. 安装插件和模型
1. 插件:在webui界面点击扩展插件->选择从网址安装,复制即可,如果下载失败多试几次,可能网络短路
1. Controlnet:https://jihulab.com/hunter0725/sd-webui-controlnet
具体用法请参考笔记:[IDE(AI绘画)]Controlnet使用实践,这个还摸索,摸索完会上传,关注++谢谢啦
2. Tagger: https://github.com/toriato/stable-diffusion-webui-wd14-tagger
3. AdditionalNetworks:https://github.com/kohya-ss/sd-webui-additional-networks
4. inpainting(扩展及修复原图)
https://huggingface.co/runwayml/stable-diffusion-inpainting/blob/main/sd-v1-5-inpainting.ckpthttps://civitai.com/models/3128/anything-v3-inpainting下载以上两个模型,放入models\Stable-diffusion,这两个模型也是在局部绘制功能处使用的模型编辑webui-user.bat,在set COMMANDLINE_ARGS=后面添加--api --cors-allow-origins=https://www.painthua.com启动webui-user.bat打开127.0.0.1:7860,将模型切换成这两个模型中的一个打开网址 www.painthua.com 即可
2. 模型
1. 将下载好的模型放入stable-diffusion-webui\models\Stable-diffusion
下即可,注意,标注lora hypernetworks embedding
类型的模型需要放到models下对应的文件夹中,每次使用点击“生成”按钮下花牌logo的按钮(第三个)
2. 模型推荐网站:https://civitai.com/;https://huggingface.co/
3. 关于vae(Variational Auto-Encoder 变分自动编码器)的使用:
#有些模型会提示需要vae解码器,一般会提供给你需要的vae地址,下载好后放入模型同目录下,并将解码器的前缀名改成和模型一致的名字AbyssOrangeMix2_hard.safetensors模型需要解码器orangemix.vae.pt将解码器复制到同目录下,改名为AbyssOrangeMix2_hard.vae.pt即可#另一种方法就是放在models目录下的VAE目录,然后在webui的setting中SD VAE选择即可,记住训练模型的时候要关闭#像AbyssOrangeMix系列模型都需要orangemix.vae.pt,就可以将这个vae文件存到目录中在ui的设置界面整体调用
在"用户界面"的快捷设置列表替换代码sd_model_checkpoint,clip_stop_at_last_layers,sd_vae
,可以配置vae快捷界面
4. 关于Lora模型的最佳实践:https://www.bilibili.com/read/cv21209314
加强图设定质感模型:https://civitai.com/models/13910线稿漫画风模型:https://civitai.com/models/16014/anime-lineart-manga-like-style
3. 关键词参考
1. 负面关键词汇总插件:EasyNegative,badhandv4
> 下载后放入\stable-diffusion-webui\embeddings即可生效,使用时填写名字即可>> 例: badhandv4,easynegative,(badhandv4:0.5)
2. 关键词用法以及词典
https://github.com/zcyzcy88/TagTable
魔咒百科词典 (aitag.top)
进阶教程使用方法,括号的用法,写tag的思路,以及讲解tag的使方法
3. 联想关键词插件sd-webui-tagcomplete,复制链接去扩展插件中选择从网址安装,然后重新进入即可
4. 随机tag生成插件Wildcards
配置:> https://github.com/Lopyter/stable-soup-prompts/tree/main/wildcards> https://github.com/jtkelm2/stable-diffusion-webui-1/tree/main/scripts/wildcards> https://github.com/themartiantourist/Wildcards-for-SD/tree/main/Wildcards>> 将以上三个链接仓库中的.txt文件存放到(\extensions\stable-diffusion-webui-wildcards\wildcards)下,注意重命名时文件名不可有空格用法:用前后下划线约束关键词`__hair__`,`__color__`,这两个意思是随机发型和颜色
4. 如何训练一个模型
- 隐藏在设置中的影响因素:
- ENSD(Eta noise seed delta 噪声种子偏移,在设置点击选择更多页面,ctrl+F搜索eta即可):一般设置31332或者31337
- Clip skip一般选择2,(在设置点击选择更多页面,ctrl+F搜索clip即可)
- 其余主界面上的包括宽高都会影响图片生成的最终效果
三、参考资料
-
https://www.cxymm.net/article/snans/129365893
-
https://zhuanlan.zhihu.com/p/613530403
-
https://zhuanlan.zhihu.com/p/574063064
-
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Optimizations
-
https://www.aivisual.cn/threads/115/
-
https://zhuanlan.zhihu.com/p/583677438
四、最后
文章仅发布在CSDN平台和个人博客中,对本文技术点有疑问欢迎在评论区友好交流