【stable diffusion】保姆级入门课程01-Stable diffusion(SD)文生图究竟是怎么一回事

目录

学前视频

0.本章素材

1.什么是文生图

2.界面介绍

2.1切换模型的地方

2.2切换VAE

2.3功能栏

2.4提示词

1.提示词的词性

2.提示词的语法

3.提示词的组成

4.提示词的权重调整

2.5参数调整栏

1.采样方法

2.采样迭代步数

3.面部修复

4.平铺图

5.高清修复

6.宽度和高度

7.生成批次和每批数量

8.提示词引导系数(CFGScale)

9.随机种子

2.6模板操作区

3.结语

4.课后训练


学前视频

stable diffusion 文生图讲解

0.本章素材

anything模型(二次元模型)百度地址:https://pan.baidu.com/s/1VvDJOP_MbUcR7lCSasQ19Q?pwd=g5uk提取码:g5uk夸克地址:https://pan.quark.cn/s/09719485f653提取码:PWLu
vae:vae-ft-mse-840000-ema-pruned百度网盘链接:https://pan.baidu.com/s/1XnZoRd7n4NV0SFjslpjM_w?pwd=gu4f 提取码:gu4f夸克网盘:https://pan.quark.cn/s/db59977509f8提取码:mehy
通用提示词模板:夸克网盘:https://pan.quark.cn/s/fb90a9853507

 1.什么是文生图

        stablediffustion并不是自己就能平白无故生成一张图,stablediffustion只是一个执行者,既然是执行者,那么就需要对应的指令去告诉SD,我们需要做什么,比如说我需要一个在山里的女孩的图片

        我输入1girl,inthemountain,那么SD就会输出背景是山,一个女孩的图片了,文生图,就是从文字概述中生成对应的图片信息.

图片

        由于SD不认识中文,提示词都必须是英文,而且看上去混乱无章,很多人刚刚入门时,会觉得一头雾水,不知道要怎么写,也不知道该写什么,看到界面这么多参数,也不知道该点什么.不用担心.接下来,我将通过细致的讲解,让同学们一步一步学会甚至熟练使用。 


2.界面介绍

图片


2.1切换模型的地方

        模型简单来说就是决定你出图效果,一些模型是出3D图片效果很好,一些模型是二次元图片效果很好,但是需要注意的事,如果用建筑类的模型去生成二次元图片,会大大增加崩坏图片的几率,因为模型出图的效果是基于训练的素材,建筑类的模型,一般是大量的使用建筑图片给模型进行训练.

        模型常见的尾缀为ckpt,safetensors,大小一般是2G到7G

存放路径是x:\xxx\sd-webui-aki-v4\models\Stable-diffusion

常见的模型下载网站有:

https://civitai.com/(C站,国内无法正常访问)

国内可用:

https://www.liblibai.com/(类似C站的国内镜像网站)

https://huggingface.co/(抱脸网)

图片
带有checkpoint的是模型

2.2切换VAE

        VAE简单的理解可以是增强画质的工具,(多数情况下,可以增加画质,但是也有可能会导致画质变得更差)类似滤镜,或者智能P图,多数模型都会自带有对应的VUE模型,会自动识别.

        简短来说就是图没有灰色,或者画质过差,不用切换VAE

存放地址:X:\\XX\sd-webui-aki-v4\models\VAE

图片


2.3功能栏

        主要是Stablediffusion各种功能的切换,本章讲解文生图功能


2.4提示词

        提示词是控制图片绘制的核心要素,也是本章的重点内容,会分多个小点进行讲解


1.提示词的词性

       在文生图界面中提示词分为两种,一种是正向提示词(Prompt),一种是反向提示词(NegativePrompt)。

  • 正向提示词的意思是:我需要什么(图片中出现什么)。

  • 反向提示词的意思是:我不需要什么(图片中不出现什么)。

