五种Stable Diffusion模型训练方式对比

AI教程 2024-04-16

 Checkpoint、VAE、embeddings、 LoRa、hypernetwork是五种不同训练Stable Diffusion模型训练方法。

他们都可以用来训练Stable Diffusion模型,但之间又存在差异,究竟选择哪种训练方式,进行对比之后可选择出合适的。

image.png

一、 Checkpoint

 Checkpoint简介

对于模型作者而言,训练模型通常指生成 Checkpoint 文件。这些文件包含了模型参数和优化器状态等信息,是训练过程中定期保存的状态快照。

对于使用者而言,可以将 Checkpoint 文件理解为一种风格滤镜,例如油画、漫画、写实风等。通过选择对应的 Checkpoint 文件,您可以将 Stable Diffusion 模型生成的结果转换为您所选择的特定风格。需要注意的是,一些 Checkpoint 文件可能需要与特定的低码率编码器(如 Lora)配合使用,以获得更好的效果。

image.png

在下载 Checkpoint 文件时,您可以查看相应的模型简介,通常作者会提供相应的文件和说明事项,以帮助您更好地使用和理解该文件

在webui打开时新添加了模型文件,点一下刷新就可以。模型没加载好就生成图片,可能会导致报错。

Checkpoint分类与下载

Checkpoint按画风可以分为三类:

image.png

官方发布的Stable Diffusion1.4/1.5/2.0/2.1等模型效果都比较一般,因为有版权的约束。现在大家用的比较多的,都是私炉模型(大家一般把训练AI模型叫做炼丹,因为很多不可控)。

目前主流的模型下载网站有:

Hugging Face:点击上方models选项卡,左侧标签选text-to-image就可以看到文生图模型了。

Civitai(魔法) 、libilibi

 VAE(变分自解码器)

VAE负责将加噪后的潜空间数据转为正常图像,可以简单理解为模型的调色滤镜,主要影响画面的色彩质感。目前大多数新模型在文件中已经融合了VAE,还有一些作者会在model card中推荐合适的VAE。

VAE文件后缀一般是.pt,或者是.safetensor,存放路径是。还有一种自动加载特定模型VAE的方法,是将VAE文件也放在models/Stable-diffusion文件夹下,然后将文件名改成和模型名一致,再在后缀.pt前添加.vae字段,这样就可以在加载模型时选择自动加载VAE了。

image.png

embeddings

在C站或者liblibai网站上,embeddings用Textual Inversion标签来筛选。

badhandv4:触发词badhandv4

EasyNegativeV2:针对二次元模型训练的,解决肢体混乱、颜色混杂、灰度异常等等一系列负面问题,触发词easynegative。

Deep Negative V1.x:针对真人模型训练的。解决包括错误的人体解剖结构、令人反感的配色方案、颠倒的空间结构等等问题。触发词NG_DeepNegative_V1_75T。

CharTurnerV2:基本句式A character turnaround of a(X)wearing(Y)。这段tag越靠前权重越高,还可以加上Multiple views of the same character in the same outfit来达到同一角色服装多个视角的效果。单独使用效果不好,配合人物转身lora——CharTurnerBeta - Lora效果更好。

在 Stable Diffusion 中,embedding 技术可以被理解为一种组件,它可以将输入数据转换成向量表示,方便模型进行处理和生成。如果说checkpoint是一本厚厚的字典,可以查询许多的条目(关键词)进行生成,那么embeddings就像一个高效的索引,可以指向特定的内容;而LORA就像字典中的一张彩页,指向特定内容更加具体(包含的信息更多)。

举个例子,如果我们想要生成一个开心的皮卡丘,通常需要输入很多描述词,如黄毛、老鼠、长耳朵、腮红等等。但是,如果引入皮卡丘的 embedding,我们只需要输入两个词:皮卡丘和开心。皮卡丘的 embedding 打包了所有皮卡丘的特征描述,这样我们就不用每次输入很多单词来控制生成的画面了。

在日常使用中,embedding 技术通常用于控制人物的动作和特征,或者生成特定的画风。相比于其他模型(如 LORA),embedding 的大小只有几十 KB,而不是几百兆或几 GB。虽然还原度对比 lora 差一些,但在存储和使用上更加方便。

总之,使用 embedding,我们可以更加轻松地生成符合预期的样本,而不需要手动输入大量的描述词汇,下面推荐几个常用embedding。

 特定人物形象(含tag反推)

比如liblibai网址上的Corneo's D.va,训练的是守望先锋里的人气角色D.va,下载后存入stable-diffusion-webui/embeddings文件夹,然后在prompt中使用特定的提示词进行激活。

在这个embedding的medel card里会,作者说激活词是corneo_dva,推荐权重推荐0.9到0.95,所以我们可以写(corneo_dva:0.95) 。另外提示词中加入人物描述,生成会更准确。所以我们上传一张作者的展示图,先反推tag,再填入prompt。

