去下方网站获取git的win安装包,之后不断点击下一步就可以了:
https://git-scm.com/
安装完之后,运行Win+R
唤出控制台,执行如下命令检验是否安装完成
git --version
去下方网站获取python的win安装包,之后不断点击下一步就可以了。在最后一步,一定要选择 Add python.ext to PATH
环境变量。
https://www.python.org/
安装完之后,运行Win+R
唤出控制台,执行如下命令检验是否安装完成
python --version
运行Win+R
唤出控制台,输入如下命令
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
webui-user.bat
这个批处理文件,双击运行Running at local url:http://127.0.0.1:7860
类似的信息,复制这个网址,用浏览器打开远程访问主要有两种方式:
set COMMANDLINE_ARGS= --listen
set COMMANDLINE_ARGS= --share
注:不能同时设置listen和share参数,因为listen参数的优先级会更高
注:同学也可以访问国内模型网站libai(https://www.liblib.ai/)
盘符:\目录\stable-diffusion-webui\models\Stable-diffusion
注: Lora下载放到这个目录
盘符:\目录\stable-diffusion-webui\models\Lora
Stable Diffusion是2022年发布的深度学习文本到图像生成模型,它是一种潜在扩散模型,它由创业公司Stability AI与多个学术研究者和非营利组织合作开发。目前的SD的源代码和模型都已经开源,在Github上由AUTOMATIC1111维护了一个完整的项目,正在由全世界的开发者共同维护。由于完整版对网络有一些众所周知的需求,国内有多位开发者维护着一些不同版本的封装包。
由于本人不是相关研究方向的学者,这里只是简述一下基本原来,如有错误,欢迎各位大佬批评指正。
当用户输出一段提示词之后,比如说宇航员骑狗,其首先会被解析为两个特征向量宇航员、狗。然后去对应的数据库之中找到对应的图像,之后将这一部分特征向量信息传递到图像编码器之中。图像编码器会从潜在空间之中选取一张初始噪声图片。然后U-net卷积神经网络会根据特征向量预测出不需要的噪声,与原噪声相减得到一张新的噪声图,如此不断往复,之后会得到一张满足需求的特征图像,最终由图像解码器将其解析为呈现给用户的最终图像。
潜在空间:反映的是原始数据经过“中介空间”后的特征
说完了基本原理,我们接下来就进入Stable Diffusion的实战环节。
下图是Stable Diffusion的Web ui展示:
上图之中存在着很多参数,我这里按照对用户的重要性来逐一说明:
参数 | 含义 |
---|---|
采样方法 | 采用方法其实就是刚刚讲原理时提到的降噪方法,SD提供了很多方法,这里根据用户需求简单分类了一下 如果只是想得到一些较为简单的结果:选用欧拉(Eular)或者Heun 对于侧重于速度、融合、新颖且质量不错的结果: * DPM++ 2M Karras, Step Range:20-30 * UniPc, Step Range: 20-30 期望得到高质量的图像,且不关心图像是否收敛: * DPM ++ SDE Karras, Step Range:8-12 * DDIM, Step Range:10-15 |
采样迭代步数 | 控制降噪的轮次,选择50就是降噪50轮之后将图像经过解码器返回给用户 |
提示词相关性 | 对于人物类的提示词,一般将提示词相关性控制在 7-15 之间; 而对于建筑等大场景类的提示词,一般控制在 3-7 左右 |
模型 | 用素材+SD底模(如SD1.5/SD1.4/SD2.1),深度学习之后炼制出的大模型,可以直接用来生图。大模型决定了最终出图的大方向 。 大模型被称为checkpoint,一般3-7GB |
VAE | 类似类似美颜工具之中的滤镜,是对大模型的补充,稳定画面的色彩范围 |
LoRA模型 | 大模型的低秩适应,可以理解为模型插件。其是在基于某个大模型的基础上,深度学习之后炼制出的小模型。需要搭配大模型使用,可以在中小范围内影响出图的风格,或是增加大模型所没有的东西。 |
ControlNet | 能够基于现有图片得到诸如线条或景深的信息,去知道SD扩散模型如何去生成图片 |
• 模型类目
模型大致可以分为三个类别:
不同类模型,以及不同模型之间的出图效果都十分不一样,可以看一下在同一参数场景下不同。模型的出图效果对比:
• 推荐查找关键词
二次元模型 | 真实系模型 | 2.5D模型 | |
---|---|---|---|
推荐标签与风格关键词 | illustration,painting,skectch,drawing,comic,anime,cartoon | photography,photo,realistic,photorealistic,Raw photo | 3D,render,chibi,digital art,concept art,{realistic} |
• 模型推荐
采样方法总结:
- 如果只是想得到一些较为简单的结果:选用欧拉(Eular)或者Heun
- 对于侧重于速度、融合、新颖且质量不错的结果:
DPM++ 2M Karras, Step Range:20-30
UniPc, Step Range: 20-30
- 期望得到高质量的图像,且不关心图像是否收敛:
DPM ++ SDE Karras, Step Range:8-12
DDIM, Step Range:10-15
输出画面需要的步数,每一次采样步数都是在上一次的迭代步骤基础上绘制生成一个新的图片,一般来说采样迭代步数保持在 18-30 左右即可,低的采样步数会导致画面计算不完整,高的采样步数仅在细节处进行优化,对比输出速度得不偿失。
Stable Diffusion 中的提示词相关性指的是输入提示词对生成图像的影响程度。当我们提高提示词相关性时,生成的图像将更符合提示信息的样子;相反,如果提示词相关性较低,对应的权重也较小,则生成的图像会更加随机。
因此,通过调整提示词相关性,可以引导模型生成更符合预期的样本,从而提高生成的样本质量。
因此,提示词相关性可以帮助我们通过引导模型生成更符合预期的样本,从而提高生成的样本质量。
随机种子是一个可以锁定生成图像的初始状态的值。当使用相同的随机种子和其他参数,我们可以生成完全相同的图像。设置随机种子可以增加模型的可比性和可重复性,同时也可以用于调试和优化模型,以观察不同参数对图像的影响。
在 Stable Diffusion 中,常用的随机种子有-1 和其他数值。当输入-1 或点击旁边的骰子按钮时,生成的图像是完全随机的,没有任何规律可言。而当输入其他随机数值时,就相当于锁定了随机种子对画面的影响,这样每次生成的图像只会有微小的变化。因此,使用随机种子可以控制生成图像的变化程度,从而更好地探索模型的性能和参数的影响。
了解完Stable Dissusion最基础的参数之后,我们可以尝试去绘制一幅宇航员骑狗的图片。
在这里我们选择基本的绘图参数:
Astronauts riding dogs
Posters, wallpapers,best quality,highly detailed,masterpiece,ultra-detailed,illustratio
lowres,bad hands,text,error,cropped,worst quality,low quality,normal quality,jpeg artifacts,watermark,username,blurry,blurryd
simple background
我们可以看到上面的图片尺寸比较小,这是因为显卡显存(笔者电脑只有8G)的限制导致。如果我们想在小显存上面获得比较清晰的图像,我们可以使用Stable Diffusion的高清修复功能。
高清修复参数:
放大倍数:是指放大到原图的多少倍,也可以按照参数后面手动设置新图像的宽和高
重绘幅度:是和原图的差异度,一般推荐0.5,安全放大区间0.3-0.5,具有自由度区间0.5-0.7
高清采样次数:和采样迭代数一样,不用选择,保持默认0的迭代次数
放大算法:网上推荐无脑选择R-ESRGAN 4x+ 的,二次元的选择R-ESRGAN4x+ Anime6B,效果相较于其他算法是好一点的。
GFPGAN 可见度:人脸修复功能,能够让这些老照片恢复原有的光泽,使用了GAN算法对照片进行修复,效果比其他同类模型都有更好的表现。
CodeFormer 可见度:马赛克修复功能,这是一种基于 Transformer 的预测网络,能够对低质量人脸的全局组成和上下文进行建模以进行编码预测,即使在输入信息严重缺失的情况下也能复原出与目标人脸非常接近的自然人脸图像。
高清修复主要有两种办法:
注:由于原理是拼合,所以为了拼合更加合理,所以需要设置图像重叠像素。设置完之后,图像尺寸应该是原尺寸+重合像素的大小
局部重绘就是将图片中我们不满意的地方进行重新绘制,直到达到用户满意的程度。我们刚刚骑的是狗,现在来骑马试试。
局部重绘参数说明:
蒙版:蒙住关键区域的板子,重绘图中黑色区域就是蒙版
蒙版模式:默认选择“重绘蒙版内容”,如果是“重绘非蒙版内容”就是重绘黑色区域以外的内容
重绘区域:就是你要求AI重绘的时候你所提供的信息,默认“原图”,如果选择“仅蒙版”,那么AI得不到全图信息,重绘后的部分会和其他的地方有割裂感。如果你选的是仅蒙版模式,要对于右侧的仅蒙版模式的边缘预留像素进行调整,默认32。这个预留像素的意思就是缓冲带,使得重绘拼图的时候看上去更加自然。
蒙版模糊:类似PS羽化效果,使得拼接更加丝滑
蒙版蒙住的内容:随便选,看缘分
我们维持提示词不变,在提示词后面添加需要改动的提示词,在参数重绘幅度开到一个比较高的数值,比如0.75,当把鼠标移动到图片区域会出现一个画笔笔尖,在图片中你想要更改的地方涂上黑色区域,画错了还有撤销和橡皮擦功能在右上角可以使用
Control Net是一款可以对Stable Diffusion扩散模型进行精确控制的插件。在SD安装之后我们可以在Web ui之中找到如下的ControlNet选项:
参数说明:
控制单元:一个ControlNet单元描述了一种对扩散模型的提示,如果想要有多个提示可以在【设置】–> 【ControlNet】–>【Multi ControlNet】选择单元数量。
效果预览:在上方存在两个出图的地方,右边就是预览效果图片的地方
ControlWeight:控制权重,表示ControlNet的提示信息的权重占比
ControlType:控制类型,会识别用户传入的控制信息,将其描绘为简单的表述形式。主要包含以下几种:
- 姿态控制(OpenPose):会识别用户传入人物的姿态信息,是用来解决AI不会画手的大杀器。
- 精确控制(Canny):会识别用户传入的所有信息,将其和Prompt结合生成新的图像。
- 画面分割(Seg):识别用户传入的元素布局,将其进行不同的归类,用以控制画面大体细节不变。
- 深度控制(Depth):即深度图,用以传入空间信息给扩散模型
下面我们会通过实操来掩饰这几种控制类型的效果。
参数信息如下:
a humanoid robot, full body, facing viewer,
Posters, wallpapers,best quality,highly detailed,masterpiece,ultra-detailed,illustratio
lowres,bad hands,text,error,cropped,worst quality,low quality,normal quality,jpeg artifacts,watermark,username,blurry,blurryd
simple background
当我们上传图片之后,选择OpenPose姿态控制,之后点击爆炸。右边就会生成我们上传图片的骨骼图。
当我们上传图片之后,选择Canny姿态控制,之后点击爆炸。右边就会生成我们上传图片的线稿图。
当我们上传图片之后,选择Seg姿态控制,之后点击爆炸。右边就会生成我们上传图片的画面分割。
由于刚刚的图片没有空间感,所以我们需要换一下内容提示词:
下面是淘宝天猫的一个例子:
模型:RevAnimated
Lora:粿条Tmall model 3D卡通天猫场景
以化妆品来举例:
模型:chilloutmix
Lora:自然美妆场景
模型:3H机甲
Lora:None
ControlNet:Depth
注:森马已经用上了
通过将产品的图片喂给模型,生成对应商品模型。之后便可以对这个商品进行快速出图。
可以在stable diffusion中的【扩展】–>【从网址安装】安装不同的扩展
让SD支持中文:
方便浏览作品,进行多种查询和管理
注:刚开始不显示图片信息,点击”首页“标签,就会加载好以前的图片
Tag Autocompletion:实现提示词的补全、翻译
有像只能输入法,可以帮你智能补全提示词,并为你推荐更适合AI明白的提示词
它还包含热门IP,比较方便
输入尖括号<>,输入e、l、h就可以自动加载embeddings,lora,hypeenetwork模型
链接:http://www.123114514.xyz/WebUI/Tag
下载那个zip,将解压后的安装包放到extension文件夹里面
可以看成SD脚本放大功能的高级版,提供更多的绘制选项和更好的放大效果
在安装包的这个包里面下载,同样放置在extension文件夹
重新打开SD,在图生图选项中可以找到。