内容提要
本文介绍了图片生成的基本原理,使用了扩散模型和UNet模型。通过训练和组合UNet模型,可以从随机噪点生成正常图片,并通过文本描述控制生成图片与输入文案匹配。文章还介绍了隐空间、VAE和CLIP模型等相关概念,以及Stable Diffusion的改进和应用。
延伸解读
扩散模型如何从噪声生成图片
扩散模型的核心是训练UNet预测图片中的噪声。训练时,对正常图片逐步加噪,并让模型学习从加噪图片中推算所加噪声。生成时,从纯噪声开始,利用训练好的模型反复去噪,每一步都减去预测的噪声,最终得到清晰图片。这个过程需要多步迭代,因为单步只能去除少量噪声,无法直接从纯噪声恢复出有意义图像。
文本控制生成的关键:CLIP与文本编码
为了让生成图片与输入文案匹配,训练时需将图片对应的文本描述一并输入模型。Stable Diffusion采用CLIP模型将文本编码为向量,CLIP通过对比学习让文本向量与对应图片向量在特征空间上接近。这样,用户输入的prompt就能在去噪过程中引导生成方向,使结果更符合文字描述。
隐空间与VAE:降低计算成本的关键
直接在像素空间进行扩散计算量巨大。Stable Diffusion使用VAE将图片压缩到隐空间,例如编码为64x64x4的矩阵,大幅减少数据量。在隐空间中进行训练和生成,使得模型能在普通电脑上运行。生成完成后,再通过VAE解码器将隐空间表示还原为高清图片。VAE的编码保留了图片的语义信息,便于模型学习。
采样器与DDIM:加速生成过程
原始扩散模型DDPM需要1000步去噪,生成速度慢。DDIM通过跳步采样,在生成时只选择部分关键时间点进行去噪,从而大幅减少步数,提高生成速度。Stable Diffusion WebUI提供多种采样器,如Eular a、Karras、DPM等,它们在生成速度、图像质量和多样性上各有特点,用户可根据需求选择。