Stable Diffusion (一) 小二不上酒 深度学习AI 287 views # Stable Diffusion (一) 就像川普说的,“让AI再次性感”。 Stable diffusion 是由初创公司StabilityAI、CompVis与Runway合作开发,自2022年问世以来,由于其开源的特性(模型、代码、训练数据、论文等),国内外各行各业AI绘画爱好者围绕它构建了繁荣的生态。比如[C站](https://civitai.com/),[LiblibAI](https://www.liblibai.com),[Hugging Face](https://huggingface.co/)。当然,有些需要科学上网。 Stable Diffusion是一种扩散模型(diffusion model)的变体——潜在扩散模型(latent diffusion model),其目的是消除对训练图像的连续应用高斯噪声,可以将其视作一系列去噪自编码器。可能初学者对扩散模型、高斯噪声等词汇不懂,个人推荐有兴趣的朋友可以去[B站](https://www.bilibili.com/),看一些入门教程,个人推荐台湾大学李宏毅老师的相关课程。 在传统的深度学习时期,生成对抗网络(生成器与判别器)GAN(Generative adversarial networks)可谓一枝独秀,大致可以理解为生成器尽可能的生成逼真的图片,而判别器尽可能的分辨出生成器生成的图像,它们相互博弈直到判别器无法分辨为止。 Stable diffusion模型继承并发扬了这一思想,但它更加稳定,这主要归于其扩散模型核心的前向扩散模型(forward diffusion process)和反向生成过程(reverse generation process)。 前向扩散模型,逐渐将高斯噪声添加到图像中,直到它能够产生纯噪声。其中训练神经网络从纯噪声开始逐渐对图像进行去噪,直到模型以实际图像结束。尽管扩散模型解决了图像生成任务的主要问题,但反向去噪过程很慢,而且在像素空间中工作时会消耗大量资源。因此,由于时间和资源的限制,训练或从这些模型中获得结果就变得困难。 为了解决这些问题,潜在扩散模型(LDM)应运而生,针对这些问题,作了如下改进: (1),引入一个自编码器,先对原始对象进行压缩编码,编码后的向量再应用到扩散模型。 (2),通过在 UNET 中加入 Attention 机制,处理条件变量 y。 大致可以理解为,首先对原始图像进行压缩编码,得到该图像的低纬度表示 Z0,然后Z0作为DDPM的输入,执行 DDPM 的算法过程,DDPM 生成的结果再经过解码器还原成图像。由于Z0是压缩过的,其尺寸远远小于原始图像,这样就能极大的减少DDPM资源的消耗。压缩后的Z0所在的空间成为潜在空间,Z0可以成为潜在数据。 正向扩散过程→给潜在数据增加噪声,逆向扩散过程→从潜在数据中消除噪声。 整个 DDPM 的过程都是在潜在空间执行的, 所以这个算法被称为潜在扩散模型(Latent diffusion model,LDM)。 增加一个自编码器并没有改变 DDPM 的算法过程,所以并不需要对 DDPM 算法代码做任何改动。 帮助PHPZlc项目! 与任何开源项目一样, 贡献代码 或 文档 是最常见的帮助方式, 但我们也有广泛的 赞助机会。 1 加入技术群 评论 去登录