学习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

相关推荐
新加坡内哥谈技术5 小时前
从文字到世界:空间智能是人工智能的下一个前沿
人工智能
oil欧哟5 小时前
文心 5.0 来了,百度大模型的破局之战
前端·人工智能·百度·prompt
玩转AGI5 小时前
一文看懂 Agentic AI:搭建单体 vs 多智能体系统,结果出乎意料!
人工智能
ai大模型分享员5 小时前
项目实战:基于RAPTOR RAG检索技术的工业设备故障诊断系统
人工智能
MUTA️5 小时前
什么是RKNN?
人工智能
倚栏听风雨5 小时前
2、Gemini里 交互模式和非交互模式区别
人工智能
illuspas6 小时前
MI50运算卡使用llama.cpp的ROCm后端运行Qwen3-Coder-30B-A3B的速度测试
人工智能·llama
illuspas6 小时前
MI50运算卡使用llama.cpp的ROCm后端运行gpt-oss-20b的速度测试
人工智能·gpt·llama
算家计算6 小时前
DeepSeek大神正式加盟小米!AI竞赛的终局,远不止一次挖角
人工智能·资讯
EllenLiu6 小时前
模型推理优化与工程化落地 - Onnx Runtime 实战篇
人工智能