AI大模型教程
一起来学习

Stable Diffusion 学习记录(一)

        由于项目中需要对无人机视角下的人体或者车辆进行检测(红外场景),相对而言,这方面的数据集比较少,因此想根据现有的可见光的数据集进行转换,这就用到了Stable Diffusion相关的知识,好记性不如烂笔头,看了好多文章,在此按照自己的思路记录一下,加深印象。

一、细节把握

           扩散模型是通过逐渐的添加噪声来破坏数据,然后学习如何逆转这个过程来生成新的数据。不过具体是怎么工作的?这就涉及到前向过程和反向过程,前向过程是一步步的添加噪声,直到数据集变成纯噪声,反向过程就是怎么在噪声中恢复数据,那怎么实现这个反向过程呢?可能需要训练一个神经网络来预测噪声或者直接预测原始数据。

        然后就是数学基础:马尔可夫链、KL散度

        模型结构: 通常来说用到的是U-Net,-Net有下采样和上采样部分,适合处理不同尺度的特征。不过,可能还需要注意其他组件,比如注意力机制或者残差连接。另外,时间步的嵌入也很重要,因为模型需要知道当前处理的是哪个扩散步骤,所以如何将时间步的信息嵌入到网络中是一个关键点。

        采样过程也是一个需要注意的地方。采样时可能需要多次迭代,逐步去噪,这会比较耗时。有没有办法加速采样?比如DDIM这种方法可以减少采样步骤,但可能会影响生成质量。所以需要在速度和质量之间做权衡。此外,采样时的噪声调度(noise schedule)也很重要,不同的调度策略会影响生成结果,比如线性调度和余弦调度,可能需要实验不同的方案

        通过上面简单的叙述,总结一下几个重要的需要知道的知识点:

        1. 图+文 ===》 图    文===》图是怎么实现的

        2. 前向、反向扩散过程以及用到的数学工具

        3. 网络的设计以及 Timesteps的嵌入

        4.损失函数的设计以及推理

        上面的内容仅仅是这几点,只是简单的梳理一下关键点并根据这几点进行更多细节的记录

二、核心基础原理

        1. Stable Diffusion (后面统一为SD)主要的功能是进行文生图和图生图,文生图任务是指将一段文本输入到SD模型中,经过一定的迭代次数,SD模型输出一张符合输入文本描述的图片,比如下图中输入了“天堂,巨大的,海滩”,于是SD模型生成了一个美丽沙滩的图片。示例如下

        图生图就是在输入文本的同时添加了一张图片的输入,SD模型根据文字的提示将对输入的拓片进行重新绘制并输出符合要求的图。

        到了现在就回答了第一个问题:文本信息以及图片信息如何成为SD模型能够理解的机器数学信息呢?

        需要给SD模型一个:文本信息与机器信息转换的工具即 CLIP Text Encoder 模型,使用该模型作为SD模型的前置模块来将输入的文本信息进行编码,生成与文本信息对应的Text Embeddings特征矩阵,再将Text Embeddings用于SD模型中来控制图像的生成:

        里面的Text Encoder就是CLIP Text Encoder模型用来对文本信息编码,完成编码后就送入后面的模块(U-Net + Schedule算法)

        如果是图生图的任务,在输入文本信息的同时还需要将原始输入图片进行编码(VAE Encoder)生成Latent Feature(隐空间特征)作为输入。

        如果是图生图的任务,需要生成一个高斯噪声矩阵来替代由真实图像生成的Latent Feature作为输入。

        下面是两种使用场景下的推理示例图:        

