文生图

成功安装了StableDiffusionWebUI,这里我们简单的介绍下其中的文生图,了解下其中的基本概念,还没安装的同学可以去看这篇文章StableDiffusionWebUI本地部署/模型下载指南

下图是文生图的基本页面,这个同学们应该都可以理解,输入提示词,点击最右侧的Generate即可快速的生成一张图片。后续我这边生成的图片都放到百家号科技漫舞上进行展示了呢,欢迎大家关注。

Prompt(提示词):对你想要生成的内容进行文字描述。

Negative prompt(反向提示词):用文字描述你不希望在图像中出现的内容。

Generation

生成图片的基本配置,我们详细的看下这个tab下的配置。

Sampling method:采样方法,指的是从模型生成的图片或其他内容中选择样本的技术或策略,选择合适的抽样方法可以帮助生成更加符合预期、质量更高的内容。

如果想快速生成质量不错的图片,建议选择 DPM++ 2M Karras (20 -30步) ,也是默认选择的,如果想要每次生成不一样的图像,可以选择不收敛的祖先采样器(名字里面带a或SDE)

Sampling steps:抽样步骤,Sampling method来计算多少步数生成图片,但并非步数越多越好,不同出图效果、模型选择在使用采样迭代步数上都需要有相应的调整,多数情况迭代步数20-30步。

Hires. fix:高清修复,目前stable diffusion V1-V1.5版本均是在512*512的原始训练素材基础上训练的,所以在用AI生图时,最好设置要生成的图片尺寸为512*512。但是,我们有时需要1024以上的大图,此时就需要对图像进行二次生成式放大。这里并不是简单放大,而是通过神经网络对图像在更高尺寸上再生成。此时,高清修复便是经常用到的一个功能了,但勾选它会耗费额外的GPU计算资源和时间。另外放大后的图与原图细节会有略微不同。

Refiner:优化器,用户可以对图像进行更为细致的处理,包括局部调整、色彩校正、细节增强等。这个选项下的Checkpoint是选择重绘的模型,Switch at表示开始重绘的地方。本质上 Refiner 模型的本质就是在进行图生图的工作。

Width & Height:图片的大小,建议512*512(需要结合模型训练的图片大小,v1.5是512*512),如果要更大的可以使用Hires. fix 进行重绘放大。

Batch count & Batch size:Batch count 处理的批次数量,Batch size 每一批生成图片的数量。

CFG Scale:提示词相关性,一般来说,CFG 比例值介于 7 - 11 之间时会产生最佳的低噪效果。

Seed:随机种子,固定生成图片过程中所产生的随机数,填入随机种子后,后续生成的图片都会参考这个种子进行生成,当随机种子为-1时,则是未使用种子,后续出图都是随机状态。因为随机种子虽然固定了随机数,但是算法本身就有随机性,就算使用了随机种子还是会因为随机性带来生成图片的偏差,所以随机种子只能最大限度的降低随机性。

Script:脚本,这里列出了所有的脚本: Custom-Scripts。默认有三种脚本:Prompt matrix,X/Y/Z plot,Prompts from file or textbox。

Prompt matrix:按照不同的提示词生成图片矩阵,而启用这个脚本后,可以使用|语法分割词,这样会组成多个提示词组合让你一次性的看到效果。Select prompt即选择提示词还是反向提示词,Select joining char即使用的分隔符。Grid margins即网格边距。

X/Y/Z plot:可以快速的放我们了解SD功能参数的意义和效果,快速选择我们需要的图片,有时候这个真的很有用。下图是官方的一些示例,X/Y/Z plot源码 这里你可以了解更多。

Prompts from file or textbox:从文件上传提示词。

Textual Inversion

Textual Inversion,可以根据几张反映该概念的图像,训练关于一个特定概念的新词汇。通俗的讲其实就是把提示词打包成为一个提示词。如果你想要稳定的实现某个特定的角色、画风或者动作,通常会输入很多提示词去限定特征,这个是非常有门槛也很考验经验的。Textual Inversion 就是解决这个问题的,你也可以下载别人训练好的,放入stable-diffusion-webui/embeddings 文件夹就可以了。

hypernetworks

它是一种小型模型,副档名为.pt,既然Hypernetworks会附加到diffusion model上,那么会附加到哪一部分呢?答案仍然是UNet的cross-attention模块,Lora模型修改的也是这一部分,不过方法略有不同。把对应的模型放入stable-diffusion-webui/models/hypernetworks 文件夹就可以了。

Checkpoints

这个不多做介绍,这里是放入主要大模型的文件,放在文件夹 stable-diffusion-webui/models/Stable-diffusion

Lora

每个checkpoint 不能在算图操作时直接疊加,需先透过Checkpoint Merger作混合,产生出新的checkpoint 才能使用,若要fine tune model 训练新的风格,因模型过大,需大量硬体资源才能办到。LoRA 透过inject 的方式,在大型语言模型中,每个transformer block 前插入一层trainable layers (rank-decomposition matrices)。可以简单把LoRA 当成风格过滤来理解。放在文件夹 stable-diffusion-webui/models/Lora中。

本篇文章知识介绍了基本概念,这里的很多都可以展开讲讲,后续实战的时候我们再详细说。