『SD』文生图基础讲解

点赞 + 关注 + 收藏 = 学会了

本文简介

我曾自信满满地以为,既然使用 ChatGPT 那么易如反掌,掌握其他 AI 工具肯定也是小菜一碟。直到打开 Stable Diffusion 的 WebUI 界面,吓得我立刻关掉。

Stable Diffusion WebUI(简称 SD WebUI)的界面默认是英文的,而且参数设置多得让人眼花缭乱。相比起只有一个输入框的 ChatGPT,这种复杂的界面很容易让人望而却步,尤其是像我这样意志力薄弱的人。

不过,多年切图的我有个习惯,就是喜欢把界面拆解来看。我知道 SD 可以用来生成图片,而且这么复杂的界面肯定不是每个参数都要填写的。那么,怎样才能快速生成一张图片呢?

我的推测是有一个"生成"按钮,让我可以快速生成一张图片。但要生成什么内容,肯定还要有一个输入框。再看看 SD WebUI 界面,很容易就找到这两部分内容。

本文将以初学者的角度,逐步讲解 SD 的文生图功能,让你轻松上手 SD 的文生图。

在此之前,你需要先安装好 SD WebUI。

文生图基础功能讲解?

什么是文生图?

文生图就是文生图,字面意思。就是将文本提示词的内容转换成图片。

小学写的作文经常出现"看图写作",现在使用 SD 就是先写作,然后让 AI 去画图。反过来了~

在 SD WebUI 中,txt2img 就是文生图的功能面板。

提示词(正向和反向)

txt2img 下方有2个输入框:

  • Prompt 是输入正向提示词的地方。第一个输入框。
  • Negative prompt 是输入反向提示词的地方。第二个输入框。

正向提示词 Prompt 里输入的内容是要生成的内容,比如你想生成一张女生照片,可以输入 girl,然后点击右侧浅橙色的 Generate 按钮,等待几秒钟就生成一张女生照片。

而反向提示词 Negative prompt 就是告诉 SD 生成图形时尽量避免的内容,比如可以使用 worst qualitylow quality 等提示词避免生成低质量的图像。

注意,提示词和提示词之间需要用逗号分隔。

选择模型

可以在下图中红框的两个区域选择模型。

我通常会在下方的 Checkpoints 选择模型,因为在这里可以查看配置好的预览图。

当你的模型数量越来越多,光靠模型名字是记不住这个模型能干嘛的。有预览图的话会比较直观。

可以到这几个网站下载模型:

其中,哩布哩布不需要使用魔法就能访问,它是国内的平台。

将下载好的大模型放在 sd.webui\webui\models\Stable-diffusion 这个目录下即可。

如果要配置模型封面,可以在模型下载的网页把别人做好的图下载下来,并且将图片命名成模型的名字。SD WebUI 会根据名字匹配封面图。

比如我这里有2个模型,分配给它们配置封面图。

采样器、调度器、迭代步数

继续往下看,可以见到Sampling method(采样器)、Schedule type(调度器)和 Sampling steps(迭代步数)。

在之前的版本中,采样器和调度器是放在一起的。在 SD WebUI 的 1.9版本将其分开了。

关于采样器和调度器,在现阶段不用深究。后面我会单独开一篇文章讲解。此时只需简单的理解,不同的采样器就是不同的算法。

现阶段我们要关注的是迭代步数 Sampling steps,这个参数会影响生成图片的质量。

迭代步数越小,生成的图片质量就越差。

我分别用 2, 4, 8, 16, 32, 64 这几个迭代步数生成一组图片作对比。提示词是 girl

可以看到,迭代步数为2时,图片基本就没法看了。迭代步数越高,生成的图片就越精细,可以放大看看每张图片的发丝和衣服的细节。

但迭代步数并不是越大越好,这个值是有边际效应的,当数值超过一定程度后,生成图片的差距就会减少,但绘图耗时却大大增加。

看看下面这组图,从照片的精细程度看,很难说出30和50有多大差距。但迭代不是是30时,生成的图片用时9.6秒;迭代步数50时耗时14.9秒。

设置宽高

