Stable Diffusion是一个基于Latent Diffusion Models(潜在扩散模型,LDMs)的文图生成(text-to-image)模型。具体来说,Stable Diffusion在 LAION-5B 的一个子集上训练了一个Latent Diffusion Models,该模型专门用于文图生成。Latent Diffusion Models通过在一个潜在表示空间中迭代“去噪”数据来生成图像,然后将表示结果解码为完整的图像,让文图生成能够在消费级GPU上,在10秒级别时间生成图片,大大降低了落地门槛,也带来了文图生成领域的大火。
一、 checkpoint(主模型)
Checkpoint这个词在不同的领域有不同的含义。在深度学习中,Checkpoint是用于描述在每次训练后保存模型参数(权重)的惯例或术语。这就像在游戏中保存关卡时你可以随时通过加载保存文件回复游戏。你可以加载保存的模型权重重新开启训练甚至可以之后进行一个推理。
主模型形象一些理解的话就是画师本身,而本文中的其它模型都是调整和优化主模型的工具。
训练流程:
#mermaid-svg-7brJxRoX2XEOW8nJ {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7brJxRoX2XEOW8nJ .error-icon{fill:#552222;}#mermaid-svg-7brJxRoX2XEOW8nJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7brJxRoX2XEOW8nJ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-7brJxRoX2XEOW8nJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7brJxRoX2XEOW8nJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7brJxRoX2XEOW8nJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7brJxRoX2XEOW8nJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7brJxRoX2XEOW8nJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7brJxRoX2XEOW8nJ .marker.cross{stroke:#333333;}#mermaid-svg-7brJxRoX2XEOW8nJ svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7brJxRoX2XEOW8nJ .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-7brJxRoX2XEOW8nJ .cluster-label text{fill:#333;}#mermaid-svg-7brJxRoX2XEOW8nJ .cluster-label span{color:#333;}#mermaid-svg-7brJxRoX2XEOW8nJ .label text,#mermaid-svg-7brJxRoX2XEOW8nJ span{fill:#333;color:#333;}#mermaid-svg-7brJxRoX2XEOW8nJ .node rect,#mermaid-svg-7brJxRoX2XEOW8nJ .node circle,#mermaid-svg-7brJxRoX2XEOW8nJ .node ellipse,#mermaid-svg-7brJxRoX2XEOW8nJ .node polygon,#mermaid-svg-7brJxRoX2XEOW8nJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7brJxRoX2XEOW8nJ .node .label{text-align:center;}#mermaid-svg-7brJxRoX2XEOW8nJ .node.clickable{cursor:pointer;}#mermaid-svg-7brJxRoX2XEOW8nJ .arrowheadPath{fill:#333333;}#mermaid-svg-7brJxRoX2XEOW8nJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7brJxRoX2XEOW8nJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7brJxRoX2XEOW8nJ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-7brJxRoX2XEOW8nJ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-7brJxRoX2XEOW8nJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7brJxRoX2XEOW8nJ .cluster text{fill:#333;}#mermaid-svg-7brJxRoX2XEOW8nJ .cluster span{color:#333;}#mermaid-svg-7brJxRoX2XEOW8nJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7brJxRoX2XEOW8nJ :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}
加噪n级
加噪n-1级
n = n-1
开始
文本标识
养成中的主模型
样本图片
高噪图
出图
对比
结束
低噪图
失败
成功
大意就是:
- 样本图片A出一张n级噪声图B和n-1噪声图C,
- 文本标识和噪声图B结合生成图D,
- 将C图与D图进行比较,
- 如果成功就将n级噪声降一级重复上面的步骤,直到最后一级噪声图。
- 如果失败就返回第二步重新生成图D。
是不是和我们人类的学习过程一样?词与图像之间的关系从懵懂模糊到清晰明确。
二、 Embeding(文本转换)
Embedding是指将自然语言文本(如句子或段落)转换为计算机可以理解的数值向量表示形式的过程。这种向量表示法通常称为嵌入(embedding),可以在许多自然语言处理(NLP)任务中使用,例如语言模型、情感分析、问答系统等。在Stable Diffusion中,您可以使用内置的嵌入模型或创建自定义的嵌入模型来生成嵌入。
训练流程:
#mermaid-svg-OkXi7fzUFx4cPwyU {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-OkXi7fzUFx4cPwyU .error-icon{fill:#552222;}#mermaid-svg-OkXi7fzUFx4cPwyU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OkXi7fzUFx4cPwyU .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-OkXi7fzUFx4cPwyU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OkXi7fzUFx4cPwyU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OkXi7fzUFx4cPwyU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OkXi7fzUFx4cPwyU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OkXi7fzUFx4cPwyU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OkXi7fzUFx4cPwyU .marker.cross{stroke:#333333;}#mermaid-svg-OkXi7fzUFx4cPwyU svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OkXi7fzUFx4cPwyU .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-OkXi7fzUFx4cPwyU .cluster-label text{fill:#333;}#mermaid-svg-OkXi7fzUFx4cPwyU .cluster-label span{color:#333;}#mermaid-svg-OkXi7fzUFx4cPwyU .label text,#mermaid-svg-OkXi7fzUFx4cPwyU span{fill:#333;color:#333;}#mermaid-svg-OkXi7fzUFx4cPwyU .node rect,#mermaid-svg-OkXi7fzUFx4cPwyU .node circle,#mermaid-svg-OkXi7fzUFx4cPwyU .node ellipse,#mermaid-svg-OkXi7fzUFx4cPwyU .node polygon,#mermaid-svg-OkXi7fzUFx4cPwyU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OkXi7fzUFx4cPwyU .node .label{text-align:center;}#mermaid-svg-OkXi7fzUFx4cPwyU .node.clickable{cursor:pointer;}#mermaid-svg-OkXi7fzUFx4cPwyU .arrowheadPath{fill:#333333;}#mermaid-svg-OkXi7fzUFx4cPwyU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OkXi7fzUFx4cPwyU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OkXi7fzUFx4cPwyU .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-OkXi7fzUFx4cPwyU .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-OkXi7fzUFx4cPwyU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OkXi7fzUFx4cPwyU .cluster text{fill:#333;}#mermaid-svg-OkXi7fzUFx4cPwyU .cluster span{color:#333;}#mermaid-svg-OkXi7fzUFx4cPwyU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OkXi7fzUFx4cPwyU :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}
加噪n级
加噪n-1级
n = n-1
开始
文本标识
养成中的主模型
样本图片
高噪图
出图
对比
结束
低噪图
失败
成功
与checkpoint不同的就是失败之后去修正文本标识,通过不断训练文本标识的理解来最终达到正确出图的目的。
依赖主模型,所以如果主模型与embeding不搭,那么效果将不尽如人意,就如同你让油画家来画水墨画,虽然他画画功底很好,但不会水墨画,自然也难以达到预期效果。
三、 LoRA(劳拉)
在Stable Diffusion中,LoRA是一种用于微调大型语言模型的技术,全称为Low-Rank Adaptation of Large Language Models。
LoRA最初是为大模型提出的,并在transformer块上进行了演示,但该技术也可以应用于其他地方。在微调Stable Diffusion的情况下,LoRA可以应用于将图像表示与描述它们的提示相关联的交叉注意层。
训练流程:
#mermaid-svg-o0WiEKCssoI9DgWv {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-o0WiEKCssoI9DgWv .error-icon{fill:#552222;}#mermaid-svg-o0WiEKCssoI9DgWv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-o0WiEKCssoI9DgWv .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-o0WiEKCssoI9DgWv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-o0WiEKCssoI9DgWv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-o0WiEKCssoI9DgWv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-o0WiEKCssoI9DgWv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-o0WiEKCssoI9DgWv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-o0WiEKCssoI9DgWv .marker.cross{stroke:#333333;}#mermaid-svg-o0WiEKCssoI9DgWv svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-o0WiEKCssoI9DgWv .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-o0WiEKCssoI9DgWv .cluster-label text{fill:#333;}#mermaid-svg-o0WiEKCssoI9DgWv .cluster-label span{color:#333;}#mermaid-svg-o0WiEKCssoI9DgWv .label text,#mermaid-svg-o0WiEKCssoI9DgWv span{fill:#333;color:#333;}#mermaid-svg-o0WiEKCssoI9DgWv .node rect,#mermaid-svg-o0WiEKCssoI9DgWv .node circle,#mermaid-svg-o0WiEKCssoI9DgWv .node ellipse,#mermaid-svg-o0WiEKCssoI9DgWv .node polygon,#mermaid-svg-o0WiEKCssoI9DgWv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-o0WiEKCssoI9DgWv .node .label{text-align:center;}#mermaid-svg-o0WiEKCssoI9DgWv .node.clickable{cursor:pointer;}#mermaid-svg-o0WiEKCssoI9DgWv .arrowheadPath{fill:#333333;}#mermaid-svg-o0WiEKCssoI9DgWv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-o0WiEKCssoI9DgWv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-o0WiEKCssoI9DgWv .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-o0WiEKCssoI9DgWv .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-o0WiEKCssoI9DgWv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-o0WiEKCssoI9DgWv .cluster text{fill:#333;}#mermaid-svg-o0WiEKCssoI9DgWv .cluster span{color:#333;}#mermaid-svg-o0WiEKCssoI9DgWv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-o0WiEKCssoI9DgWv :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}
加噪n级
加噪n-1级
n = n-1
开始
文本标识
养成中的主模型
样本图片
高噪图
出图
对比
结束
低噪图
失败
调整各项权重
成功
四、 Hypernetwork(风格化)
在Stable Diffusion中,Hypernetwork是一种用于训练大型神经网络的技术。它是一种生成网络的网络,可以通过它来生成其他网络的权重。Hypernetwork可以用于生成描述图像的提示的交叉注意层。
训练流程:
#mermaid-svg-JnWqLKCus3q1IVS1 {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JnWqLKCus3q1IVS1 .error-icon{fill:#552222;}#mermaid-svg-JnWqLKCus3q1IVS1 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-JnWqLKCus3q1IVS1 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-JnWqLKCus3q1IVS1 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-JnWqLKCus3q1IVS1 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-JnWqLKCus3q1IVS1 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-JnWqLKCus3q1IVS1 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-JnWqLKCus3q1IVS1 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-JnWqLKCus3q1IVS1 .marker.cross{stroke:#333333;}#mermaid-svg-JnWqLKCus3q1IVS1 svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-JnWqLKCus3q1IVS1 .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-JnWqLKCus3q1IVS1 .cluster-label text{fill:#333;}#mermaid-svg-JnWqLKCus3q1IVS1 .cluster-label span{color:#333;}#mermaid-svg-JnWqLKCus3q1IVS1 .label text,#mermaid-svg-JnWqLKCus3q1IVS1 span{fill:#333;color:#333;}#mermaid-svg-JnWqLKCus3q1IVS1 .node rect,#mermaid-svg-JnWqLKCus3q1IVS1 .node circle,#mermaid-svg-JnWqLKCus3q1IVS1 .node ellipse,#mermaid-svg-JnWqLKCus3q1IVS1 .node polygon,#mermaid-svg-JnWqLKCus3q1IVS1 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-JnWqLKCus3q1IVS1 .node .label{text-align:center;}#mermaid-svg-JnWqLKCus3q1IVS1 .node.clickable{cursor:pointer;}#mermaid-svg-JnWqLKCus3q1IVS1 .arrowheadPath{fill:#333333;}#mermaid-svg-JnWqLKCus3q1IVS1 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-JnWqLKCus3q1IVS1 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-JnWqLKCus3q1IVS1 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-JnWqLKCus3q1IVS1 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-JnWqLKCus3q1IVS1 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-JnWqLKCus3q1IVS1 .cluster text{fill:#333;}#mermaid-svg-JnWqLKCus3q1IVS1 .cluster span{color:#333;}#mermaid-svg-JnWqLKCus3q1IVS1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-JnWqLKCus3q1IVS1 :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;}
加噪n级
加噪n-1级
n = n-1
开始
文本标识
养成中的主模型
样本图片
高噪图
出图
对比
结束
低噪图
失败
在Hypernetwork中调整参数
调整各项权重
成功
相比LoRA,多了一些步骤,不如LoRA那么短小精悍。
出图更适合风景,而不是特定具象的物体。
五、 AVE(特定)
在Stable Diffusion中,AVE是一种用于训练大型神经网络的技术。它是一种生成网络的网络,可以通过它来生成其他网络的权重。在Stable Diffusion中,AVE可以用于生成描述图像的提示的交叉注意层。
和Hypernetwork描述一致~~
Aesthetic Embedding
Aesthetic Gradient
Variational Autoencoder
大多数都融合在了主模型中,一般不会用到。
六、 目录
五个模型对应的目录如下图:
models/Stable-diffusion
该目录就是主模型文件夹。
关于AI绘画技术储备
学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!
对于0基础小白入门:
如果你是零基础小白,想快速入门AI绘画是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!
需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
1.stable diffusion安装包 (全套教程文末领取哈
)
随着技术的迭代,目前 Stable Diffusion 已经能够生成非常艺术化的图片了,完全有赶超人类的架势,已经有不少工作被这类服务替代,比如制作一个 logo 图片,画一张虚拟老婆照片,画质堪比相机。
最新 Stable Diffusion 除了有win多个版本,就算说底端的显卡也能玩了哦!此外还带来了Mac版本,仅支持macOS 12.3或更高版本。
2.stable diffusion视频合集
我们在学习的时候,往往书籍代码难以理解,阅读困难,这时候视频教程教程是就很适合了,生动形象加上案例实战,一步步带你入门stable diffusion,科学有趣才能更方便的学习下去。
3.stable diffusion模型下载
stable diffusion往往一开始使用时图片等无法达到理想的生成效果,这时则需要通过使用大量训练数据,调整模型的超参数(如学习率、训练轮数、模型大小等),可以使得模型更好地适应数据集,并生成更加真实、准确、高质量的图像。
4.stable diffusion提示词
提示词是构建由文本到图像模型解释和理解的单词的过程。可以把它理解为你告诉 AI 模型要画什么而需要说的语言,整个SD学习过程中都离不开这本提示词手册。
5.AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】