Stable Diffusion WebUI 使用基础

内容纲要

查看【Stable Diffusion 专题】专题可浏览更多内容


接上一篇:在 Windows 上安装 Stable Diffusion WebUI

现在打开 Stable Diffusion WebUI 画上第一张图,比如想画一只猫,在第一个输入框里输入 cat 然后按下「生成」按钮:

Stable Diffusion WebUI 使用基础

如上图现在得到了一张关于「猫」的图片,那么下一步是什么?

Prompt

接触 Stable Diffusion WebUI 和使用其他生成式 AI 产品类似,首先都要了解一个名为「Prompt」的概念,在中文里「Prompt」通常也被称为「提示词」,用来描述和指导模型生成图像,通俗来讲就是告诉「AI」我们想要画的是什么,如之前输入的 cat 就是 Prompt。

提示词的书写建议

一个好的「Prompt」对最终图像质量影响巨大。那么应该怎么写呢?以下是一些建议:

  • 使用英文
    在文章开头使用了猫的英文 cat 来作为提示词,尽管使用中文 也是可以正常画出猫的图片的,但 Stable Diffusion 模型训练数据集主要来自英文语料库,对于英文单词、短语和语义有很好的理解和建模能力,而对于中文的理解能力相对较差。
    如果英文不是很好怎么办?使用翻译工具呗,例如 DeepL彩云小译
  • 使用词组
    一般来说目前更多的是使用英文单词而不是自然语句书写,例如我想画一张阳光下猫咪在草坪上的图片,那么提示词可以这么写:cat, sunshine, on the lawn
  • 英文逗号隔开或换行
    每个 Prompt 使用英文逗号隔开,有时为了可读性会想要换行,那么也是在当前行的末尾的 Prompt 加上英文逗号再换行即可;
  • 尽可能的描述
    例如主体的描述,比如这是一个什么品种的猫?猫在做什么?有穿着可爱的小毛衣吗等等;
    例如场景的描述,是白天吗?有没有阳光?草坪上有什么?
    例如风格的描述,是 3D 还是 2D,是像素风还是漫画风?
    例如画质的描述,比如说希望生成的图片是高清的:High dynamic range, vivid, rich details, clear shadows and highlights, realistic, intense, enhanced contrast, highly detailed
  • 权重及符号
    尽管每个 Prompt 默认权重为 1,但越靠前的提示词顺序权重越高,对生成结果的影响更显著。因此将重要的提示词写在最前面可以确保它们对最终结果有更大的影响力。
    另外有一些符号,如使用括号进行权重控制,() 和 {} 括号用于增加权重,[] 括号用于减少权重。
    增加的方法有嵌套和指定数值两种方法:

    1. 每个括号权重的倍数不同,如 () 括号增加 1.1 倍,{} 括号权重增加 1.05 倍,[] 括号 减少 0.9 倍,那么 (red) 表示 red 的权重增加 1.1 倍,并且最多可以嵌套三层括号即 (((red))) 表示权重增加了 1.1 * 1.1 * 1.1 = 1.331 倍
    2. 也可以指定数值,如 (red:1.5) 表示 red 权重增加 1.5 倍

正向提示词和反向提示词

第一个输入框里的正向提示词,意为你希望生成一个什么样的图片,而反向提示词也很好理解,你不希望图片里有什么。

例如希望生成一个避免不适宜的图片,那么可以在正向提示词加上 SFW 并在反向提示词加上 NSFW,也就是 Not Safe/Suitable For Work 的意思。再举个例子不希望生成的图片是丑陋的、模糊的也可以加上 ugly, blurry

提示词网站

除了一些书写建议,想要写好提示词也可以看看别人都是怎么写的,这里罗列几个网站:

图片存放目录

每次生成的图片都会保留在本地 SD WebUI 根目录下的 outputs 目录,如之前文生图功能生成的图片就存放在 outputstxt2img-images 里面:

