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

相关推荐
小瑞瑞acd1 分钟前
【小瑞瑞精讲】卷积神经网络(CNN):从入门到精通,计算机如何“看”懂世界?
人工智能·python·深度学习·神经网络·机器学习
CoderJia程序员甲11 分钟前
GitHub 热榜项目 - 日榜(2026-02-06)
人工智能·ai·大模型·github·ai教程
wukangjupingbb15 分钟前
AI多模态技术在创新药研发中的结合路径、机制及挑战
人工智能
CoderIsArt26 分钟前
三大主流智能体框架解析
人工智能
民乐团扒谱机30 分钟前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树
Coder_Boy_32 分钟前
Deeplearning4j+ Spring Boot 电商用户复购预测案例中相关概念
java·人工智能·spring boot·后端·spring
芷栀夏35 分钟前
CANN ops-math:揭秘异构计算架构下数学算子的低延迟高吞吐优化逻辑
人工智能·深度学习·神经网络·cann
L5434144636 分钟前
告别代码堆砌匠厂架构让你的系统吞吐量翻倍提升
大数据·人工智能·架构·自动化·rpa
孤狼warrior37 分钟前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
凯子坚持 c38 分钟前
构建企业级 AI 工厂:基于 CANN `cann-mlops-suite` 的端到端 MLOps 实战
人工智能