stable diffusion制作肖像画的研究报告 您所在的位置:网站首页 动漫肖像画 stable diffusion制作肖像画的研究报告

stable diffusion制作肖像画的研究报告

2023-06-13 09:58| 来源: 网络整理| 查看: 265

我在11月开始探究stable diffusion,到现在应该已经20多天。一开始也像大部分网友一样,去琢磨文字转图片的玩法,之后就开始探索AI在绘画人像领域的实用性。

简而言之,是输入人像照片,让AI去输出肖像画。(使用img2img功能)让AI生成好看的图片不难,生成与输入照片像(指人物的五官,脸部特征相似)的肖像画比较有难度。的这篇文章记录了我摸索出来的一些想法,供网友们参考,有不足之处,还请谅解。

 

主要分为三个板块,蒙版,dreambooth训练,融合权重。主要记录了探索的三个方向,其中dreambooth训练是核心思路,效果最好,网友们可以挑选章节阅读。

 

我想先阐述一下为什么脸部不像,最主要的原因是使用的权重的训练库都是偏欧美的图像,用在其他人种上就会出现生成的五官偏向欧州人的结果。

另外,我也想稍微阐述下,我认为stable diffusion目前结合风格与人物是有极限的,即保留画风的美感和保留人物五官特征是有一个极限的。想要继续突破,可能需要新的训练算法(针对人物五官特征)或者新的图像AI。下面我会详细阐述。