例如hair(头发)在正向提示词输入框中,则说明生成的图片中需要头发,反之在反向提示词输入框中,则说明图片中不要出现头发,一个词语是正向提示词还是反向提示词取决于词语在什么输入框(反向提示词未必一定会生效,比如加了缺少胳膊,出的图一定几率也会出没有手)


2.提示词的语法

1.sd支持单词,短语,简单的句子这几种模式

  • 单词:1girl,longhair,in the mountain(一个女孩,长发,在山里);

  • 短语:Agirlhaslonghair,in the mountain(一个女孩有长发,在山里);

  • 句子:Agirl with long hair is in the mountains(一个长发女孩在山里);

以上这几种的效果都是一样的,都会生成相同效果的图片,而我们常用的是使用单词进行编写提示词,因为更容易进行调试修改

2.不同提示词之间需要用英文逗号进行分割,并且前后有空格或者换行是不影响效果的

3.提示词越在前面,权重越高,所以主体应该放在前面


3.提示词的组成

  1. 基础词:通用的词语,主要是对画质的提示,通常无论哪种图片都可以加上,也称为起手式常用的有bestquality,ultra-detailed,masterpiece,finelydetail,highres,8kwallpaper(最好的质量,超细节,杰作,精细的细节,高分辨率,8k壁纸).

  2. 主体词:对画面的主体进行描述的词语,比如环境描述,光线描述,图片包含什么的描述,比如1petitegirl,outdoors,Purplefog(一个娇小的女孩,户外,紫雾).

  3. 细节词:对于主体的更加细节描述,比如眼睛的大小,瞳孔的颜色,衣服的描述,发色的描述,身材的描述等比如redeyes,eyehighlights,dress,shortpuffysleeves(红眼睛,挑亮眼睛,裙子,蓬松的短袖)

正向提示词从本质上说就是基础词+主体词+细节词的描述,也许你会说我一下子想不出这么丰富的词语,那么你可以从最简单的开始:

一个女孩在户外->生成图片->查看图片->添加细节->一个娇小的女孩,有着红色的眼睛,穿着裙子和蓬松的短袖->循环的生成图片->不停的调整细节->生成图片

有个反向提示词需要注意:nsfw,反向提示词加上这个词语可以很大程度上减少少儿不宜的图片出现,避免社死.

提示词网站:https://prompthero.com/stable-diffusion-prompts


4.提示词的权重调整

在生成图片的时候我们可能需要某个细节更加突出或者减弱,此时我们可以使用权重去进行控制

1.固定权重调整

  1. 权重上升()(xxx)包含的词语是指权重增加1.1倍,()可以进行叠加,每叠加一次就增加1.1倍,例如((xxx))就是1.1*1.1,(((xxx)))就是1.1*1.1*1.1

  2. 权重微量上升{}{xxx}包含的词语权重增加1.05倍,同时也可以叠加,{{xxx}}就是1.05*10.5

  3. 权重下降[][xxx]每套一层,额外x0.9同时也可以叠加,[[xxx]]就是0.9*0.9

2.动态权重调整

括号加数字(xxx:1.5)当数字大于1时权重上升,1.5则是1.5倍的意思,数字小于1时,权重下降(xxx:0.5)权重是原来的0.5倍

图片

图片


2.5参数调整栏

这里就是对文生图绘制的细节调整,每一个参数都有自己对应的含义,也会对结果图有一定的影响。


1.采样方法

采样方式就是指sd用什么算法进行图片生成,影响出图质量以及出图速度。

以下是各种采样方式的出图效果:

图片

  • Euler a速度和质量都非常不错,适合快速出图,但是要注意自己的提示词,因为快也很容易出一些崩坏图

  • DDIMEuler则需要一定的好的运气,需要反复抽卡

  • DPM++2系列算法则以相对步数就可以达到其他算法的质量甚至更高(一般来说带++的都是升级版)

  • LMS、DPMfast、LMSKarrasPLMS这几个算法则不太推荐

 一般细心的模型都会有推荐采样算法,大家也可以上模型的详情进行查看例如:

图片


2.采样迭代步数

采样迭代步数越高,图片则会越精细,但是需要申明采样迭代步数并不是越高越好,图片的质量是有上限的,过高的采样迭代步数只会增加出图的速度以及增加崩坏的几率,但是也有研究表明,过高的迭代步数有助于手部的生成,但是大部分情况下,过高的迭代步数并不会有较大的收益.

对于不同的模型也有各种不同的采样迭代步数:

·DDIMEulerA一般为30以上40以下;

·DPM2A则一般为60以上;

·DPM系列则一般为20以上30以下;

但是有个异类DPMadaptive这个采样方式,采样迭代步数对于这个采样方法是不生效的.

当然这个并不是通用的,更多是一种参考值,更加具体的,可以参考模型的推荐步数.


3.面部修复

一般是用于三次元图片的面部修复,但是对于二次元图片的面部修复支持效果不是很好,三次元图片可以勾选,二次元图片不要勾选,二次元修复效果不好


4.平铺图

就是一张图片中会出现重复的元素,特定场景会使用.


5.高清修复

这个可是神器之一,可以把模糊的照片变清晰

图片

 sd用放大倍率进行等比例放大,这样图片的细节会更加清晰,质量更加高,如果放大倍数是2时图片分辨率会从512*512变为1024*1024,高清修复的时候不要直接拉动宽度和高度.

常用的放大算法三次元的用R-ESRGAN4x+,二次元用R-ESRGAN4x+Anime6B,高分迭代步数为0则是用原图的意思,重绘幅度一般0.5到0.7最佳,过高会导致原图和修复后的图片有较大区别.


6.宽度和高度

这个应该很容易理解吧,就是图片的宽度和高度,配置太低的不要调太大,会无法出图,并且如果宽高设置过大,会出现多人,多手,多脚,多头等奇异画风,这个主要是因为模型训练时大多数是使用小图进行训练,当生成图片过大,AI会认为这是多张图合并而成,当需要生成大图时,建议使用高清修复功能.

当515*512时,大概率会生成大头照,而需要生成全身照时,需要将高度调高到700以上,并且加上提示词“fullbody”.


7.生成批次和每批数量

这个需要一起说明,生成批次是指生成多少次,每批数量是指一次生成多少张,生成批次对显存要求不高,但是每批数量对显存的要求较高,一般我们需要出多张图时,只设置生成批次即可,每批数量过多容易导致爆显存,生成批次只会影响出图速度.


8.提示词引导系数(CFGScale)

就是SD多大程度上会听从你的指令.

1-基本上不理会你的提示;

3-更具创造性;

7-在遵守提示和自由之间取得良好的平衡(默认值);

15-更加遵守提示;

30-严格遵守提示;


9.随机种子

你可以认为这个就是图片的编码,当为-1的时候,则是随机生成一个编号,相同的随机种子出的图会大致一致.

图片

图片


2.6模板操作区

图片


3.结语

至此文生图的讲解就到这里结束了,下一章,我们开始了解什么是图生图


4.课后训练

  1. 使用anythiny模型构建一张小女孩在月光下微笑的图片(512*512大小)

  2. 通过更换采样模式查看相同图片的生成效果是否一致(seed需要一致)

  3. 图片不变的情况下,生成一张1024x1024的高清图

  4. 同时生成五张小女孩在月光下微笑的图片

  5. 提示词不变的情况下,通过调节引导系数,查看图片的变化情况

    图片

下一节:【stable diffusion】保姆级入门课程02-Stable diffusion(SD)图生图-基础图生图用法 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/43463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统入门之-系统编程【open、close函数】

