当前位置:   article > 正文

StableDiffusion模型下载使用_stable diffusion模型

stable diffusion模型

一、模型的概念

首先要了解 Stable Diffusion 中的模型概念是什么?维基百科对模型的定义非常简单:用一个较为简单的东西来代表另一个东西。换句话说,模型代表的是对某一种事物的抽象表达。 在 AIGC 领域,为了使机器表现出智能,研发人员使用机器学习的方式让计算机从数据中汲取知识,并按照人类所期望的方向执行各种任务。对于 AI 绘画而言,我们通过对算法程序进行训练,让机器来学习各类图片的信息特征,而在训练后沉淀下来的文件包,我们就将它称之为模型。

简而言之,模型就是经过训练学习后得到的程序文件。 不同于我们之前使用的资料数据库,模型中储存的不是一张张可视的原始图片,而是将图像特征解析后的代码,因此模型更像是一个储存了图片信息的超级大脑,它会根据我们所提供的提示内容进行预测,自动提取对应的碎片信息进行重组,最后输出成一张图片。当然,模型的实际运行原理要比这复杂的多,但作为使用者我们无需深入学习复杂的技术算法,了解其大概概念即可。

二、Stable Diffusion官方模型

你或许曾经产生过这样的疑惑:现在市面上有众多绘图模型,为何人们如此推崇 Stable Diffusion 官方模型?除了它本身能力强大外,更重要的是从零训练出这样一款完整架构模型的成本非常高。据官方统计,Stable Diffusion v1-5 版本模型的训练使用了 256 个 40G 的 A100 GPU,合计耗时 15 万个 GPU 小时(约 17 年),总成本达到了 60 万美元。为了验证模型的出图效果,伴随着上万名测试人员每天 170 万张的出图测试,没有海量的资源投入就不可能得到如今的 Stable Diffusion。这样一款模型能被免费开源,不得不说极大地推进了 AI 绘画技术的发展。

理论上,这么大成本训练出来的模型,绘图效果应该非常强大吧?但实际体验过的朋友都知道,对比开源社区里百花齐放的绘图模型,官方模型的出图效果绝对算不上出众,甚至可以说有点拉垮,这是为什么呢?

用 ChatGPT 来对比就很好理解了。ChatGPT 的底层大模型是 GPT 模型,包括出道即巅峰的 GPT3.5 和后来火爆全网的 GPT4,这些模型虽然包含了海量的基础知识,但并不能直接拿来使用,还需要经过人工微调和指导才能应用在实际生活中,而 ChatGPT 就是在聊天领域的应用程序。同理,Stable Diffusion 作为专注于图像生成领域的大模型,它的目的并不是直接进行绘图,而是通过学习海量的图像数据来做预训练,提升模型整体的基础知识水平,这样就能以强大的通用性和实用性状态完成后续下游任务的应用。

用更通俗的话来说,官方大模型像是一本包罗万象的百科全书,虽然集合了 AI 绘图所需的基础信息,但是无法满足对细节和特定内容的绘图需求,所以想由此直接晋升为专业的绘图工具还是有些困难。

Stable Diffusion 官方模型的真正价值在于降低了模型训练的门槛,因为在现有大模型基础上训练新模型的成本要低得多。对众多炼丹爱好者来说,只需在官方模型基础上加上少量的文本图像数据,并配合微调模型的训练方法,就能得。

三、常见模型

我们可以将模型简单划分为主模型和扩展模型两类。主模型是通过全面微调官方大模型得到的,包含了文本编码器、神经网络和图像编码器等基础模块。但全面微调的训练方式对普通用户来说比较困难,因此出现了扩展模型,比如 Embedding、LoRA 和 Hypernetwork,它们可以配合主模型使用,通过少量的文本图像数据和微调训练方法,实现不错的控图效果。

我们可以将主模型理解为一本面向特定科目的教材,而扩展模型则是针对教材内容进行补充的辅导资料或习题册。不同的模型训练方法和难度也会导致它们的出图效果有所不同。例如,Checkpoint 模型是通过微调整个网络参数来得到一个完整的新模型,可以很好地学习新概念,但训练成本较高,模型文件包也比较大,使用起来不够灵活。

1. Checkpoint

首先介绍一下Checkpoint模型,也称为Ckpt模型或大模型。Checkpoint在中文中翻译为检查点,因为模型在关键位置进行存档,类似于我们在游戏中保存进度,方便之后进行调用和回滚。比如,官方的v1.5模型就是在v1.2的基础上进行调整得到的。

Checkpoint模型常用的训练方法是Dreambooth,这项技术最初由谷歌团队基于他们自家的Imagen模型开发,后来经过适配被引入Stable Diffusion模型中,并逐渐被广泛应用。为了更好地理解各个模型之间的差异,我整理了以下示意图,展示了每种模型的训练过程。下面是Dreambooth训练模型的过程:

简单介绍一下Dreambooth训练模型的过程:

  1. 首先为训练样本添加N步噪声,得到“噪声图”。
  2. 接着为训练样本添加N-1步噪声,得到“样本校准图”,比“噪声图”稍微清晰一些。
  3. 将“噪声图”和由“关键词XXX”生成的文本向量输入到扩散模型中,得到“模型输出图”。
  4. 将“模型输出图”和“样本校准图”进行对比,并根据差异值微调扩散模型,直到它能够将“关键词XXX”和“训练样本”之间进行关联。
  5. 通过这样的训练方式,后续在输入“关键词XXX”时,模型就会绘制一张类似“训练样本”的图片了。

通过上面的训练过程可以看出,Dreambooth训练模型是通过微调整个网络参数来得到一个完整的新模型。因此,Ckpt模型可以很好地学习一个新概念,无论是用来训练人物还是画风效果都很好。但缺点是训练成本较高,通常从官方模型通过Dreambooth训练出一款Ckpt模型,预计需要上万张图片,并且模型的文件包都比较大(至少在GB级别),常见的模型大小有2G、4G、7G等,使用起来不够灵活。

