embedding
本系列博客笔记主要参考B站nenly同学的视频教程,传送门:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili
除了大模型和VAE之外,SD中还有embedding模型和lora模型,这两种模型体积都很小,他们对于画面的调节能力不和大模型一样,但也可以实现画风改变和特殊物品形象的精确定义,本文将带你了解emdedding。
在Stable Diffusion(SD)环境中,Embedding
(嵌入)是一种用于微调模型以理解和生成特定概念或风格的技术。这种技术通常涉及训练模型来关联特定的文本提示与视觉表示,使得当模型接收到这些提示时,它能生成与之相关联的图像。比如说我们要画一个猫又,大模型中有关于猫、人、妖怪的信息,但是AI并不知道猫又的具体概念,我们添加一个“猫又”的embedding,就相当于在大模型这一本字典中,给猫、人、妖怪这几个描述添加书签,让ai在看到猫又这个词的时候,就去找这几页信息,并将其汇总起来,这样就可以画出猫又了。embedding体积小的秘密也在于此,因为它本身并不需要描述猫又是什么,它只需要记录一些标签信息即可。
embedding的存放位置为SD根目录下的/embeddings
,embeddings需要使用特定的“咒语”进行召唤使用,通常在下载的model card中有提供
特定形象
就像上面提出的例子,embedding可以帮助我们快速实现找到合适的物品或人物形象,在实际使用中,可以精确到某个具体的人物,比如在C站中我们可以找到一个守望先锋中D.VA的embedding
下载好后,在使用的时候,我们需要注意一下embedding不像大模型一样需要特别调用,但需要注意model card中给我们提供的参考激活词,只需要在提示词框中写入激活词即可使用embedding。
在model card的下方也会给出更详细的参数设置建议
【示例】在相同的参数下和随机种子下,对比添加embedding和没有embedding的效果
masterpiece, 1girl, brown hair, brown eyes, smile, standing, dynamic pose, outdoors, city background, (masterpiece:1,2), best quality, highres, original, extremely detailed wallpaper, perfect lighting,(extremely detailed CG:1.2), drawing, paintbrush,
Negative prompt: NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit,bad hands, missing fingers, (((extra arms and legs))),
Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 4195426981, Size: 500x500, Model hash: 038ba203d8, Model: 二次元:AbyssOrangeMix2_sfw, Clip skip: 2, Version: v1.5.2
上述描述我们使用的都是非常宽泛的描述,在生成D.VA的时候,我们除了激活词之外,还可以使用更多有关D.VA的角色信息描述,如果不会描述的话,我们可以使用提示词反推工具,在图生图界面的右侧,有一些根据图片反推提示词的方法,你只需要导入一张dva的图片,然后反推得出其中的提示词,再使用这些进行文生图就会得到更好的效果。推荐使用DB,速度更快。AI反推得出的提示词并不准确,我们应该筛选合理的内容。
让我们给文生图添加上这些筛选后的反推的提示词时,得到的效果就更好了
1girl, d.va_\(overwatch\), headphones, bodysuit, solo, long_hair, hand_on_hip, brown_hair, breasts, facial_mark, pilot_suit, brown_eyes, animal_print, cowboy_shot, bangs, medium_breasts, white_gloves, bunny_print, swept_bangs, white_background
错误肢体负面embedding
embedding还可以帮助我们快速地使用一些形式化固定好的提示词,如经常使用到的一些负面提示词,在每次作画时都一样。
比如非常火的badhand可以用于解决AI不会画手的一大难题,可以理解为这个embedding是一个常见错误手部合集,你只需要将这个embedding在负面提示词中激活就可以省去每次自己写负面提示词的功夫,但是注意阅读作者给出的介绍,有一些embedding相关的参数设置和模型推荐。