Stable Diffusion 生成具有一致性的角色面部
前言
AIGC(人工智能生成内容,Artificial Intelligence Generated Content)现在已经不可避免地成为大家日常讨论的热门话题,尽管目前不完善和有缺陷的地方还很多,但目前已经可以在很多方面进行辅助工作。比如在游戏开发领域,利用 AI 生成人物和场景已经不是什么新鲜事了,Stable Diffusion 和 midjourney 已经成为美术设计的两大利器。今天要介绍的是一个 Stable Diffusion 的使用技巧:如何生成具有一致性(连续性)的角色面部。
一致性的角色面部
一致性(consistent)在 AI 绘画方面一直是一个困扰的问题。我们可以生成无尽的图片,但是如果想要用到特定的项目中去,那么一致性就变得很重要:不管画面多么漂亮和复杂,角色的不同画面看上去应该是一致的。
其实有一个标准的方法可以比较容易解决这个问题,那就是自己训练角色模型,现在训练 LoRA(低秩微调模型)也很简单,数量不多的素材就能达到不错的效果。但很多时候其实我们就是在凭空生成人物,所以这个问题在一定程度上还是存在。
人们已经在这方面做了很多探索,比如尽可能地提供详细的 prompt(提示语),利用相同的 seed(种子)大量生成,做大量的 inpainting(重绘修复)——这些工作在某种程度上是有效的,但是角色面部的一致性一直也是令人头疼的一个问题。
比如我们使用一个如下的描述:
1girl, dress in red, upper body, studio light, light smile, brown hair, brown eyes, high quality,
批量出四张的话就会看到人物是不同的,当然可以添加更多的限定 prompt,但结果也是不尽如人意。
但是最近 AI 绘图的玩家们最近琢磨出一个新的玩法,可以实现面部的一致性。
其实原理很简单:AI 训练的时候对名人是有专门标注的,那么我们就可以通过混合不同的名人来实现面部的一致性。
[ Name1 : Name2 : percentage ]
其中 Name1
和 Name2
是不同的人名。 percentage
则是第一个人的权重,这个值(小于 1
)越大,则第一人权重越高(也与模型有一定关系)。
比如,我们混合一下泰勒·斯威夫特和盖尔·加朵,描述如下:
1girl, [Taylor Swift : Gal Gadot : 0.5], dress in red, upper body, studio light, light smile, brown hair, brown eyes, high quality,
结果就相当稳定了。
完整的使用了 Deliberate V2 模型的描述:
1girl, [Taylor Swift : Gal Gadot : 0.5], dress in red, upper body, studio light, light smile, brown hair, brown eyes, high quality,
Steps: 30, Sampler: Euler a, CFG scale: 10, Seed: 256599389, Size: 512x512, Model hash: 9aba26abdf, Model: deliberate_v2, Clip skip: 2, ENSD: 31337
下面是更换了不同模型的效果:
模型:iCoMix V03(不做面部修复)
看起来一致性都比较较强。
注意:如果混合不同性别的话,有一定效果,但是不稳定,因为特定名人的性别是固定的,所以建议不要这样做。
凭空造人
利用名人的面部确实效果不错,但是我们有时候也不太想这么去做,一方面有局限,另一方面也有潜在危险,所以如果能在直接生成不存在的人物同时还能保持一致性的话,就比较理想了。
AI 绘图的玩家们在后面的尝试中发现:其实我们只要给定一个不存在的(凭空创造的)名字,也能够实现面部的一致性。
比如,我们乱编一个名字叫做 Jauny Doey:
1girl, [Jauny Doey], ((dressed in detailed rusty silver armor)), upper body, studio light, medieval age armor, angry, black hair, brown eyes, high quality, ((battlefield background)), blurry background,
Negative prompt: helmet
Steps: 30, Sampler: Euler a, CFG scale: 10, Seed: 1151986892, Face restoration: CodeFormer, Size: 768x512, Model hash: 9aba26abdf, Model: deliberate_v2, Clip skip: 2, ENSD: 31337
就可以生成这个独特的角色:
怎么样,看起来还可以吧?
注意:因为人物并不存在,所以在不同模型中的表现就会不同了。
接下来是一致性衣服。。