下图的参数很好理解,就是设置图片的宽高。

右侧的切换按钮就是将宽高的数值进行对调。

高分辨率修复

V1.5的模型的训练精度是 512 * 512 像素,新的 SDXL 模型也只是 1024 * 1024 像素的精度,如果直接将宽高设置得比较大,生成出来的图片很容易出现多头多手等怪异问题。

SD 提供了 Hires. fix 功能,可以高清放大图片。具体的使用方法我在 《『SD』文生图-如何生成高分辨率图片?》 里有讲解。

Refiner 精炼器

Refiner 精炼器的作用是可以允许你用2个模型生成一张图片。

例如,我的主模型选择了A,那么在 Refiner 选择另一个B模型,并且 Switch at 设置了 0.8,意思就是前80%使用A模型绘图,剩下的20%使用B模型绘图。

生成的总批次数和单批数量

在设置宽高的选项旁边有 Batch count(总批次数) 和 Batch size(单批数量)选项。

举个例子,我把 Batch count(总批次数) 和 Batch size(单批数量)都设置成4。

  • Batch count(总批次数):每次生成一张图片,总共执行4次。这项的功能是要重复执行多少次任务的意思,耗时比较长,以时间换空间。而且它每次生成出来的图片都是很随机的。等于你点了4次生成按钮。
  • Batch size(单批数量):一次生成4张图片。这项的功能是将提示词以及其他参数都放在同一个潜空间去运行,通过一次任务生成多张图片,这样会占用更多的显存和计算资源,属于空间换时间。能生成风格一致的图片。但对于电脑性能较差的工友来说,这项的数值默认使用1即可。

提示词相关性

CFG Scale 这项用于设置生成图像与输入提示词的相关信息,数值越大,生成的图像就越符合提示词的意思。但如果数值太大的话会出现锐化效果。这个值越小,对 SD 的约束程度就越低,AI就有更大的自由发挥空间。默认值是7,这是一个比较平衡的数值。

简单来说,这项是设置 SD 的服从性。具体要设置什么数值需要根据你使用的模型以及要生成的效果去调整。

种子数

Seed 值就是种子数,默认是 -1 ,也就是每次生成图片会随机分配一个 seed 数。

种子数这项设置很重要,即使使用相同的提示词和参数,但种子数不一样,生成的图像也不一样。

如果提示词和所有参数都一样,种子数也一样,那么生成的图像也会一模一样。

Seed 输入框旁边有几个按钮,骰子的意思是将种子数设置回 -1,也就是随机数。

绿色回收icon的那个按钮会将上一次生成图像的种子数填入 Seed 输入框里。点击该按钮后,在不改变模型、提示词以及其他参数,再次生成生成图片时,会得到一张与上一次任务非常接近的图。

开启 Extra 后,界面会额外多出一些选项。

  • Variation seed 变异随机种子
  • Variation strength 变异强度
  • Resize seed from width 从宽度中调整种子
  • Resize seed from height 从高度中调整种子

我们可以将 Seep 种子数 和 Variation seed 变异随机种子配合使用。

比如你生成了2张图,分别是A图和B图。

你用A图的种子数作为基础种子数 Seep,用B图的种子数作为 变异随机种子 Variation seed,并将变异强度 Variation strength 的值设为0.2。此时再生成一张图片就会以8:2的比例结合A图和B图去生成新图。


关于 SD WebUI 文生图的基础功能讲解就到这了。其实使用 Stable Diffusion WebUI 已经是很简单了,还有一个界面看上去更复杂的 ComfyUI。这个留在之后的文章中讲解。

点赞 + 关注 + 收藏 = 学会了

相关推荐
B站计算机毕业设计超人34 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条38 分钟前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客43 分钟前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon1 小时前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客5201 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神1 小时前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
咸鱼桨2 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派
强哥之神2 小时前
Nexa AI发布OmniAudio-2.6B:一款快速的音频语言模型,专为边缘部署设计
人工智能·深度学习·机器学习·语言模型·自然语言处理·音视频·openai
yusaisai大鱼2 小时前
tensorflow_probability与tensorflow版本依赖关系
人工智能·python·tensorflow