2. 前向、反向扩散

        前向扩散过程中,SD模型持续对一张图像添加高斯噪声直至变成随机噪声矩阵。而在反向扩散过程中,SD模型进行去噪声过程,将一个随机噪声矩阵逐渐去噪直至生成一张图像。

        前向扩散过程(Forward Diffusion Process) → 图片中持续添加噪声        

        反向扩散过程(Reverse Diffusion Process) → 持续去除图片中的噪声

 在Stable Diffusion这个扩散模型中,无论是前向扩散过程还是反向扩散过程都是一个参数化的马尔可夫链(Markov chain),如下图所示:

      2.1 前向扩散过程:刚才提高前向扩散过程就是将原始数据逐步破坏为高斯噪声的马尔可夫链的过程,其核心是通过迭代添加噪声,使数据分布逐渐趋近于各向同性高斯分布。

       数学形式(可略过):

       

                说明:噪声调度定义了在前向扩散过程中如何随时间增加噪声强度(即βt,过大导致训练不稳定,过小收敛时间长)。不同的噪声调度策略会影响扩散模型的学习效率和生成质量。

                           调度算法则是在反向过程中指导如何有效地去除这些噪声。

                示例图:

                        

          2.2 反向扩散过程:反向过程是从噪声中逐步重建数据的马尔可夫链,通过训练神经网络逼近逆过程的转移概率分布。先上图:

                 反向扩散要点如下(下节详解):

                        模型结构:U-Net架构,利用跳跃连接保留多尺度信息,注意力机制提升全局一致性。

                        时间步嵌入:将离散时间步 tt 编码为连续向量(如正弦位置编码),与网络中间层特征融合。

                        输入与输出:网络以带噪数据  和时间步 t为输入,预测噪声 ϵ 或均值 ​。

                本小节重要介绍了前向、反向扩散的过程,下面是整体的流程图:                    

3. 网络结构         

        3.1 整体架构

                Stable Diffusion模型整体上是一个End-to-End模型,主要由VAE(变分自编码器,Variational Auto-Encoder),U-Net以及CLIP Text Encoder三个核心组件构成。

                       

         3.2 VAE(变分自编码器)

              VAE(变分自编码器,Variational Auto-Encoder)是基于Encoder-Decoder架构的生成模型。VAE的Encoder(编码器)结构能将输入图像转换为低维Latent特征,并作为U-Net的输入。VAE的Decoder(解码器)结构能将低维Latent特征重建还原成像素级图像。总的来说作用:在Stable Diffusion中,VAE模型主要起到了图像压缩和图像重建的作用

                首先训练一个自编码器,学习将图像数据压缩为低维表示,然后通过训练过的编码器E,可以将全尺寸的图像编码成 低维潜在数据(压缩数据)。再然后通过使用经过训练的解码器D,将潜在数据解码回图像。

        注意:

                        正向扩散过程→向潜在数据中添加噪声

                        反向扩散过程→从潜在数据中去除噪声

                网络结构图如下:

                

           3.3 U-Net结构以及 Schedule算法

                        U-Net结构和 Schedule算法共同组成了图像优化模块,其中,U-Net网络负责预测噪声,不断的优化生成的过程,同时,在预测噪声的时候不断的添加文本的语义信息。而Schedule算法则时对每次U-Net预测的噪声进行优化处理(动态调整预测的噪声,控制预测噪声的强度)而统筹生成过程的进度。在这个过程中Latent Feature的质量不断的变好(纯噪声减少,图像语义信息增加,文本语义信息增加),整体流程图如下:

        

        在Stable Diffusion中,U-Net模型是一个关键核心部分,能够预测噪声残差,并结合Sampling method(调度算法(采样方法):DDPM、DDIM、DPM++等)对输入的特征矩阵进行重构,逐步将其从随机高斯噪声转化成图片的Latent Feature

        具体来说,在前向推理过程中,SD模型通过反复调用 U-Net,将预测出的噪声残差从原噪声矩阵中去除,得到逐步去噪后的图像Latent Feature,再通过VAE的Decoder结构将Latent Feature重建成像素级图像.

        Stable Diffusion U-Net的完整结构图如下:

                

        调度算法(采样方法) 

                

 Time Embedding(时间嵌入)

        告诉U-Net现在是整个迭代过程的哪一步,并及时控制U-Net够根据不同的输入特征和迭代阶段而预测不同的噪声残差

 到此就记录到这里,明天写第二篇关于函数的以及训练的细节

参考连接:

        https://zhuanlan.zhihu.com/p/632809634

        https://www.51cto.com/article/744497.html

文章来源于互联网:Stable Diffusion 学习记录(一)

相关推荐: AI写作工具,科幻世界的魔法还是现实利器?

听说过能一键生成文本的AI写作工具吗?它仿佛来自科幻世界的魔法,身为作家的我不禁为之好奇。近日有幸尝试,在此为您分享我的亲历体验。 1.概述 自动写稿AI插件是一个运用人工智能技术研发的辅助工具,旨在便捷地为您产出优质文章。只需敲入关键词或指定主题,该插件将即…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » Stable Diffusion 学习记录(一)
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们