需要注意的是,并非模型体积越大,其绘图质量就越好。在模型社区中有时会看到高达十几GB的Ckpt模型,但并不意味着这些模型就十分强大。因为除了通过Dreambooth训练,还可以通过模型融合的方法得到Ckpt模型,但如果作者没有对模型进行优化处理,融合后的模型中会夹杂着大量的垃圾数据,这些数据除了占用宝贵的硬盘空间外没有任何作用。关于模型融合的乱象是目前模型社区中不可忽视的问题,我会在文章结尾进行展开说明。

使用Checkpoint模型的方法也很简单,下载好模型文件后,将其存放

2. Embeddings模型

介绍完了主模型,下面我们再看看各种扩展模型,首先是最轻量的Embeddings模型。

虽然Ckpt模型包含的数据信息量很多,但文件包的体积动辄几GB,使用起来实在不够轻便。例如,有时我们可能只需要训练一款能够体现人物特征的模型,而每次对整个神经网络参数进行完整微调显得有些繁琐。这时就需要引入Embeddings模型。

Embeddings,又称嵌入式向量,在之前的文章中我介绍了Stable Diffusion模型包含文本编码器、扩散模型和图像编码器三个部分。其中,文本编码器TextEncoder的作用是将提示词转换成电脑可识别的文本向量,而Embeddings模型的原理是通过训练将包含特定风格特征的信息映射在其中。这样,在输入对应关键词时,模型就会自动启用这部分文本向量进行绘制。

训练Embeddings模型的过程,由于是针对提示文本部分进行操作,因此该训练方法被称为Textual Inversion。通常在社区中提到Embeddings和Textual Inversion时,指的都是同一种模型。

如果你之前下载过Embeddings模型包,你会惊讶地发现它们普遍都非常小,有的可能只有几十KB大小。为什么模型之间会有如此大的体积差距呢?类比来看,Ckpt就像一本厚厚的字典,里面收录了图片中大量元素的特征信息,而Embeddings就像是一张便利贴,它本身并没有存储很多信息,而是将所需的元素信息提取出来进行标注。在这个基础上,我们也能将Embeddings模型简单理解为封装好的提示词文件。通过将特定目标的描述信息整合在Embeddings中,后续我们只需一小段代码即可调用,效果要比手动输入要方便快捷得多。像我们平时头疼的避免错误画手、脸部变形等信息都可以通过调用Embeddings模型来解决,比如最出名的EasyNegative模型。

以守望先锋里人气角色D.VA为例。对于该角色,我们都有统一的外貌共识,比如蓝色紧身衣、棕色头发、脸上的花纹等。这些信息如果单纯通过提示词描述往往很难表达准确,而有了Embedding就轻松多了。可以看到调用了D.VA的Embedding模型后,即使是不同画风的主模型也都能实现比较准确的角色形象还原。

当然,Embedding也有自己的局限性。由于没有改变主模型的权重参数,因此它很难教会主模型绘制没有见过的图像内容,也很难改变图像的整体风格。因此通常用来固定人物角色或画面内容的特征。使用方法也很简单,只需将下载好的模型放置到Stable Diffusion安装目录下\embeddings 文件夹中,使用时点击对应的模型卡片,对应的关键词就会被添加到提示词输入框中,这时再点击生成按钮便会自动启用模型的控图效果了。

3. LoRA

虽然 Embeddings 模型非常轻量,但大部分情况下都只能在主模型原有能力上进行修正,有没有一种模型既能保持轻便又能存储一定的图片信息呢?这就不得不提我们大名鼎鼎的 LoRA 模型了。

LoRA 原本并非用于 AI 绘画领域,它是微软的研究人员为了解决大语言模型微调而开发的一项技术。相较于 Dreambooth 全面微调模型的方法,LoRA 的训练参数可以减少上千倍,对硬件性能的要求也会急剧下降。如果说 Embeddings 像一张标注的便利贴,那 LoRA 就像是额外收录的夹页,在这个夹页中记录了更全面图片特征信息。

由于需要微调的参数量大大降低,LoRA 模型的文件大小通常在几百 MB,比 Embeddings 丰富了许多,但又没有 Ckpt 那么臃肿。模型体积小、训练难度低、控图效果好,多方优点加持下 LoRA 收揽了大批创作者的芳心,在开源社区中有大量专门针对 LoRA 模型设计的插件,可以说是目前最热门的模型之一。

LoRA 模型具体有哪些应用场景呢?总结成一句话就是固定目标的特征形象,这里的目标既可以是人也可以是物,可固定的特征信息就更加保罗万象了,从动作、年龄、表情、着装,到材质、视角、画风等都能复刻。因此 LoRA 模型在动漫角色还原、画风渲染、场景设计等方面都有广泛应用。

安装 LoRA 模型的方法和前面大同小异,将模型保存在\models\Lora 文件夹即可。在实际使用时,我们只需选中希望使用的 LoRA 模型,在提示词中就会自动加上对应的提示词组。需要注意的是,有些 LoRA 模型的作者会在训练时加上一些强化认知的触发词。在下载模型时可以在右侧看到 trigger word,非常建议在使用 LoRA 模型时加上这些触发词,可以进一步强化 LoRA 模型的效果。

到此StableDiffusion模型下载使用介绍完成。

文中不少知识点都来自于开源社区中各位前辈的无私分享,非常感谢秋叶、錾制千秋、GhostInShell、落辰星等大佬为推动国内 SD 开源学习所做的努力。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/312927
推荐阅读
相关标签
  

闽ICP备14008679号