输入“/”快速插入内容

大白话讲透AI画图:Stable Diffusion

2024年3月29日修改
作者:小明爱提问
📌
关于AI星球社群
作为多年的互联网从业者,我深知普通人去学习AI知识的痛点和问题,我希望运用我的一些行业经验,去做一个知识的桥梁,让人人都能看的懂学的起AI,群里会持续关注并更新 AI 的相关资讯动态,研究报告,应用场景,AI变现,技术研究等相关内容,小智的目标是打造免费的一站式开源AI学习社区,帮助大家更好的拥抱AI。
Stable Diffusion 是一种从文本生成 AI 图像的潜空间扩散模型,它不是在高维图像空间中操作,而是首先将图像压缩到潜在空间(latent space)中。
我们将深入了解它的工作机制。知道工作机制有什么用?除了其本身就是个非常值得了解的内容外,理解它的内部运作也将会使你成为一个更好的AI绘画()艺术家。你将可以合理地运用这个工具来得到更加精确的图像。文生图(text-2-image)和图生图(image-2-image)有什么不同?什么是CFG值?什么是降噪强度(denoising strength)?你将在本文中找到答案
Stable Diffusion能做什么
简单地说,Stable Diffusion是一种文本到图像的模型。给它一个文本提示,它将返回与文本匹配的AI图像。
Stable diffusion将文本指令转化为图像
扩散模型(Diffusion Model)
稳定扩散模型(Stable Diffusion)属于深度学习模型中的一个大类,即扩散模型。它们是生成式模型,这意味着它们旨在生成类似于它们在训练中看到的新数据,在 Stable Diffusion中,新数据是新图像。为什么叫扩散模型?因为它的数学看起来很像物理学中的扩散。我们来了解一下这个模型的理念。
前向扩散(Forward diffusion )
假设我训练了一个只有两种图像的扩散模型:猫和狗。在下图中,左边的两个峰值(红色箭头标注)代表猫和狗的图像组。
前向扩散过程将图片变成噪声图所谓前向扩散(forward diffusion)过程就是向训练图像中不断地添加噪声,从而使其逐渐变为一张毫无意义的纯噪声图。在我们的例子中,正向过程将任何猫或狗图像转换为噪声图像。最终,你将无法分辨它们最初是狗还是猫。(这很重要)这就像一滴墨水滴进一杯水里。墨滴在水中扩散。几分钟后,它会随机分布在整个水中。你再也无法分辨它最初是落在中心还是边缘附近。下面是图像进行前向扩散的示例,猫的形象变成了随机噪音。
一张猫图的前向扩散过程
逆向扩散(Reverse diffusion)
现在是令人兴奋的部分。如果我们能逆转扩散呢?就像向后播放视频一样,时光倒流。我们将找到最初添加墨滴的位置。
逆向扩散过程将图片从噪声图中还原从充满噪音、无意义的图像开始,逆向扩散可以恢复猫狗的图像。这是你想扩散的核心概念。从技术上讲,每个扩散过程都有两个部分:(1)漂移drift和(2)随机运动random motion。逆向扩散会最终结果会导向(drift torwards)或者,但并不会是二者之间的图像。
训练是如何完成的?
逆向扩散的理念无疑是聪明而优雅的,但是真正有价值的问题是“怎么实现它?”为了逆转扩散,我们需要知道图像中增加了多少噪声。答案是,将会由一个经过训练的神经网络模型来预测添加的噪声。在Stable Diffusion模型中,这个模块被称为噪声预测器(noise predictor),它是U-Net架构的卷积神经网络模型。其训练过程如下:
1.
选择一张训练图像,比如一张猫的照片
2.
生成随机噪声图像
3.
将噪音图像添加到训练图像中
4.
通过不断与正确结果对比,并自动调整参数,最终让噪声预测器识别出添加了多少噪声