
配套视频:https://www.bilibili.com/video/BV1CS1mBWE9p/
一、引言:生成式AI的崛起
近两年,AI图像生成器变得异常流行,但尽管应用广泛,其工作原理对大多数人来说仍是一个谜团。只需一个简单的文字提示,就能生成令人惊叹的图像;或上传图片并添加文字描述,即可生成全新内容——这就是我们所说的生成式AI。
生成式AI不仅用于图像生成,还涵盖多个领域:
文本生成:ChatGPT、Gemini、Claude、Mistral、Llama、Grok
图像生成:MidJourney、DALL-E、Imagine、Muse,以及本文重点介绍的 Stable Diffusion
音乐生成:MusicLM、MusicGen、StableAudio、Suno
视频生成:ImagineVideo、Lumiere、EmuVideo、StableVideoDiffusion,以及 OpenAI 的 Sora
本文将深入解析已成为该领域最流行工具之一的 Stable Diffusion,揭开其神秘面纱。
二、核心问题:如何实现文生图?
2.1 训练数据的规模挑战
要训练一个图像生成模型,首先需要大量的训练数据。如果模型只用蒙娜丽莎的画像训练,那它就只能生成蒙娜丽莎——这显然太无趣了。我们需要更多图片,甚至需要所有我们能获取的图像。
Stable Diffusion 1.5 实际上包含了超过 23 亿图文对,但令人惊讶的是,整个模型大小仅为 2.13GB。这引出了一个关键问题:如何将如此庞大的数据集压缩到这么小的模型中?
2.2 训练目标
训练模型需要实现以下目标:
映射关系:将图像描述映射到图像或其局部区域
特征识别:识别所有图像中的相似特征
特征提取:从内容中提取可复用的特征,创建新的图文对
2.3 数据来源
这些图文对主要从互联网抓取,形成了著名的 Layon5b 数据集。不过,这种做法仍存在法律争议,因此一些较新的模型正在尝试避免使用受版权保护的图像。
三、技术基础:神经网络入门
3.1 神经网络基本概念
要理解 Stable Diffusion,我们需要先了解深度学习的核心——神经网络。
神经网络由神经元组成,不同层间的神经元相互连接。可以将其与人脑作类比,包含:
输入层:接收原始数据
隐藏层:一个或多个中间处理层
输出层:产生最终结果
每个神经连接都有一个权重(Weight),用于决定连接的强弱或影响程度。每个隐藏层还包含一个偏置(Bias),其值恒为1,加到输出中以避免输出失效。
训练的本质:当新数据通过输入层传入时,网络会调整所有神经连接的权重。简单来说,你将一组数字输入网络,网络会调整神经连接的数值——这就是学习。
3.2 为什么全连接网络不适合图像?
我们可以将图像视为具有特定颜色值的像素网格,因此图像本质上就是一堆数字。
一张 512×512 像素、3个颜色通道的图像可被存储在约 70万个神经连接中。如果使用全连接神经网络(每个输入连接到每个输出)生成新图像,将需要超过 6000亿个神经连接!
更严重的问题是:全连接网络中输入间没有任何空间信息,因为每个输入都连接到每个输出。因此,全连接神经网络并不适用于图像生成,我们需要不同的方法。
四、关键技术一:卷积神经网络(CNN)
4.1 CNN的优势
我们需要构建一种不同的网络,其中只有少量输入神经元连接到隐藏层,从而大幅减少连接数量。这就是卷积神经网络(Convolutional Neural Network, CNN)。
相连的区域称为局部感受野(Local Receptive Field)。在这个结构中,同一隐层中所有神经元的权重和偏置都相同。
4.2 特征提取能力
这意味着所有隐层神经元都能检测图像中的同一特征。卷积能从图像中提取特征,通过相邻像素的关系来识别模式。
因此,用爱因斯坦照片训练的网络能在图像的任何位置识别他——这就是位置无关性。
4.3 计算机视觉的四个层级
计算机视觉的工作原理是解决"图像中有什么"的问题,分为四个层级:
图像分类:判断整张图是什么
分类+定位:判断是什么并标出位置
目标检测:检测多个物体及其位置
语义分割:精确定位每类物体的每个像素
Stable Diffusion 采用的是第4级——语义分割,这是最精细的层级。
五、关键技术二:U-Net架构
5.1 U-Net的结构特点
让我介绍 U-Net,它之所以被称为 U-Net,是因其形状如字母 U。U-Net 由多个编码器和解码器层组成,编码器与解码器在每一层均有连接,用于向解码器添加数据。
5.2 工作流程
编码阶段:
图像被转换为细小的像素张量流,捕捉图像的精细细节
这些张量被输入编码器,每个模块检测图像中更多特征
在编码过程中,图像被下采样以检测更大范围的特征
细节逐渐减少,因此编码结束时,U-Net 知道图像内容("是什么"),但不知道具体位置("在哪里")
解码阶段:
图像再次上采样以整合信息
编码器收集的数据会在每个解码层添加进去(跨层连接,Skip Connections)
这样既保留了高层语义信息,又恢复了细节
六、关键技术三:扩散过程(Diffusion)
6.1 加噪与去噪
现在来谈谈噪声。通过逐步过程,我们向输入图像逐步添加噪声,直至完全变为噪声。
可以说,带噪图像 = 原图 + 噪声
若已知噪声程度,便可将其减去,还原原始图像。这称为去噪(Denoising)。
因此,去噪过程被逆转,并输入到 U-Net 中。U-Net 学习如何一步步去除噪声,最终恢复出清晰的图像。
6.2 潜在空间(Latent Space)
为减小计算规模,我们先通过自动编码器(VAE, Variational Autoencoder)缩小图像。这个压缩后的表示称为潜在空间。
在潜在空间中进行扩散操作,可以大幅降低计算复杂度,同时保留图像的关键信息。
七、关键技术四:文本编码
7.1 词向量化(Word2Vec)
如何嵌入图像描述?以"蒙娜丽莎"这幅画为例,词语被转换为向量,即一组数字。
我们使用一个名为 Word2Vec 的常用列表,其中已包含所有英文单词,且根据互联网上所有可查文本,相似语境中的词汇具有相似向量。
由于词是向量,可以进行计算。例如:
[ \text{国王} - \text{男人} + \text{女人} = \text{女王} ]
这展示了词向量捕捉语义关系的能力。
7.2 位置编码(Positional Encoding)
但有个问题:看这两个短语——"人杀了狗"和"狗杀了人"。如果只用词向量,它们的表示是相同的!
因此我们还需编码词的位置信息,这就是位置编码。
7.3 自注意力层(Self-Attention)
这里就是我们的自注意力层发挥作用的地方。自注意力机制能够:
处理文本序列中的关系
捕捉上下文信息
理解词与词之间的依赖关系
对文本,我们用自注意力层进行编码,就像用卷积层编码图像一样。
八、核心创新:CLIP编码器
现在是关键问题:若图像和文本使用同一向量空间会怎样?
这实际上由 CLIP 编码器完成:
图像通过卷积层编码为向量
文本通过自注意力层编码为向量
CLIP 将两者映射到同一向量空间
这些向量被输入 U-Net,实现了图像和文本的完美对齐。这就是 Stable Diffusion 能够理解文字提示并生成对应图像的核心原理。
九、完整工作流程
9.1 训练阶段
这里就是我们的训练模型。幸运的是,Stability AI 已替我们完成所有训练工作。训练过程包括:
收集 23 亿图文对数据(Layon5b 数据集)
通过 CNN 提取图像特征
通过自注意力层提取文本特征
CLIP 对齐图文向量空间
U-Net 学习去噪过程
9.2 推理阶段(ComfyUI示例)
现在我快速演示如何使用该模型,通过一个简单的 ComfyUI 工作流:
加载模型:加载训练好的 Stable Diffusion 模型
输入提示词:输入正向与负向提示词
文本编码:用 CLIP 编码器将其转为向量
生成/加载图像:
生成一个纯噪声的隐变量图像,或
直接加载一张输入图像,但还需 VAE 编码器将其转为潜空间
采样计算:需要一个采样器进行去噪计算
生成图像:完成所有步骤后,使用 VAE 解码器生成最终图像
大功告成!
十、总结与展望
Stable Diffusion 的技术突破在于:
多模态融合:通过 CLIP 实现图像和文本的统一表示
高效压缩:通过潜在空间扩散大幅降低计算成本
强大的生成能力:U-Net 架构实现精细的语义分割级别生成
开源生态:2.13GB 的模型大小使其可以在消费级硬件上运行
未来发展方向:
更高分辨率的生成能力
更精确的文本理解和图像控制
解决版权和伦理问题
多模态融合(图像+文本+音频+视频)
从神经网络基础到卷积层、U-Net、扩散过程、文本编码,再到 CLIP 的多模态对齐,Stable Diffusion 将这些技术完美整合,创造出了令人惊叹的图像生成能力。理解这些原理,不仅能帮助我们更好地使用这个工具,也为探索生成式 AI 的未来打开了一扇窗。
如果这篇文章对你有帮助,欢迎点赞、收藏、转发。也欢迎在评论区分享你的经验,我们一起交流学习!
我是 dtsola【IT解决方案架构师 | 一人公司实践者】 ;专注商业、技术、一人公司、个人成长分享。
提供服务:AI项目咨询 | 技术解决方案 | IT项目实施 | 企业技术顾问
博客:https://www.dtsola.com
公众号&VX:dtsola
需交流经验,加微信 dtsola,备注:交流经验。
需IT咨询,加微信 dtsola,备注:IT咨询。
#AI绘画 #StableDiffusion #文生图 #人工智能 #ComfyUI #扩散模型 #独立开发者 #画师 #神经网络 #MidJourney