继上一篇环境配置后就正式开始系统编程 RK3568开发板入门之-tftp&nfs的配置 open的使用,使用之前可以先在Ubuntu下查看帮助,了解open的使用和语法,如下: man 2 open对于open函数 *pathname:要打开的文件路径 f…

Linux安装JDK、Redis、MySQL、RabbitMQ、Minio、Nginx.......

文章目录 一、环境准备二、安装JDK三、安装MySQL四、安装Redis三、安装RabbitMQ四、安装Minio五、安装Nginx特殊情况处理Centos7挂载磁盘服务器时间同步MySQL数据库时间同步安装解压软件修改数据库SQL模式 一、环境准备 下载镜像源 中科大镜像源下载至/opt目录下修改yum源为中…

flask 页面新增文件,存在重复文件时,返回错误消息

(40条消息) flask 读取文件夹文件,展示在页面,可以通过勾选删除_U盘失踪了的博客-CSDN博客 项目结构 这是一个基本的Flask应用程序,主要有两个路由,一个是index,用于显示所有存在的文件以及用于删除已选的文件&#…

Java使用 java.util.regex.Pattern 正则表达式校验参数值是否规范

场景: java中我们可以利用 Pattern 注解对某个入参进行规则校验,但有些特殊参数在接口入口处不方便校验,需要在代码中校验 一、使用 Pattern 注解校验 Pattern(regexp "^[a-zA-Z0-9]$", message "xxx号限输入字母、…

4.1 Bootstrap UI 编辑器

文章目录 1. Bootstrap Magic2. BootSwatchr3. Bootstrap Live Editor4. Fancy Boot5. Style Bootstrap6. Lavish7. Bootstrap ThemeRoller8. LayoutIt!9. Pingendo10. Kickstrap11. Bootply12. X-editable13. Jetstrap14. DivShot15. PaintStrap 以下是 15 款最好的 Bootstrap…

百度文心一言文心千帆大模型 ERNIE-Bot-turbo调用示例(golang版本)

百度的文心一言推出来也有一段时间了,但是接口部分一直没有公开,需要进行申请 最近,有朋友提供了文心千帆大模型的api权限,拿到了必须的参数,现在就来测试一下 下面是使用golang封装的文心千帆 ERNIE-Bot-turbo模型的调…

C++面向对象程序设计-基础入门(超详细)

目录 一、c概述 二、初识c 1、第一个c程序 2、c面向对象的三大特性(重要) 三、作用域运算符:: 1、使用关键字namespace创建一个命名空间 2、命名空间只能定义在全局 3、 命名空间嵌套 4、随时将新的成员加入命名空间 5、命…

DXFReader.NET 2023 Crack

DXFReader.NET 是一个 .NET 组件,允许直接从 AutoCAD 图形文件格式 DXF(也称为图形交换格式)查看、操作和打印。 DXFReader.NET 之 DXF 是 Drawing eXchange Format 的首字母缩写。DXF 是图形文件内容的复制,支持将文件从一个 CA…

picgo Request failed with status code 404

今天写picgo的时候,出现了一个错误,如何解决: 这里是repo的配置出现了问题,不过我的是因为粗心,把master写成了mater,emmmm 这里的repo要跟仓库的地址相同就是这一块:把这一块填到repo就行 然…

算法之图论

定义 图通常以一个二元组 G<V, E>表示&#xff0c;V表示节点集&#xff0c;E表示边集。节点集中元素的个数&#xff0c;称为图的阶。 若图G中的每条边都是没有方向的&#xff0c;称为无向图&#xff1b;每条边是由两个节点组成的无序对&#xff0c;例如节点V1和节点V2之…

论文阅读:矩阵乘法GEMM的cache优化,子矩阵的切分方法Anatomy of High-Performance MatrixMultiplication

矩阵乘法优化的知名论文goto paper&#xff1a; 矩阵乘法的优化需要将矩阵切分成子矩阵&#xff0c;用子矩阵相乘的结果组合为原矩阵相乘的结果&#xff1a; 上图是拆分矩阵的方法&#xff0c;M表示矩阵&#xff0c;X方向和Y方向的两个维度都是未知的。P表示横条或竖条&#x…

前端监控一vue指令实现埋点

前端监控一vue指令实现埋点 https://v2.vuejs.org/v2/guide/custom-directive.html 自定义指令 需要在main.js中执行 import Vue from vue // 自定义埋点指令 Vue.directive(track, {//钩子函数&#xff0c;只调用一次&#xff0c;指令第一次绑定到元素时调用。在这里可以…

Linux 下 nc 发送接收 udp、tcp数据

nc&#xff0c;全名叫 netcat&#xff0c;它可以用来完成很多的网络功能&#xff0c;譬如端口扫描、建立TCP/UDP连接&#xff0c;数据传输、网络调试等等&#xff0c;因此&#xff0c;它也常被称为网络工具的 瑞士军刀 。 一、只服务端使用nc 备注&#xff1a;这种方式只能发…

新能源汽车交流充电桩CP信号详解

随着新能源汽车的推广&#xff0c;交流充电桩迎来了巨大的市场需求&#xff0c;人们对车辆充电的便利性、安全性有着越来越高的要求。CP信号主要用于交流充电桩&#xff0c;充电桩和汽车之间只能通过CP信号进行通讯&#xff0c;判断、控制充电电流和状态。 汽车充电桩CP信号…

124.【SpringBoot 源码刨析C】

SpringBoot源码刨析C (三)、SpringBoot核心功能2.Web4.数据响应与内容协商(1).响应JSON&#xff08;1.1&#xff09;jackson.jarResponseBody&#xff08;1.1.1&#xff09;、返回值解析器&#xff08;1.1.2&#xff09;、返回值解析器原理 (1.2).SpringMVC到底支持哪些返回值(…

【STL】模拟实现简易 list

目录 1. 读源码 2. 框架搭建 3. list 的迭代器 4. list 的拷贝构造与赋值重载 拷贝构造 赋值重载 5. list 的常见重要接口实现 operator--() insert 接口 erase 接口 push_back 接口 push_front 接口 pop_back 接口 pop_front 接口 size 接口 clear 接口 别…

Window环境RabbitMq搭建部署

Erlang下载安装及配置环境变量 下载erlang&#xff0c;原因在于RabbitMQ服务端代码是使用并发式语言Erlang编写的 Erlang下载 Erlang官网下载&#xff1a; http://www.erlang.org/downloads Erlang国内镜像下载&#xff08;推荐&#xff09;&#xff1a; http://erlang.org/d…

旧版Xcode文件较大导致下载总是失败但又不能断点续传重新开始的解决方法

问题&#xff1a; 旧版mac下载旧版Xcode时需要进入https://developer.apple.com/download/all/?qxcode下载&#xff0c;但是下载这些文件需要登录。登录后下载中途很容易失败&#xff0c;失败后又必须重新下载。 解决方案&#xff1a; 下载这里面的内容都需要登录&#xff0…

Appium+python自动化(十九)- Monkey(猴子)参数(超详解)

前边几篇介绍了Monkey以及Monkey的事件&#xff0c;今天就给小伙伴们介绍和分享一下Monkey的参数。 首先我们看一下这幅图来大致了解一下&#xff1a; 1、Monkey 命令 基本参数介绍 -p <允许的包名列表> 用此参数指定一个或多个包。指定包之后&#xff0c;mon…

用html+javascript打造公文一键排版系统7:落款排版

一、公文落款的格式 公文落款包括单位署名和成文日期两个部分&#xff0c;其中成文日期中的数字 用阿拉伯数字将年、月、日标全&#xff0c;年份应标全称&#xff0c;月、日不编虚位&#xff08;即 1 不编为 01&#xff09;。 在实际应用工作中分为三种情况&#xff1a; &am…