AI绘画+LoRA模型训练从新手到高手
上QQ阅读APP看书,第一时间看更新

1.2.1 Stable Diffusion系列

Stable Diffusion是由Stability AI开源的一种基于潜在扩散模型(Latent Diffusion Model)的文图生成(Text-To-Image)模型,简单来说是一个从文本到图像的生成模型。除了根据文本的描述产生详细图像,它也可以用于完成其他任务,例如内补绘制(Inpaint)、外补绘制(Outpaint),以及在提示词指导下的图生图等。

Stable Diffusion是开源的,它的代码和模型权均已公开发布,只要计算机上配备合适的GPU,都可以运行这个模型。在GitHub(1)上搜索Stable Diffusion,可以搜索到很多相关的项目。狭义地理解Stable Diffusion,可以认为它仅仅是Stablity公司研发并发布的AI绘画模型,但当提到Stable Diffusion时,更多是指它的整个生态。

这里使用“系列”这个词语,是因为Stable Diffusion本身只是一个开源的模型,而基于这个开源模型,发展出来与之配套的一系列软件和工具,才最终形成我们日常使用的AI绘画工具。

1.Stable Diffusion模型

Stable Diffusion模型截至目前已发展出众多版本,下面从发展的脉络介绍整个模型生态的情况。

● LDM模型

大规模训练扩散模型一直是学术界的难点,直到潜在扩散模型(Latent Diffusion Model,LDM)的出现,才为Diffusion Model的大规模训练打开了大门。LDM是由Compvis团队独立提出的,为后续的Stable Diffusion模型版本打下了技术基础。由于LDM是学术的产物,阅读论文的主要是AI研究者,所以得到的关注度远远不如Stable Diffusion。

● Stable Diffusion V1

在完成了LDM的工作后,Compvis团队得到了工业界的关注,得以和Runway和Stability AI合作。有了他们的支持,Compvis团队开始可以做昂贵的尝试,他们在LAION数据集上进行规模的训练。

Stable Diffusion V1使用下采样因子为8的自编码器,其中包括一个860M UNet和CLIP ViT-L/14文本编码器,用于扩散模型。该模型在256×256像素的图像上进行了预训练,然后在512×512像素的图像上进行了微调。

他们一共放出了4个版本的模型,这4个版本细节如下。

● sd-v1-1.ckpt:在laion2B-en数据集上以分辨率256×256进行了237k步的训练。

● sd-v1-2.ckpt:从sd-v1-1.ckpt继续训练。在laion-high-resolution数据集上以分辨率512×512进行了194k步的训练(该数据集包含来自LAION-5B的170M个示例,分辨率大于或等于1024×1024)。

● sd-v1-3.ckpt:从sd-v1-2.ckpt继续训练。在“laion-aesthetics v2 5+”数据集上以分辨率512×512进行了195k步的训练,并且对文本条件进行了10%的丢弃,以改进无分类器引导采样。

● sd-v1-4.ckpt:从sd-v1-2.ckpt继续训练。在“laion-aesthetics v2 5+”数据集上以分辨率512×512进行了225k步的训练,并且对文本条件进行了10%的丢弃,以改进无分类器引导采样。

图1-17所示是Stable Diffusion V1生成的一些图片。

图1-17 Stable Diffusion V1效果图片

● Stable Diffusion V1.5

Stable Diffusion V1.5是由RunwayML团队发布在hugging face上的扩散模型产品,是Runway公司再训练优调后的版本。

官网的介绍如下。

Stable Diffusion V1.5在Stable Diffusion V1.2进行初始化,然后在512×512分辨率的“laion-aesthetics v2 5+”数据集上进行了595k步的微调。此微调过程中,对文本条件进行了10%的丢弃,以改进无分类器引导采样。

V1.1~V1.4与V1.5在模型结构上并无差别,主要是训练的步数以及训练集存在差异。由于模型是开源的,在这些官方模型的基础上,可以衍生出来许多更为精细、优秀的模型。

● Stable Diffusion V2.0、V2.1

2.0版本相较于1.0版本,最大的更新在于生成图像,尤其是建筑概念和自然风光图像的质量。而2.1版本更是在建筑、室内设计、野生动物和景观场景方面的图像质量上,进行了又一次飞跃。

图1-18所示是Stable Diffusion V2.0生成的一些图片。

图1-18 Stable Diffusion V2.0效果图片

● 非官方模型的发展

Stable Diffusion模型的开源发布引发了广泛的开发者兴趣,他们纷纷基于官方版本进行各种形式的训练和优化(Finetune)。这一潮流催生了一个蓬勃发展的模型社区。开发者们在官方版本的基础上进行探索与创新,为该模型的应用和功能拓展提供了新的可能性。

