当前位置:AIGC资讯 > AIGC > 正文

[IDE(AI绘画)]从零开始在本地部署AI绘画实例(2023.4)

[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,下载后将压缩包中的binincludelib三个文件夹中的文件复制到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

此时会生成tmpvenv目录,然后编辑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-uncond
  6G-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.ckpt
  https://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平台和个人博客中,对本文技术点有疑问欢迎在评论区友好交流

更新时间 2024-01-24