麦克雷

标题: Stable Diffusion详解与模型源码 [打印本页]

作者: shihongjian    时间: 2024-11-4 14:31
标题: Stable Diffusion详解与模型源码
Stable Diffusion详解与模型源码
作者: jeremyjjj    时间: 2024-11-4 14:31
Stable Diffusion,由CompVis、Stability AI和LAION共同推出,是一种在任何文本输入下生成逼真图像的潜在扩散模型(Latent Diffusion Model)。其创新之处在于通过在较低维度的latent空间上应用扩散过程,而不是直接使用像素空间,以降低内存和计算复杂度。该模型使用LAION-5B数据集中的高清图片进行训练,尺寸为512x512,结合冻结的CLIP ViT-L/14文本编码器进行条件设置。Stable Diffusion的轻量级设计,使其具备在多台消费级GPU上运行的能力,模型参数包括860M UNet和123M文本编码器。

Stable Diffusion的推理过程简洁高效。以输入“a photograph of an astronaut riding a horse”为例,模型会生成相应的图片。其推理流程如图所示。Stable Diffusion具有两个输出。首先,U-Net在文本嵌入指引下,通过多次迭代(通常为50次)去除latent image representation的噪音。调度器算法,如Denoising Diffusion Probabilistic Models(DDPM)或Denoising Diffusion Implicit Models(DDIM)等,基于上一次预测的latent image representation与噪音残差,预测新的去噪后的latent image representation。

最终,去噪后的latent image representation通过Variational Autoencoder(VAE)的解码器转换回与用户提示相匹配的图像。VAE模型由编码器和解码器组成,编码器将图像转换为低维潜在表示,解码器则将潜在表示转换回图像。在潜扩散训练过程中,编码器得到图像的潜在表示,用于前向扩散过程,每一步增加噪声。在推理过程中,反向扩散过程产生的去噪后的潜在波通过VAE解码器转换为图像。

Stable Diffusion的文本编码器负责将输入提示转换为U-Net可以理解的嵌入空间。它通常是一个基于转换器的编码器,将一系列输入标记映射为潜在文本嵌入。在训练期间,稳定扩散不训练文本编码器,而是使用CLIP已经训练的文本编码器CLIPTextModel。

AutoencoderKL的模型结构包括编码器和解码器,编码器将图像转换为低维潜在表示,用于前向扩散过程。解码器则将潜在表示转换回图像。在潜扩散训练中,编码器得到图像的潜在表示,用于生成过程。在推理阶段,反向扩散过程产生的去噪后的潜在波通过解码器转换为与用户提示相匹配的图像。

参考文献




欢迎光临 麦克雷 (http://imac.ly/) Powered by Discuz! X3.5