这种协同合作的努力使得Stable Diffusion模型的进化变得更加快速而灵活,进一步推动了人工智能领域的发展。以下列举一些非官方模型。

● Waifu Diffusion

Waifu Diffusion起初是一个专门针对二次元图片生成的模型,它在Stable Diffusion官方版本的基础上继续对海量二次元图片进行训练,从而使模型具备生成二次元画面的能力,后续模型版本更加注重内容的丰富性。目前主要版本有Waifu Diffusion 1.3、 Waifu Diffusion 1.4Anime以及Waifu Diffusion 1.5。

图1-19所示是Waifu模型的一些生成样例。

图1-19 Waifu模型生成样例

● AnythingV3~V5

此模型在2022年12月曾火过一段时间,相比Waifu,使用简单的提示词就能生成质量很高的图片,但其对画面的控制能力相对会弱一点。

图1-20所示是Anything系列模型的一些生成样例。

图1-20 Anything系列模型生成样例

● Chillout Mix

Chillout Mix是一款能生成真人图片的模型,人物风格偏亚洲女性,利用它生成的一些真人cosplay图曾在社交圈达到以假乱真的地步,引起人们的广泛讨论,使用真人模型,容易引起侵权等法律相关的问题,故需要慎重使用。

图1-21所示是Chillout Mix模型的一些生成样例。

图1-21 Chillout Mix模型生成样例

2.AI绘画图形界面:stable-diffusion-webui

起初,要生成图片,需要使用命令行来控制,示例如下。

    python scripts/txt2img.py --prompt "a photograph of an astronaut riding a
horse" --plms

其中--prompt后面的即是描述性文字,可以根据需要更改,如果想生成更加细致的内容,那就需要添加非常多的参数。

对于大部分用户来说,使用命令行并不方便,因此,很多自由开发人员开始尝试开发基于Stable Diffusion模型的AI绘画图形界面软件,其中属AUTOMATIC1111开发的界面最为出名,即stable-diffusion-webui项目,如图1-22所示。

图1-22 界面

webUI的出现,简化了模型的使用,这使得普通用户在相对简单的条件下也能部署并使用AI绘画,在不用写代码的情况下就能够实现模型的训练等操作。

3.丰富的第三方插件

开源软件的一个巨大优势是会吸引越来越多的开发者参与软件的设计和开发,Stable Diffusion也是如此,从开源的那一刻开始,便涌入了各领域的研究者,他们基于自身的想法和诉求,对软件进行开发和修改,增加它的功能,优化绘画的效果,截至目前,已经涌现出很多优秀的插件,这些插件都可以集成在webUI界面中进行使用。接下来为读者简单介绍以下4款插件。

● ControlNet插件

ControlNet插件可以根据用户提供的提示和控制来生成高质量的图像。AI绘画的可控性是它进入实际生产最关键的一环。有了ControlNet的帮助,用户可以利用建筑的草图、人物的姿势、画面的深度和边缘等信息用来绘图。这使得Stable Diffusion的在画面可控性方面得到了非常大的提高,如图1-23~图1-28所示。

● Local Latent Couple

Local Latent Couple可以为画面局部增加细节,例如画面衣服的皱褶过于简单时,可以将衣服部分框选出来,AI会自动深化该区域的细节,如图1-29~图1-32所示。

图1-23 通过骨骼点控制姿态

图1-24 通过边缘控制整体形态

图1-25 通过HED边缘控制整体形态

图1-26 通过草图线稿控制整体形态

图1-27 通过色块控制整体画面

图1-28 通过简单线稿控制整体画面

图1-29 处理前图片

图1-30 脸部细节增多

图1-31 处理前图片

图1-32 衣服细节增多

● Ultimate SD upscale

为提高速度,AI生成的图片一般都比较小,webUI里面自带的hires.fix功能能直接放大图片,但这个功能对显存和算力的要求都十分高,Ultimate SD upscale插件就是为了解决这个问题而诞生的,它可使用较小的内存,顺畅地生成高清的图片,如图1-33所示。

● regional-prompter

regional-prompter插件能够为一张图片的不同区域指定不同的提示词,如图1-34所示。提示词之间不会出现混淆,让画面构图更为稳定,如图1-35所示。它主要有控制全局和局部构图、为画面设置正确的颜色配置等作用。

图1-33 Ultimate SD upscale插件

图1-34 regional-prompter插件

图1-35 分区域配置提示词