自学内容网 自学内容网

Stable Diffusion Hypernetwork Embedding

本节内容,给大家带来的是stable diffusion的Embedding与HyperNetwork课程。在上节课程中,我们已经了解了关于Lora模型和LyCORIS模型的使用。我们可以通过训练Lora模型与LyCORIS模型来对基础模型进行低资源微调,从而实现具有某一类特征的图像产出。

在stable diffusion中,还提供了另外两种控制图像输出特征和风格的方法---embedding和hypernetwork,本节课程,我们就将演示embedding和hypernetwork会如何影响stable diffusion的图像绘制过程,

一:Embedding

Embedding:字面上的意思是“嵌入”,Embedding也不会改变大模型。他是另外一种训练方法-textual inversion的输出结果。textual inversion是一种轻量化训练方式,训练出来的结果实际上是单词与其对应向量的映射记录,就类似书签那样,可以快速指向某些内容。textual inversion结果是一个非常非常小的数据集,一般只有十几K,他同样需要配合大模型使用。通过训练,Textual Inversion将为关键词找到了一个最合适的参数向量,使用该向量可指导原始的扩散模型输出期待的图像。

这样讲有些抽象,我们用具体的实例来去理解Embeddings会更好。

早前,在进行AI绘画的过程中,会经常遇到一个难题---画手,AI虽然学习了大量的图像数据特征,但是对如何画好人类的手总是力不从心,比如这样的图像。

AI似乎对某些细节的理解还不够深刻。但是人们还是找到了解决这些问题的方法,比如可以通过大量画得不好的手的图像训练出一个数据集,然后告诉stable diffusion,在生成的图像中不要出现这些数据集中的特征。

badhand便是我们经常会使用到的一个Embedding,我们通过将这个Embedding的关键信息加到负面提示词中,这样stable diffusion在绘制新的图像时,便会尽量避开这个Embedding所指示的信息。从而尽可能地画出一幅包含正常手元素的图像。

我们可以在C站上搜索badhand找到这个embedding,

搜索结果中的badhandv4就是我们常用的的embedding,点击进入后,可以看到详细信息,使用方法。

将 badhandv4.pt 文件下载后放置在您 stable diffusion webui程序主目录下的 embeddings 文件夹内。 

之后,可以参考文档自行输入触发关键词来引用embedding,也可以点击反向提示词下方的embedding标签页,点击刷新,可以看到安装好的embedding项,

点击对应的项目,将自动添加关键词到输入框,需要注意的是该关键词应该应用到反向提示词输入框,点击生成,生成的图片会尽量避免出现不合适的手元素。

这里补充一下,画手是AI绘画中很重要的一个课题,使用Embeddings并不能完全避免不合适的元素,仍然有比较大的概率会画出不合适的手,我们还需要使用一些其他手段,比如后面课程中会讲述的controlnet,以及前面课程中的Lora,LyCoris模型,局部重绘等来加强手元素的绘制。

常用的embedding除了badhandv4外,还有EasyNegative、deepnegative等

比如EasyNegative是一个集合了负面提示的插件,

我们以往在填写负面提示词时,经常会填入如“低分辨率、模糊、扭曲的五官、错误的手指、多余的数字,水印”等,以避免生成低质量的图像。而EasyNegative这个embedding则是将这些负面的信息资源整合打包,只要将触发词

EasyNegative加入到负面提示词中,就可以在生成的图像中避免生成低质量或不合适的图片。

实践使用中,通常会将多个embeddings应用到stable diffusion的图像绘制过程中,比如我们会使用一些固定的惯例提示语句,这些提示语句中可能会包含一些如bandhandv4,easynegative embedding关键词,我们只需下载好对应的embedding文件,然后使用这些固定的惯例提示语句即可,这样stable diffusion绘制出来的图片就能减少很多意外画崩的情况。

我们上面演示的embeddings都是在负面提示词里使用,也有一些在正面提示词里使用的embedding,比如C站上可以找到一些与特定人物相关的embeddings,这些embeddings的触发词则是放在正面提示词里的。

我们使用过滤器进列出embeddings,并且选择most liked排序,

排在最前的是我们刚刚介绍的一些最常用的embedding,还有一些在正面提示词中使用的embedding,比如Pure Eros Face纯欲风embedding,该embedding可以引导stable diffusion绘制纯欲风的人物图像。

二: Hypernetwork

Hypernetworks是stable diffusion中的另外一种训练方法,通过Hypernetworks训练,可以得到一个新的神经网络模型,该模型能够向原始扩散模型中插入合适的中间层及对应的参数,从而使输出图像与输入关键字指令之间产生期待的关联关系。其生成的模型结构通常都很小,基本都低于200Mb。

我们在C站上使用过滤选项后可以列出可供使用的Hypernetwork。

我们用Chili Style这个hypernetwork做一下演示。

下载后将文件放知道stable diffusion webUI程序主目录model文件下的hypernetwork目录中,

stable diffusion webUI图片绘制页面点击反向提示词下方的hypernetwork标签页,可以看到安装好的embedding项,点击对应的项目,将自动添加引用指令到到输入框,

我们选择合适的模型,增加一些正向提示词:

emoji, simple background, 1girl, solo, full body, white skin, outline, iop, pointy ears, orange hair, medium hair, closed eyes, open-mouthed smile, freckles, evil smile, dynamic pose, happy emotion, warrior ,

反向提示词:bad-artist, energy, (turn pale), blue face

点击生成,可以看到stable diffusion绘制的是独特风格的图片。

Hypernetworks实际上类似于间接版的LoRA,而通过训练一个神经网络再去生成LoRA参数这种间接方式实现的效果往往并不是最有效或最优的,所以Hypernetworks目前使用已经比较少。

好了,本节课的课程到这里就结束了,我们做一下总结,本节课程我们讲述了另外两种控制图像输出特征和风格的方法---embedding和hypernetwork,embedding在实践中会经常使用到,尤其在反向提示词中,我们会经常使用一些embedding来避免图片出现不适合的元素。hypernetwork目前在实践中使用已经很少,大家了解其基本使用方法即可。

我们通过前面几节课程的讲解,相信大家已经能很好地使用stable diffusion绘制出优秀的图像,后续的课程,我们会重点讲解stable diffusion中控制图像输出的一项重要手段---ControlNet,ControlNet的引入可以使stable diffusion的图像控制能力大幅提升,也是stable diffusion走向实际生产应用的关键。


原文地址:https://blog.csdn.net/HuggingAI/article/details/143803427

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!