Stable Diffusion——基础模型、VAE、LORA、Embedding各个模型的介绍与使用方法
前言
Stable Diffusion(稳定扩散)是一种生成模型,基于扩散过程来生成高质量的图像。它通过一个渐进过程,从一个简单的噪声开始,逐步转变成目标图像,生成高保真度的图像。这个模型的基础版本是基于扩散过程的,但也有一些改进版本,包括基于变分自动编码器(VAE)、局部正则化的自动编码器(LORA)和嵌入式扩散等。
1.基础模型
Stable Diffusion Checkpoint模型是生成图像所必须的基础模型,也称之为大模型。要使用Stable Diffusion出图之前必须配备一个主模型才能开始创作。这个主模型包含了生成图像所需的所有信息,无需额外的文件或组件。这些主模型的文件通常比较大,大小在2GB到7GB之间。它们的文件后缀通常是“ckpt”或“safetensors”。
不同的主模型具有不同的特点,它们在创作风格和擅长的领域上有所侧重。因此,在选择主模型时,需要考虑自己的创作需求和偏好。不同的主模型可以帮助你实现不同风格的图像生成。
一些流行和常见的Checkpoint模型包括“Anything”系列(如v3、v4.5、v5.0)、“AbyssOrangeMix3”、“ChilloutMix”、“Deliberate”,以及“国风系列”等等。这些Checkpoint模型都是从Stable Diffusion的基础模型训练而来,它们使用不同的数据进行训练,以生成特定风格或对象的图像。
需要注意的是,通常情况下是不会使用官方自带的大模型来进行创作出图的,因为它们的效果较差。但是如果想要自己练大模型,官方自带的大模型系列是一个不错的基础模型,因为它们涵盖了各种风格,属于中性模型。
当在下载模型时,可能会看到带有pruned、emaonly(ema)等后缀,pruned表示完整版,而emaonly表示剪枝版。(模型剪枝是一种通过删除神经网络中的冗余连接或参数来减小模型大小。可以帮助减少模型的存储空间和计算成本,同时在某些情况下还可以提高模型的推理速度。需要注意的是,尽管剪枝版模型在大小上更为轻量级,但在一些情况下可能会牺牲一定的性能。因此,在选择模型时,需要权衡模型大小和性能之间的关系,根据具体的应用场景和需求来做出选择。)但两者在使用上差别不大。如果想要自己练模型,则需要下载完整版。需要注意的是,有些剪枝版可能不带有后缀,有些可能后缀也是prune,因此在具体选择时需要参考相应的版本说明。
Civitai是一个全球性的提供AI艺术资源分享和发现的平台,旨在帮助用户轻松探索并使用各类AI艺术模型。平台用户可以上传和分享自己用数据训练的AI自定义模型,或者浏览和下载其他用户创建的模型。
以我这里使用的秋叶sd-webui-aki-v4.5整合包为例,模型下载之后,放到models/Stable-Diffusion目录。
之后刷新就可以看到相关的模型:
选择要使用的模型之后,可以输入正向提示词和反向提示,然后点生成:
2、外挂VAE模型
VAE模型可以被视作一种类似于颜色滤镜的工具,用于调整和改善生成图片的色彩。它并非在制图时必不可少,而是根据个人绘画需求决定是否采用。在使用某些模型时,有时绘制的图片整体颜色可能会显得较灰暗。在这种情况下,可以使用VAE模型对图片的颜色进行调整,以改善整体视觉效果。
下载或者自己训练出来的VAE模型把它放到models/VAE目录下:
测试VAE模型,左边是没有使用VAE模型的,右边是使用了VAE模型:
在绘图过程中,选择是否使用VAE模型通常对最终生成的图片效果并没有太大的影响。相比之下,VAE模型并不像其他模型(比如LORA模型)那样在绘图中的作用和效果十分明显。在测试中尝试了几个常用的大型模型,发现使用或不使用VAE模型对最终生成的图片效果的区别并不明显。
3、Lora模型
LoRA(Low-Rank Adaptation)是一种大语言模型低秩适配器,最早在2021年的论文《LoRA: Low-Rank Adaptation of Large Language Models》中提出。它的核心思想是通过降低模型可训练参数的数量,尽量不损失模型的性能,从而实现对大语言模型的微调。
在此之前,对于Stable Diffusion这样的模型,要训练大模型的话,通常需要使用Dreambooth等方法。如果对大模型的效果不满意,那么就只能从头开始重新训练,但是这个过程需要高要求的算力,且速度较慢。LoRA的引入极大地降低了训练的门槛,扩大了产出模型的适用范围。这意味着即使是非专业人员也可以在家用电脑上尝试训练自己的LoRA模型,从而更灵活地适应不同的任务和需求。
这里可以将大型模型比作素颜的人,因为它们通常生成的图片与原始数据相似,但可能缺乏一些细节或特定的特征。而LoRA模型则像是进行了化妆、整容或cosplay,它们能够通过增加细节、调整风格或改变外观,使生成的图片更加精美或符合特定的要求。LoRA模型不仅局限于人物,也适用于场景、动漫或其他风格,这使得它们在生成多样化的内容时具有广泛的应用性。大型模型提供了基础,而LoRA模型在此基础上进一步增强和丰富了生成的图片效果。
LoRA模型具有几个明显的优点:
-
性能优势: 使用LoRA时,只需要存储少量被微调过的参数,而不需要保存整个新模型。这使得LoRA模型的存储开销较小。此外,LoRA的新参数可以与原模型的参数合并,不会增加模型的运算时间。
-
功能丰富: LoRA模型维护了模型在微调中的“变化量”,通过用介于0到1之间的混合比例乘以这些变化量,可以控制模型的修改程度。此外,基于同一个原模型独立训练的多个LoRA模型可以同时使用。
这些优点在SD LoRA(中得到体现:
-
模型尺寸小: SD LoRA模型通常都很小,只有几十MB大小,这使得它们在存储和部署时都非常高效。
-
参数合并: SD LoRA模型的参数可以合并到SD基础模型中,得到一个新的SD模型,这有助于简化模型管理和部署过程。
-
画风控制: 可以使用0到1之间的比例来控制SD LoRA新画风的程度,使得用户可以根据需要调整生成图片的风格和效果。
-
多画风混合: 可以将不同画风的SD LoRA模型以不同的比例混合,从而进一步增加生成图片的多样性和可控性。
C站也有开源可用的Lora模型下载,下载之后,把模型放到models/Lora里面,重启或者刷新webui界面:
可以查看Lora的模型:
在WebUI中,点击所需的模型之后,系统会自动在提示词中增加对该模型及其权重的引用。格式如下:
<lora:模型的名字:模型的权重>
这样就可以在提示词中引用所选模型以及其权重了。模型的权重越高生成图片时越贴近模型提供的主体或者风格,权重的取值范围是:0-1。生成图片时可以同时使用多个LoRA模型,最终效果会综合多个模型的风格。
4.Embedding模型
Embedding可以被理解为一组提示词的集合,将这些提示词汇总到一个文件中。当需要使用这些提示词时,只需调用这个Embedding文件,就相当于输入了很多的提示词,这对用户来说非常方便。
Embedding可以用于正向提示词,也可以用于负向提示词。但在大多数情况下,它通常用于负向提示词,因为负向提示词的数量通常很多,而且复用性较高。例如,在人物绘图时,对于描述手指可能会使用诸如“坏的手指”、“多余的手指”、“缺失的手指”等多个负向提示词,同样的情况也适用于其他身体部位如腿、手等。这导致在绘图时需要频繁输入这么多的负向提示词,因此有时候负向提示词的数量远远超过正向提示词。
为了方便用户操作,减轻用户编写提示词的麻烦,常用的负向提示词会被打包在一起。这样用户只需要使用一个关键词,就可以代替输入很多的负向提示词,达到一词顶百词的效果。
由于Embedding模型是一组提示词的集合,所以Embedding模型文件通常不大,大小一般在几十KB到几百KB之间。
在C站上面,在搜索条件中通过Embedding关键字过滤出所有的Embedding模型。
相关文章:

Stable Diffusion——基础模型、VAE、LORA、Embedding各个模型的介绍与使用方法
前言 Stable Diffusion(稳定扩散)是一种生成模型,基于扩散过程来生成高质量的图像。它通过一个渐进过程,从一个简单的噪声开始,逐步转变成目标图像,生成高保真度的图像。这个模型的基础版本是基于扩散过程…...

Python自动化部署与配置管理:Ansible与Docker
Ansible 和 Docker 是两种常用于自动化部署和配置管理的工具。Ansible 是一个基于 Python 的自动化运维工具,可以配置管理、应用部署、任务自动化等。而 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&…...

《摔跤吧爸爸》19岁女星突患皮肌炎离世
从确诊到离世仅10天……罕见病“皮肌炎”! 曾凭借在知名电影《摔跤吧!爸爸》中饰演童年时期“小芭比塔”一角而广受喜爱的年轻演员苏哈尼巴特纳格尔不幸离世,年仅19岁。她的突然逝世引发了全球关注,据苏哈妮的家人表示࿰…...

用结构体数组,完成宠物信息登记管理。
管理宠物的名字,品种,年龄。 实现功能如下: 1.插入宠物信息 2.遍历宠物信息 #include <stdio.h> #define N 100 typedef struct chongwu { char name[20]; char pingz[10]; int age; }cw; void intset_cw(cw *ptr,int *pnum) { printf("请…...

频率主义线性回归和贝叶斯线性回归
整体概述 频率主义(Frequentist)线性回归和贝叶斯(Bayesian)线性回归是统计学中用于数据分析和预测的两种主要方法,特别是在建模关于因变量和自变量之间线性关系的上下文中。尽管两种方法都用于线性回归分析ÿ…...

【感知算法】Dempster-Shafer理论(下)
尝试DS理论应用到自动驾驶地图众包更新。 地图特征变化判断 a mass function is applied to quantify the evidence of the existence. existence state: existenct、non-existent、tenative、conflict ∃ ∄ Ω ϕ \exist \\ \not\exist \\ \Omega \\ \phi ∃∃Ωϕ ma…...

通过conda安装cudatoolikit和cudnn
通过conda安装cudatoolikit和cudnn 安装cudatoolkit安装cudnn安装cudatoolkit-dev 安装cudatoolkit conda install cudatoolkit11.3 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 安装cudnn conda install cudnn8.5 -c https://mirrors.tuna.tsinghua.edu.…...

vue中使用jsx语法
请注意,在 Vue 中使用 JSX 时,你仍然需要通过 h 函数(通常是一个别名,对应于 createElement 函数)来创建虚拟 DOM 元素。在下面的例子中,h 函数作为 render 函数的参数传入,但在 JSX 语法中你通…...

我的NPI项目之Android USB 系列(一) - 遥望和USB的相识
和USB应该是老朋友了,从2011年接触Android开发开始,就天天和USB打交道了。那时候还有不 对称扁头的usb/方口的usb,直到如今使用广泛的防反插USB3.0 type-C。 但是,一直有一个不是很清楚的问题萦绕在心头,那就是。先有…...

K8s进阶之路-命名空间级-服务发现 :
服务发现: Service(东西流量):集群内网络通信、负载均衡(四层负载)内部跨节点,节点与节点之间的通信,以及pod与pod之间的通信,用Service暴露端口即可实现 Ingress&#…...

智慧公厕管理系统:让城市智慧驿站更加智慧舒适
智慧公厕管理系统是城市智慧驿站中不可或缺的一部分,它通过全方位的信息化解决方案,为公共厕所的使用、运营和管理提供了一种智能化的方式。作为城市智慧驿站的重要组成部分,智慧公厕管理系统发挥着重要的作用,为城市社会民生提供…...

图形渲染基础学习
原文链接:游戏开发入门(三)图形渲染_如果一个面只有三个像素进行渲染可以理解为是定点渲染吗?-CSDN博客 游戏开发入门(三)图形渲染笔记: 渲染一般分为离线渲染与实时渲染,游戏中我们用的都是…...

每日学习总结20240219
每日总结 20240219 1.文件类型.csv CSV文件是一种以逗号分隔值(Comma-Separated Values)为标记的文本文件,它可以用来存储表格数据。每一行表示一条记录,而每一条记录中的字段则使用逗号或其他特定的分隔符进行分隔。 常用场景…...

K8s进阶之路-安装部署K8s
参考:(部署过程参考的下面红色字体文档链接就可以,步骤很详细,重点部分在下面做了标注) 安装部署K8S集群文档: 使用kubeadm方式搭建K8S集群 GitBook 本机: master:10.0.0.13 maste…...

springboot集成elk实现日志采集可视化
一、安装ELK 安装ELK组件请参考我这篇博客:windows下安装ELK(踩坑记录)_windows上安装elk教程-CSDN博客 这里不再重复赘述。 二、编写logstash配置 ELK组件均安装好并成功启动,进入到logstash组件下的config文件夹,创建logstash.conf配置…...

leetcode 148. 排序链表 java解法
Problem: 148. 排序链表 思路 这是一个链表排序的问题,由于要求时间复杂度为 O(nlogn),适合使用归并排序(Merge Sort)来解决。 解题方法 首先,使用快慢指针找到链表的中间节点,将链表分成两部分。然后&…...

【MATLAB源码-第140期】基于matlab的深度学习的两用户NOMA-OFDM系统信道估计仿真,对比LS,MMSE,ML。
操作环境: MATLAB 2022a 1、算法描述 深度学习技术在无线通信领域的应用越来越广泛,特别是在非正交多址接入(NOMA)和正交频分复用(OFDM)系统中,深度学习技术被用来提高信道估计的性能和效率。…...

运动重定向学习笔记
目录 深度学习 重定向 2020年的模型: 重定向之后的bvh: 深度学习 重定向 输入是bvh,输出也是bvh...

导出Excel,支持最佳
列表信息导出为Excel文件, 依赖pom: Sheet, Row:<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId> </dependency>XSSFWorkbook <dependency><groupId>org.apache.poi</…...

【WPF】获取父控件数据
MaxHeight"{Binding PathActualHeight, RelativeSource{RelativeSource ModeFindAncestor, AncestorTypeUserControl}}" 参考文献 https://www.cnblogs.com/-Timosthetic/p/16021865.html...

解决Edge浏览器,微博无法查看大图(Edge Image Viewer)
使用Edge浏览器浏览微博或其它带校验的图片时,会导致无法查看。 主要原因为Edge自带了一个Edge Image Viewer, 但是该图片查看器无法查看带校验数据的图片,所以导致查看时一片空白。 解决方法 地址栏输入 edge://flags/搜索 Edge Image Viewer选择 Disa…...

PMP含金量在国内怎么样?
其一、PMP(项目管理师)证书含金量高吗? PMP认证是由美国项目管理学会(PMI)在全球范围内推出的针对项目经理的资格认证体系,其证书含金量可以说是非常高。 统计表明,全球年销售收入在5亿美元以上的企业中有86%聘用了具有项目管理资质的项目经…...

java中容易被忽视的toString()方法
之前一直认为toString就是将数据转换成字符类型,直到最近写出了一个bug才对toString有了新的认识 不同数据类型,toString() 有不同的操作 定义一个student类,包含姓名 String类型、性别 String类型、年龄 int 类型、分数列表 String类型的li…...

如何使用Docker搭建YesPlayMusic网易云音乐播放器并发布至公网访问
文章目录 1. 安装Docker2. 本地安装部署YesPlayMusic3. 安装cpolar内网穿透4. 固定YesPlayMusic公网地址 本篇文章讲解如何使用Docker搭建YesPlayMusic网易云音乐播放器,并且结合cpolar内网穿透实现公网访问音乐播放器。 YesPlayMusic是一款优秀的个人音乐播放器&am…...

java面试题之redis篇
1.redis 中的数据类型有哪些 随着 Redis 版本的更新,后面又支持了四种数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增&am…...

effective c++ 笔记 条款18-25
条款18:让接口容易被正确使用,不易误使用 使用外覆类型(wrapper)提醒调用者传参错误检查,将参数的附加条件限制在类型本身 Data::Data(int month, int day, int year) { ... }三个参数类型相同的函数容易造成误用 Da…...

Nginx学习笔记
Bilibili尚硅谷视频 Nginx 简介 Nginx 概述 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。 正向代理 正向代理:如…...

摆(行列式、杜教筛)
有一个 n n n\times n nn 的矩阵 A A A,满足: A i , j { 1 i j 0 i ̸ j ∧ i ∣ j C otherwise A_{i,j}\begin{cases} 1 &ij\\ 0 &i\notj\land i\mid j\\ C &\text{otherwise} \end{cases} Ai,j⎩ ⎨ ⎧10Cijij∧i∣jotherwi…...

尝试以语法对照表格形式学习新语言:c,rust
以语法对照表格形式学习新语言,以rust为例。 关于rust的个人看法: 能否替代c?部分场景可以,长远看并不会。如果c再扩一些关键字,类似cpp的吸星大法式扩充,rust并不具备优势。解决了c的内存管理问题&#x…...

408计算机网络--基础概论
学习计算机网络走以前需要首先明白一个大的概念,计算机网络通常分为通信子网(实现数据通信)和资源子网(实现资源共享/数据处理)七层妖塔 计算机网络:是一个将分散的、具有独立功能的计算机系统࿰…...