(这里我推荐一个权重(ckpt文件格式权重),埃尔登法环风格权重,制作良好、不会出现拟合不全,风格也较为古典优雅,与油画效果结合良好。接下来的介绍都将使用这个权重。

链接:https://huggingface.co/nitrosocke/elden-ring-diffusion/tree/main)

 蒙版

首先是蒙版法,为什么把这个方法写在最前面,因为这个方法是门槛最低,也是我最先想到的。网友们在不方便训练时可以使用这个方法。

具体思路很简单,首先用低scale(低文本相关性) 和低Denoising strength (高图片相关性)生成一张相似的图片,然后用蒙版覆盖脸部,再用较高的scale值和高Denoising strength值去生成周边的图像。以此达到脸部较像的目的。

缺点是第一次生成的部分可能会与第二次生成的部分存在画风偏差的情况。

下面用一个例子来解释。

首先用女生的图片生成一个高相似度,低修改的图片,可以看出AI没有生成新的元素,甚至四周的的物品展现出照片质感

 

然后用ps扣出脸部,生成一张脸部黑色其余白色的蒙版图,也可以将脖子一起抠出,这取决于你们的想法,我建议可以都尝试一下。

可以添加一点羽化

对了,你还可以使用webui中的蒙版画笔,但是我不推荐你这么做,精度低,一次性(如果下次同一张图还要重新涂)

最后使用较高的scale值和Denoising strength值(大约7-15的sacle值,和0.2-0.5的Denoising strength值)生成风格鲜明的周围图像

效果还是可以的

放大可以看出,尽管关键词和ckpt权重都没有更改,但是仍有画风差异,提高羽化值可以减淡边界的割裂感,但可能无法解决整体画风不同带来的观感差异

 Dreambooth

接下来我要介绍一下使用breambooth训练来生成新权重,使用新权重来微调肖像的方法。

整体思路并不复杂,我们用目前的权重和一些照片进行训练,先用新权重或原权重(都可以,略有差异,后面我会详细展开)生成一张高度风格化的肖像,之后切换新模型,并在提示词中加入我们训练的人物标签,使用较低的参数值(scale,Denoising strength)进行微调,AI在绘制人物时,会着重绘制脸部,所以我们可以看到只有脸部被微调。

首先我们准备一些女生的照片作为训练样本,我认为多角度,光线多样的照片更有利于训练,官方建议的图片数量只有10张,但是你可以用较多数量的图片,然后加大训练步数

我使用了约150张,相机直出的原图进行训练,步数我试了3000步的效果不错,1500的效果也很好,学习率是1e-6(较低,训练时间会稍长),bantchsize为2

注意,步数不是越高越好,过高的步数会产生过拟合的现象,表现和拟合不全类似,详见下面文章,我就不放案例的过拟合样本了,后果会很严重。

在这里,我给网友们提供一篇文章里提出的,一位研究者认为的优秀参数值

1200step,学习率2e-6,bantch size:2  文章链接:

Training Stable Diffusion with Dreambooth – Weights & Biases (wandb.ai)

 

我先解释一下为什么不直接一次性生成肖像,这里就牵扯到了stable diffusion的混合能力的问题了。我们可以先看到,训练完成后的权重在五官上确实会更偏向亚洲和本人的五官分布,并且效果融合得不错,相比起原来的权重效果明显。

 但是这里存在一个矛盾,那就是如果我们将风格值调高,去生成风格鲜明的画,那么出来的图片可能会过于凸显本人的细节,反而丧失了一些美感。在我的尝试下,一次生成结果并不算特别理想,而且二次生成给了我们修改优秀输出样本的机会。

 那么这里我们先用较高风格化的参数调整进行生成,可以看到,有点是显而易见的,首先,AI有更多的空间进行发挥,也就意味着有更多的细节与惊喜(头饰以及衣服)

 这里我想提一个我观察到的观点。当我们训练一个人物或者物体时,影响的会是整个权重的生成风格,只是当带上人物标签时,影响力会最大化。当我们不带上人物训练标签,用完全一样的提示词和参数去生成图片,原版的权重会更显得欧美并且风格更凸显。(这就是上面我说可以用原版权重也可以用训练后的权重的原因,取决于你的想法。)

下方的图我使用训练后的权重生成,我没有带上人物训练标签,但出图还是偏亚洲化。

选择一个周围服饰以及整体氛围较好的图片,用较低的参数进行二次微调

 这里我没有给人物标签很高的权重,这里又涉及到了我刚才提到的stable diffusion 的结合能力的问题了,给人物标签很高的权重会影响风格美感,甚至产生画风差异。

每幅画,每个训练权重都不一样,并且每个人的要求审美不同,自然这个界限也就不一样,需要多尝试。希望网友们能多多探索,互相分享经验。

 

接下来,我想讨论一下目前我所遇到的一个问题

这里我在这里给出一个案例。

 

 在这张图中,AI基本完成了我所要求的保持“像”和有艺术感的特征。但是不难发现,AI更偏向于去重新塑造一个它所理解的标签人物,通常会失去人物当时的微表情和神态。算是一个目前难以解决的问题,但是可以靠添加标签和大量出样本来微调。

 

同时,还原人物脸部特征,还要根据不同脸部状态来决定,比如有遮挡的情况下,就比较难以二次微调。同时,脸部表情较复杂的情况下,也大有可能失去一些表情和神态。

 

 

但是在场景较为简单,光线和表情都不复杂的场景下,AI还是能比较好地完成任务。训练后的模型与原模型的效果提升明显。

 

那么breambooth训练法我就介绍到这里,具体的参数和训练参数因为实在很多而且复杂,我没有一一列举,实属抱歉。网友们感兴趣的话可以评论区讨论,我会很乐意分享我的经验(如果我还记得的话)

不过出于探究目的,我的提示词都比较固定,变的大多数是scale和Denoising strength值

我目前所用的提示词(有进行小修改,大体如此)

portrait of a beautiful women highly detailed,((elden ring style)),Classical oil painting, elden ring style dark blue night ,cliff dark night ,8k, female, ((perfect femine face)), intricate,sharp focus,Holy and kind, in heaven andthe sun shines everywhere,[Fairy princess],The background is a hazy sunset,((oil painting)),Monet,(Oriental beauty),[[[[[[[[人物训练标签]]]]]]]]

 

训练步数1200-3000步,训练照片数量:150张左右,分辨率768x768,bantch-size:2

学习率1e-6或者2e-6,训练的prompt词和class图的prompt词都比较简单,基本为xxx gril和asian gril

训练平台:NVIDIA A100 80GB

 

 融合

接下来我想讲讲融合法,关于这个方法,由于融合实在过于暴力,感觉十分玄学。笔者也是没有办法穷尽,我在这里稍微讲一下我遇到问题和一些进展。

 首先融合模型,在我的尝试中,会相对比较容易遇到逻辑错误

 

在一张较为失败的样本中,我们可以看到,皮肤出现了一些斑线,同时头发的处理也出现了一些逻辑错误。

我认为造成这样的原因除了融合是比较暴力的结合外,我认为融合不是简单的加在一起,而是互相拆封再结合,两个2GB的模型结合生成的模型还是2GB。同时,融合不是训练,不需要大量算力,笔者认为容易有逻辑错误也是正常的。

我分别使用了训练后的模型和novel ai模型进行融合,结合的比例从30%到70%都有

有时会产出比较优秀的结果,但有时候会比较混乱。

简而言之,笔者认为标签的权重和训练步数有关,比如训练1200步,可能不用加多少[ ]方括号(减少比重)就可以比较好地生成。但如果训练3000步,那么就需要加多个[ ]方括号保证其他画风能够存在。

对于融合模型,这个问题会更加混乱。每次融合都是一次新的开始,不仅要面临出片率的问题。还要重新寻找训练标签的比重才能比较顺利地进行出图。

 

在研究融合模型时,笔者认为自己也是摸爬滚打着来的。在这里给出一个比较好的案例,以及后续使用建议

我是用red shift权重先进行训练人物,再结合了50%的novel ai权重。由于结合了novel ai,可以明显看出和一些原画风格有趋同性。笔者不是非常喜欢这样的风格。这张图是大量尝试后才生成的图,时间成本较高。

如果你希望融合不同的风格(比如埃尔登风格和novelai)

或者希望在短时间内尝试训练的人物在不同风格下的表现,可以尝试融合模型

在使用融合模型时,笔者建议混合novelai等大规模成熟权重,以此降低逻辑错误的出现概率。

有人可能会问,为什么不试试用训练后的模型来txt2img(文本生成图片)。笔者尝试过了,会高度依赖提示词,我尝试的效果也没有特别好(AI天马行空的出片率可能会很低哈哈),便没有深入研究。当然这是没有标准答案的,欢迎大家踊跃尝试并交流。

 

以上便是我的介绍内容,我认为AI的潜力是巨大的,目前成熟风格的权重不多。如果成熟的风格权重多起来,那么AI生成图片的实用性将会大大提升。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有