学习Stable Diffusion

将文本特征、噪声图、噪声步(如50,表示逐步添加了50次的噪声)输入U-Net网络,得到当前预测的噪声图,分为有文本特征引导的噪声图和没有文本特征引导的噪声图,将文本引导的噪声图和没有文本引导的噪声图相减--》得到差异图(也就是文本特征所造成的差异)。通过将差异图放大(比如放大7.5倍,就是weiui中的guidance scale的参数,一般在6-7左右)在加上没有文本引导的噪声就可以得到一个加强了文本引导的噪声图(加大了文本干预生成图的效果,)

不同guidance scale的效果:

得到当前步(如50)的预测的噪声图之后,就可以将原始的噪声图和预测的噪声图相减得到当前步去噪的图片(可以理解为预测的噪声图就是对生成文本引导的图片来说是有害的,或者说是和文本原意相反的噪声,去掉了有助于更好的生成图片)。这一步就结束了,那么在第49步,就需要将第50步去噪的图片再加上原来第49步的噪声作为第49步的噪声图,经过处理得到第49步预测的噪声图。。。如此反复迭代直到没有噪声,就得到了最终生成的结果。

为什么要加前一步的噪声图??

答:噪声一般是黑白的所以减去的噪声可以理解为把每个像素格的RGB三通道减去同样的数值,但这样一直减肯定是不行的最后会成为一张黑色的图片(所有像素格三通道的数值都为0了),所以需要加上之前的步骤(如49步加上噪声的图)补全信息,这样即达到了预测的效果又会在加减中把图片中的细节体现出来。

关于正向提示词和负向提示词:

在通过unet预测噪声时,会同时生成的正常提示词和噪声和负向提示词的噪声,通过将正向提示词噪声减去负向提示词噪声得到有文本引导的噪声,也就是说通过相减的方式,使得预测更加远离负向提示词的图像。

总体概括:

训练过程:

1.把训练集的数据图像输入给VAE编码器得到潜在空间的特征,可以选择不同的策略(逐步按量增加,先加少后加多,先加多后加少。。。等等策略)来添加噪声得到噪声图。

2.将得到的噪声和文本特征输入U-Net中预测每步的噪声图,将输入的原始噪声图和预测的噪声图相减实现去噪的效果(注意去噪之后还要加上前一步的噪声图,从而实现在补全信息的同时避免逐步去掉噪声导致像素点均为0的问题),如此迭代得到没有噪声的图像。

3.最终通过VAE解码器将特征映射回像素图。

推理过程:

对于文生图而言,初始的噪声图是随机生成的。也就是说,随机生成的噪声图和文本特征输入U-Net中预测噪声----》去噪----》预测噪声----》去噪。。。。如此迭代实现逐步去噪的过程,最后通过VAE解码器得到图片。

学习于:

[零基础] Stable Diffusion 原理详解_哔哩哔哩_bilibili

相关推荐
高-老师1 分钟前
WRF模式与Python融合技术在多领域中的应用及精美绘图
人工智能·python·wrf模式
xinyu_Jina12 分钟前
ikTok Watermark Remover:客户端指纹、行为建模与自动化逆向工程
前端·人工智能·程序人生·信息可视化
通义灵码23 分钟前
Qoder 全形态产品家族正式发布,并开源 Agentic Coding 产品耐用度评测集
人工智能·开源·ai编程
大白的编程笔记23 分钟前
推理(Inference)系统解释
人工智能
LeeZhao@28 分钟前
【狂飙全模态】狂飙AGI-智能答疑助手
数据库·人工智能·redis·语言模型·aigc·agi
AI浩32 分钟前
DeepSeek-V3.2:推动开源大型语言模型的前沿发展
人工智能·语言模型·自然语言处理
无代码专家35 分钟前
设备巡检数字化解决方案:构建高效闭环管理体系
java·大数据·人工智能
新智元38 分钟前
奥特曼怕了!GPT-5.5「大蒜」决战谷歌,红色警报紧急拉响
人工智能·openai
西柚小萌新38 分钟前
【深入浅出PyTorch】--9.使用ONNX进行部署并推理
人工智能·pytorch·python
LDG_AGI40 分钟前
【推荐系统】深度学习训练框架(十):PyTorch Dataset—PyTorch数据基石
人工智能·pytorch·分布式·python·深度学习·机器学习