.
├── __pycache__
├── config_states
├── configs
├── embeddings
├── extensions
├── extensions-builtin
├── html
├── interrogate
├── javascript
├── localizations
├── models
├── modules
├── outputs                     # 图片输出目录
│   └── txt2img-images          # 文生图的图片存放目录
├── repositories
├── scripts
├── test
├── textual_inversion_templates
└── tmp

生成参数

Stable Diffusion WebUI 使用基础

采样方法(Sampling method)

采样方法决定了图像的生成方式和最终质量。简单来说,采样方法就是从随机噪声中逐渐生成图像的过程。在这个过程中,采样方法会使用一些预训练的模型来预测图像的潜在特征,并使用去噪器来去除图像中的噪声;

可以将采样方法理解为一种生成图像的工具,通过选择不同的采样方法来生成不同风格的图像。对于初学者来说选择默认的采样方法即可,也可在选择模型时遵照模型说明使用指定的采样方法。

迭代步数(Sampling steps)

迭代步数决定了图像生成过程中的迭代次数。简单来说,迭代步数越多,图像的质量就越好。但是,迭代步数越多,生成图像所需的时间就越长;

一般来说,建议将迭代步数设置为 20 到 50 之间。这个范围可以生成高质量的图像,同时也能保持生成速度。

宽高

就是图片的分辨率,设置的值越高图片也就越大越清晰,但同时对显卡也有要求,而且可能造成一些如画人物时出现多人多手脚的情况。所以一种做法是先用低分辨率绘图然后勾选开启「高清修复」以图生图功能进行放大;
Stable Diffusion WebUI 使用基础

总批次数(Batch count)和单批数量(Batch size)

生成批次指每次运行 Stable Diffusion 生成图像的组数。每批数量指同时生成多少个图像。

  • 总批次数(Batch count)可以一次性生成多批图像,无需重复输入提示词。适合需要大量结果图像的场景。
  • 单批数量(Batch size)可以在有限的显存资源下,并行利用更多 GPU 计算能力。将数量适当增加能加快单个批次的生成速度,但过高会耗尽资源。

总批次数 * 单批数量 = 生成的图像总数量

提示词引导系数(CFG Scale)

提示词引导系数 (CFG Scale) 控制着提示词对图像生成的影响程度。

CFG Scale 的取值范围为 0 到 30。CFG Scale 越高,提示词对图像生成的影响就越大。
当 CFG Scale 较低时,生成的图像可能与提示词不完全匹配,但图像的整体质量可能会更高。当 CFG Scale 较高时,生成的图像会更接近提示词,但图像的整体质量可能会下降。

一般来说,建议将 CFG Scale 设置在 5 到 15 之间。这个范围可以生成与提示词匹配且质量较高的图像。

随机数种子 (Seed)

随机数种子用于控制画面的一致性,当值为 -1 时随机生成,也可以根据生成好的图片或者他人提供的数值来保持画面的一致性。

文生图与图生图

除了根据文字生成的图片的「文生图」,Stable Diffusion 还有一个「图生图」功能。图生图使用一张图像作为参考和起点,根据输入的提示词并基于图像中已有的结构、颜色、布局等元素,生成一张全新的、符合我们要求的图像。

这个过程有点类似于「编辑」原始图片的效果,但远比普通图像编辑软件的功能更加强大和灵活。通过修改提示词可以改变图像中的物体、背景、风格等多个方面,创造出全新的视觉体验。

Stable Diffusion WebUI 使用基础

在顶部菜单可以点击「图生图」,可以看到界面布局和「文生图」类似,在左侧面板可以看到点击或拖拽文件即可上传用于参考图像。

和「文生图」类似也需要使用提示词和设置一些参数,需要了解的基本参数是重绘幅度(Denoising Strength),它决定了生成的新图像与输入参考图像之间的差异程度,简单来说数值越小和原图越像,数值越大则越不像。


到这里应该已经尝试并掌握一些基本的操作了,但可能很快就会遇到一个问题:「我在网上看到一张画的很棒的图片,但是我用了和作者一样的提示词,为什么画出来的图片还是那么丑?」,可以查看下一篇文章:Stable Diffusion 模型使用入门