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

相关推荐
rcc86288 小时前
企业AI转型指南:从降本增效到收益增长的双重突破
人工智能·决策选型
懂AI的老郑8 小时前
YOLOv26联手大模型,开启智能视觉新时代
人工智能·yolo·目标跟踪
火山引擎开发者社区14 小时前
火山引擎发布《企业级 ArkClaw 安全白皮书》
人工智能
阿里云大数据AI技术14 小时前
Hologres AI Function 文本分类实战:从提示词设计到 KV-Cache 调优,全程 SQL 搞定
人工智能·sql
code_pgf15 小时前
AI-Agent记忆机制分析
大数据·人工智能
阿拉斯攀登16 小时前
安全与可控性:输出校验、权限控制
人工智能·chatgpt·agent·memory·claude·知识库·向量数据库
冬奇Lab16 小时前
每日一个开源项目(第152篇):SAG - 用 SQL JOIN 代替 PageRank 做多跳 RAG 检索
人工智能·开源
冬奇Lab16 小时前
Workflow 系列(09):主流框架对比——Prompt-based、LangGraph、Temporal、n8n 如何选
人工智能·工作流引擎