在图生图中,反推一张照片的tag有CLIP和DB两种算法,后一种更快更准。识别后进行一次筛选,只保留准确的描述词就行。

image.png

如果嫌手动筛选太麻烦,可以打开tigger标签栏,使用tigger插件进行反推。上传图片后,反推的提示词会显示其置信度,其中还有一个sensitive表示安全评分。我们可以手动设置置信度阈值0.8,再点一次反向推导,就只保留置信度>0.8的提示词了。

image.png

人物反转

前段时间,网上有很多非常精致的3D人物形象的例子,就是通过CharTurner这个embedding实现的。这其实就是把几个不同朝向的人物并列的图片进行训练得到的。作者在model cord中给出了基本启用句式:A character turnaround of a(X)wearing(Y)。这段tag越靠前权重越高,还可以加上Multiple views of the same character in the same outfit来达到同一角色服装多个视角的效果。prompt中可以启用多个embeddings,效果需要自己把握。

image.png

CharTurner这个embedding还是有很多缺点,在人物细节和转身动作上无法准确把控这一点在后续LORA中可以部分解决,例如CharTurnerBeta - Lora的转身效果更好,还可以和embedding配合使用。

 解决bad case

直到现在,Stable Diffusion生成的图片还是容易画错手脚的情况,甚至是多手多脚。C站上排行较高的几个embedding可以解决这个问题,这些embedding记录了一系列AI画错的方式,整合后放入负面提示框中进行激活,一定程度上避免了上述画错手脚的情况。

badhandv4:触发词badhandv4

EasyNegativeV2:针对二次元模型训练的,解决肢体混乱、颜色混杂、灰度异常等等一系列负面问题,触发词easynegative。

Deep Negative V1.x:针对真人模型训练的。解决包括错误的人体解剖结构、令人反感的配色方案、颠倒的空间结构等等问题。触发词NG_DeepNegative_V1_75T。

 LoRa

以下是几个我喜欢的lora:

Adjuster 衣物增/减 LoRA:可实现衣物增减

Detail Tweaker LoRA (细节调整LoRA):用于在保持整体风格/特征的同时增强/减少细节;它适用于各种基本模型(包括动漫和现实模型)/风格 LoRA/角色 LoRA 等,权重±2

Polaroid LoRA:拍立得LORA,不带白色边框、只保留拍立得照片质感的模型。

CharTurnerBeta - Lora:触发词charturnbetalora,权重建议0.2到0.4,配合CharTurnerV2 embedding效果更好。

娜乌斯嘉角色lora、墨幽角色LoRa、FilmGirl 胶片风 LoRA、现代修仙传lora、国风未来lora、汉服唐风lora

LoRa简介

LORA 与 embedding 在本质上类似,因为携带着大量的训练数据,所以 LORA 对人物和细节特征的复刻更加细腻。

LORA激活方法:<lora:lora_filename:weight>,其中,lora_filename就是你要启用的LORA文件的文件名(不含后缀),例如<lora:CharTurnBetaLora:0.3>可以启用人物转身LORA CharTurnerBeta。有的LORA还有触发词,表示作者根据这个tag进行了加强训练,二者同时启用可以加强效果。

image.png

LORA 模型对应的底模和触发词汇,在 LORA 作者给出的model信息中可以获得。

需要注意的是, LORA 训练的图源复杂,所以一般会对画风造成轻微影响,可以通过降低其权重来抑制。权重设置越大,对画风的影响因素就越小,通常情况下,权重应该控制在 0.3-1 之间。

为了获得最佳效果,我们可以根据不同的 LORA 模型选择适当的提示词和排除词,并在设置权重时进行调整。同时,我们还可以参考其他作者的经验和技巧,以便更好地利用 LORA 生成图像。

扩展模型加载

我们点击文生图下面红色小按钮,就可以显示扩展模型选项。

这些模型默认没有预览图,你可以加载之后跑一张图片,然后点击用当前生成图片替换预览图。配置完之后,会在模型文件旁边生成同名的图片,不想要可以删除。也可以选择一张图片改成和模型一样的名字,刷新后就自动成为模型封面图。

在设置——扩展模型中,可以设置一些细节。比如设置模型展示方式是卡牌还是缩略图,卡牌宽高尺寸、LORA模型加载权重等等。

addition network加载

github地址:sd-webui-additional-networks

前面几种方式加载的LORA都会明确写在提示词中,这样在图片分享时,这部分内容是可见的。还有一种加载方式,用于多个LORA同时使用的情况。点击页面下方的addition network,就可以启用最多五个LORA,并分别配置权重。

通过addition network,默认读取的是在extensions-addition-network-models-lora文件夹下的LORA文件。我们可以在settings-addition network下,第一行设置其读取路径为lora默认的安装路径。

