AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?

SD入门教程8个月前更新 wanglu852
40,265 0 0
广告也精彩

如何判断AI绘制的图片:

  • 观察绘画技巧和细节:AI生成的图像通常会出现一些不太准确或奇怪的细节,如画不好手。

Checkpoint检查点模型(大模型)

  • 它是如何发挥作用的呢?很简单,打个比方,你通过提示词和AI说“我要画一只猫”,它就会去检索模型里和猫有关的信息,找到关于猫的形象细节,然后给你画出来。AI在本质上和人一样,它的所有智慧来源于人类给它输入并学习的知识。它也不是一开始就认识猫这个概念的,而是先通过深度学习去学会了它。这个过程有点像是在小学的课堂上,老师讲了一个生词生字,你就吭哧吭哧地去翻书、查字典,找到它对应的含义,然后大声朗诵出来,一样。

  • 在这个过程里,Checkpoint是最大的一个模型,就像是一本厚厚的新华字典一样,记录的信息是非常大而全的。在他的支持下,你可以放心地通过提示词向你的AI描述各种奇奇怪怪的东西,它都能查到,都能给你呈现出来。

  • 除了Checkpoint以外,Stable Diffusion利用扩散模型进行了图像生成,中还有其他几种更专业更高级的小模型,在做的过程中发挥着巨大的作用。这其中包括这节课里会提及的Embedding LORA和HyperNetwork。他们是对于初学者而言最容易接触这种小模型形式,学会在Web UI中运用这些不同类型的模型,你可以轻松实现正片特定人物的创作、画风的自由切换,甚至是角色设计、三视图的绘制,还能轻松解决包括一开始提到AI不会画手在内的一系列难题。

Embedding模型

  • 首先来说说Embedding模型。Embedding这个词直接翻译成中文叫做“词嵌入”。在C站一类的模型网站上使用标准进行筛选时,他们也会以另外一种形式被表达,就是“文本倒置”(Textual Inversion)。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?
  • Embedding文件非常非常非常小,小到可能只有几十KB。这恰好就是Embedding文件的精髓所在。如果说Checkpoint是一本大字典,那么Embedding就像是上面的一片小书签,他能够精准地为你指向个别字词的含义,从而提供一个极其高效的缩影。

  • 这种索引方式除了能帮AI更好地画好字典里已经有的东西以外,有时候也可以帮我们实现特定形象的呈现。例如,我们想让AI画一只猫又,字典里虽然没有直接记载猫又这种比较偏僻的概念,但他知道猫怎么画,知道人怎么画,也可能知道妖怪怎么画。那我们就在字典上既有这些概念的页面里,分别夹上一片醒目的书签,那它一听到网友就直接翻开这页,把里面的信息汇总在一起,就知道猫又是个什么东西了。

  • 如果你理解了这个过程,那Embedding为什么这么小其实也不足为奇了,因为它本身不包含信息,只是一个标记而已。Embedding在深度学习领域的全称叫做嵌入式向量。向量在数学里的含义就是一个带有方向指向性的量,这一点和我们提及的它的作用是完全吻合的。

  • 这样解释起来似乎平平无奇,但如果你知道了它能在AI绘画中帮到你什么,你一定会对这个几十KB的小模型刮目相看。

  • 首先,Embedding可以为我们指向某一种特定的形象。C站上就有很多基于特定动漫角色形象训练的Embedding。我们来挑选一个尝试一下,顺便梳理使用Embedding的基本方法。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?

  • 这个Embedding训练的是游戏《守望先锋》里的人气角色D.Va。下载下来的Embedding文件后缀一般和VAE一样,是.PT的。它需要被放在Model文件夹Embedding文件夹里。

  • 在Web UI中,Embedding不需要特别调用,你只需要在提示词里用特定的咒语去召唤它,就能启动。我们刚刚说的那个按书签翻字典的过程,一般它们的Model Card里都会标注,像这个Embedding,你只需要在正向提示词里输入这个“corneo_dva”。作者还有一些小提示,为了防止过多呈现,我们可以把权重设置在0.9或0.95,并控制相关性在11以下。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?

  • 接着,我们结合其他内容性标准化提示词来画图。这里来做一组对比实验,首先我们不带这个Embedding的相关机致词,使用的其他提示词描述都是非常宽泛的,先这样出一张图。画出来的场景很美人也很精致。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?

  • 此时我们固定住随机种子,加入Embedding的关键咒语,再来一张看第一把,身上的一些关键特征已经被呈现到了画面上了。如果你想进一步让它变得更像D.Va一点,其实可以加入更多的提示词,描述她身上本来有的一些东西。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?
AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?
  • 如果不会写提示词可以用反推,这里我有一个反推提示词的小技巧,我们可以把一张D.Va的图片导入到图生图里。在窗口的一侧,有一系列反推提示词的选项,可以识别图像里已有的成分,在总结成AI的字典里有的东西,来帮助你更准确地向AI描述一些东西。DeepBooru和Clip可以算是两种不同的图像识别算法,我更习惯用DeepBooru,因为它的速度和识别准确度都更具优势,几秒时间就识别出这么一大串来了。

  • 下次你不知道该怎么描述的时候,就让AI来帮帮你吧。你可以再对每次识别的内容做一做筛选,里面有哪些是准确的就保留,哪些不太对或者不是你想要的特点,就删掉、修改或者降低权重。完了以后再把它加在我们文生图的提示字后面,生成的形象就更加准确了。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?

  • 当然,它肯定没办法做到和真正的D.Va完完全全的像,因为Embedding到头来也就是个几十KB的小文件,也只是让AI去按图索骥而已。针对角色形象的创作,我们其实更习惯使用Lora去做,但对于一些更为广泛、容错率更高的形象概念,Embedding的表现会好很多。

  • 一个非常有趣的应用例子是这个CharTuner Embedding(三视图设计)。前段时间网上有许多非常精致的人物形象三视图设计,其实就是通过这个实现的。了解了原理,我们应该不难推测出,它其实就是把这种几个人物朝向并列的图片结构作为一种书签输入到了AI的字典里。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?

CharTuner Embedding(三视图)制作原理

  • 首先,Embedding的作者也给出了一个基本的提示词格式,
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?
  • 方便起见,我们直接套用刚刚做好的D.Va的描述来进行实验。前一个什么什么描述人物本身的特质,后一个着重描写服饰。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?
  • 一些标准化或内容性的提示词可以被保留下来。我添加了这一系列提示词,以及作者提供的一个描述句,来固定生成图片的格式。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?

AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?
– 你可以同时在一次生成里激活多个Embedding,它们不至于冲突,但其中产生的化学反应是要你自己观察的。记得开启高清修复,真的能让你的图片变得更加清晰且精致。生成一下,看是不是有角色设计的味道了呢?
– 当然,它还是有很多问题的,比如在人物细节的稳定性以及转身动作的具体幅度上面。但这些在后面我们接触的ControlNet、Lora等更为进阶的操作手法以后,都能得到更好的实现。

  • Embedding常常被我们用于解决AI绘画过程中的一个巨大的痛点:AI不会画手。其实AI不光不会画手,因为它是用扩散的方式来实现图像生成的,所以它对人的正常身体结构并没有一个完整的认知,说人话就是它笨,它只知道人有两只手、两只脚,有时候却不知道它们是怎么拼到一起的。

  • 目前C站上排行最高的Embedding都是为了解决这个问题而诞生的,它们记录了一系列这种AI画错了的方式,整合在了一起,用书签标记出来。如果你想让AI画正确的东西,那就只需要让它避开这些错误案例就行了。 我们来用一下试试看。

  • 以这个Embedding为例,按照一样的方式下载并加载到指定路径里。它同样也只需要一个提示词来激活,但这个提示词需要被放在负面提示词里。想要让AI画出错误的手也挺不容易的,但一些手部在画面中会作为创新重点的内容,就是翻车的重灾区了。看这幅的手是不是有点问题?问题还挺大的。

  • 此时我们把Easynegative加进去,赋予1.2的权重,不需要加任何额外的提示词。看手的问题就被修复了。实际上,Easynegative能解决的问题远不止多一只手或少几根手指,它是一种综合的全方位的、基于负面样本的提炼,解决的问题可能还包括肢体错乱、颜色混杂、噪点和灰度异常等。
    AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?

AI绘画StableDiffusion不会画或画不好手?仅需要加入Embedding模型,什么是Embedding模型?
  • 这类Embeddings也被称为Negative Embeddings(负面词嵌入),它可以取代我们之前加入的一系列负面提示词,也可以和它们一起用,对正面画面内容的影响不大。当然,我也不敢跟你打包票说它能解决所有的问题,因为实验的过程中有不少加了负面嵌入的图片也出现了手指的错乱。但你可以看到它呈现出来的手部质感其实已经好很多了。

不同的负面词嵌入效果不同

  • 例如,Easynegative是基于Counterfeit去训练的,作者测试了对大多数二次元模型都有效,而另一款DeepNegative则主要是针对真人模型来训练的。在使用的时候,你也可以根据需要自行选择。

Lora模型/低秩模型(Low-Rank Adaptation Models)

  • Lora的作用在于帮助你向AI传递描述某一个特征准确、主体清晰的形象。比如你可以跟AI说“帮我画一只小猪佩奇”。文本太长,我们下一期介绍。
© 版权声明
chatgpt4.0

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...
error: Content is protected !!