addition network加载LORA的方式是和提示词完全独立的,所以提高了提示词的阅读性,缺点就是分享时,这种方式加载的LORA信息不会被显示出来。所以有些网上比较满意的图片,copy参数信息后无法完美还原,就可能是作者使用了这种方式加载了LORA文件。

addition network还为LORA扩展了蒙版功能,使其可以作用于图片的特定区域,后续再补充。

LORA实际应用

LORA的具体应用,可以分为以下五种:

image.png

人物角色lora:推荐权重0.7-0.8。

以lucy这个LORA为例。我们先用封面图进行tagger反推,然后直接文生图,即使描述如此详细,AI也无法还原一个准确的lucy形象。而加入lucy这个LORA ,马上就像了很多。因为这个LORA就是用很多个lucy的角色图训练的,传递信息更加准确。

比如我们反推的提示词里有白夹克,但世上有无数款白夹克,AI并不知道要绘制哪一种。而提供了LORA后,AI就可以提取其中的关键信息,进行准确的绘制了。

使用真实系大模型+动漫角色LORA,就可以得到一个真人coser形象。结合后续要讲的controlnet,=还可以设计角色的姿势及构图,定制自己跌作品。

风格lora(art-style):权重0.2-0.3,过高会让角色LORA失去一些原本的特征

以C站很受欢迎的fashion girl为例,作者使用100个符合他审美的时尚女孩照片进行训练的,可以使生成的女性角色更符合审美,触发词为fashi-girl、red lips、mature female、makeup。类似的还有FilmGirl 胶片风、花想容/Chinese style等等,可以实现自己喜欢的风格。

画风lora:推荐权重0.2-0.4

例如Ghibli Style LoRA,叠加使用触发词ghibli style,可以实现吉卜力工作室(宫崎骏)的画风,这种画风可以概括为绘本化的角色设计,水分质感的丰富色彩、精美细腻的背景场景。

concept(概念)lora

以Gacha splash LORA举例,这个是使用抽卡游戏中抽卡时的精美立绘来训练的,使用这个LORA之后,生成的图片也会有这种抽卡立绘的风格。这种概念型的LORA对提示词的书写要求更高,使用之前要熟读model card,并参考作者的示例图信息。类似的概念LORA还有塔罗牌、mugshot lora(档案照片)、国风未来等等。

服饰lora:权重太高容易出现人体缺失的情况,因为这种lora是根据衣服来训练的。

比如想生成机甲风格的作品,搜索mecha就能出现很多机甲风lora,比如机械风暴lora、镭射服holographic clothing、汉服唐风lora等等。

最后,当你想强化作品中某种方面的特质时,可以叠加使用多个同类型的lora,例如使用多种机甲lora来生成机甲风图片。具体使用时,你可以通过控制不同lora的权重,使得作品更像某一种lora。

 object:特定元素,这种可以实现产品设计、产品蓝图等。

局部重绘+lora

进阶用法,是使用局部重绘的方式引入到图片中。比如给一张科技感的少女图片加上头盔,我们可以将生成的图片进行局部重绘。我们涂上头部部分,并向外多涂一部分,给AI充分一点的创作空间,然后选择头盔lora进行局部重绘。重绘方式有两种:

全图重绘:这时候可以全图重绘,大部分提示词和参数不变,只增加头盔lora相关提示词、触发词)

蒙版重绘:去掉之前内容词,只保留lora相关的提示词、触发词,这样重绘结果会更精确。

这样做有什么好处呢?因为头盔lora这种只涉及画面的很小一部分,如果硬要施加到全图范围,有一定概率会干扰大模型生成优秀的画面,这时,局部重绘就成为一种优秀的单独解决方案。这种画大图不加lora,画局部加lora的方式,可以用于服饰、产品等等其它lora的应用中。

hypernetwork

hypernetwork的效果和LORA差不多,区别在于, hypernetwork一般用于改善整体的画风,比不同checkpoint之间的画风更细腻一点,例如区别不像真实模型和二次元模型那么大的画风差别,而类似梵高和莫奈之间的小差别。

以WavenChibiStyle为例,是一种Q版可爱的画。使用方式是点击设置标签栏,在左侧附件网络中选择加载超网络下拉菜单中的超网络模型,然后保存设置就可以了。我们维持人物设置不变,删去所有场景词,使用纯色背景,分辨率为正方形,生成一张图片。

image.png

目前, hypernetwork的作用可部分被LORA取代,而其生成效果没有LORA那么好,但需要生成特定风格的画面时,hypernetwork亦依然是一种选择。

最后,装了tag complete这个补全tag的插件之后,输入<e,<l,<h,还可以自动识别加载已经安装的embedding、lora、hypernetwork等,非常方便。

@版权声明:部分内容从网络收集整理,如有侵权,请联系删除!

相关文章