目录
[1. 扩散模型基础](#1. 扩散模型基础)
[2. 图生图的具体流程](#2. 图生图的具体流程)
[3. 关键技术点](#3. 关键技术点)
[4. 应用实例](#4. 应用实例)
[CLIP 原理](#CLIP 原理)
[2. 核心特点](#2. 核心特点)
[1. DPM(扩散概率模型)](#1. DPM(扩散概率模型))
[2. SDE(随机微分方程)](#2. SDE(随机微分方程))
[3. Karras等人的优化策略](#3. Karras等人的优化策略)
[4. DPM + SDE Karas的特点](#4. DPM + SDE Karas的特点)
[5. 应用场景](#5. 应用场景)
背景
图生图,应该说应用非常广泛。因为文生图,AI绘画只能根据你描述的语言进行绘制,可能执行100次,100次的结果都不同。但是图生图的机制不太一样。当使用图生图机制时,AI首先会分析原画的一些特征,有一些语言很难表达,比较晦涩的特征会被AI 通过原画的方式进行捕捉。因为如果说你大脑中所想,经过人类语言描述AI可能不大能很好的把握,通过提示词的技巧可以使得你想表达的东西距离AI越近(如果你还不会提示词技巧,看下上一篇文章 Stable Diffusion 详解(1)---- 提示词及相关参数-CSDN博客),那么直接用图的方式让AI自己图提取特征就更为直接。如果熟悉神经网络和卷积的朋友都应该清楚,AI 正是通过无数个卷积神经网络提取不同图片的特征,当然著名的model 也很多,比如ResNet-50 等,当然这不是这次讲的重点,重点是你需要知道通过原图提取图片特征是一种更为直接的手段,不要让AI作画范围跑的太偏了。他与prompt 结合,可能会产生一些更好的结果。比如将你的头像转为二次元头像等。
图生图原理
基本原理
其实第一次介绍stable diffusion,大致说了下VAE的基本原理。这次仔细阐述下。实际上图生图的原理所用到的基本模型思想和在另一个专栏里写的 Milvus 实践(1) --- 文本-图片交互式search搭建及原理-CSDN博客有异曲同工之处,AI在输入上接受两个维度的输入信息,一个维度是图片本身的,你可以用诸如ResNet-50 提取。只不过对于stable diffusion 来说,采用了一种称之为 diffusion的encoder方式完成隐空间特征。另一维度,来自文本,一般可以采用诸多LLM embedding coding 中的一种就行,stable diffusion也不例外,只不过采用了一种与图片diffusion encoder相匹配的 embedding coding的方式完成。就像在文本搜索中,CLIP的做法总是将图片与文本的两个维度信息转换为相同向量的维度进行合成一样。
图生图原理主要基于扩散模型(Diffusion Model)的框架,该模型通过模仿物理过程中的分子扩散现象,将图像从纯噪声逐渐演化为清晰图像。在图生图场景中,Stable Diffusion不仅接受文字提示,还接受一张源图片作为额外条件,从而生成与源图相关联且符合提示要求的新图像。以下是Stable Diffusion图生图原理的详细解释:
1. 扩散模型基础
- 定义:扩散模型是一种深度学习模型,它通过逐步添加噪声来"扩散"图像,然后将图像从完全噪声中逐步恢复出原始图像或生成新图像。
- 过程:扩散过程分为两个相反的阶段:扩散(增加噪声)和逆扩散(去除噪声并恢复结构)。在图生图场景中,逆扩散阶段被用来根据用户提供的输入图片和提示词,逐步生成目标图像。
2. 图生图的具体流程
- 输入:用户需要提供一张源图片和相应的提示词。源图片的信息被编码为隐空间中的向量表示,与文字提示共同作为逆扩散过程的起点。
- 编码:源图片通过图像编码器(如VAE Encoder)生成隐空间特征(Latent Feature),同时提示词通过CLIP Text Encoder编码为文本特征。
- 逆扩散:在逆扩散过程中,模型使用噪声预测器(如U-Net结构)来逐步去除隐空间中的噪声,同时根据提示词的语义信息指导生成过程。这个过程中,模型会同时参考源图片的结构特征和提示词的语义信息,从而生成新的图像。
- 解码:经过逆扩散过程后,得到的隐空间特征通过图像解码器(如VAE Decoder)转换回像素空间,生成最终的图像。
3. 关键技术点
- 隐空间表示:源图片的信息被编码为隐空间中的向量表示,这使得模型能够处理高维的图像数据并降低计算复杂性。
- 噪声预测器:U-Net结构的噪声预测器负责预测并去除隐空间中的噪声,同时注入文本语义信息以指导生成过程。
- 语义信息融合:通过CLIP Text Encoder将提示词转换为文本特征,并以Cross Attention的形式与U-Net结构耦合,实现文本和图像的语义信息融合。
- 采样器和重绘幅度:采样器负责协调整个去噪过程,并根据设计模式在动态调整U-Net去噪强度。重绘幅度决定了新生成的图片在多大程度上改变参考图片。
4. 应用实例
在图生图任务中,Stable Diffusion可以应用于多种场景,如将真人照片转换为二次元风格、对图片进行局部修改(如修改颜色、添加元素等)等。用户可以通过调整提示词、重绘幅度等参数来控制生成结果的效果。
综上所述,Stable Diffusion的图生图原理是基于扩散模型的框架,通过编码源图片和提示词、逆扩散过程以及解码过程来生成新的图像。这一过程中涉及了隐空间表示、噪声预测器、语义信息融合等关键技术点,使得Stable Diffusion能够生成出与源图相关联且符合提示要求的新图像。
CLIP 原理
如果你已经是AI 高手了,CLIP 不用我多解释,如果你不是很明白,我还是解释下CLIP的前世今生。
"Contrastive Language-Image Pre-training",是由OpenAI开发的一种能够同时理解文本和图像的人工智能模型。以下是对CLIP的详细解释:
1.基本概念
- 定义:CLIP是一个基于对比学习的多模态学习模型,旨在通过同时学习图像和文本特征,使得模型能够理解并关联不同模态的信息。不得不提一下,最初这个概念是OpenAI 提出的,虽然我们被禁止调用了,但是这个思想还是很不错的。
2. 核心特点
- 多模态能力 :
- CLIP能够同时处理文本和图像两种不同类型的输入,这是其最显著的特点之一。传统的AI模型通常只处理单一类型的输入,如只理解文字(如GPT-3)或只理解图像(如ResNet)。
- 这种多模态能力使得CLIP特别适合于需要将文字和图像关联起来的任务,如图像搜索、图像生成等。
- 对比学习方法 :
- CLIP的名字中的"Contrastive"指的是一种学习方法,即对比学习。在这种学习方法中,模型通过比较不同样本之间的相似性和差异性来学习数据特征。
- 在CLIP中,对比学习被用来训练模型理解图像和文本之间的对应关系。具体来说,模型会学习将相关的图像和文本对映射到相似的特征空间中,而将不相关的图像和文本对映射到不同的特征空间中。
- 强大的关联能力 :
- 通过学习图像和文本之间的映射关系,CLIP能够准确地生成符合文本描述的图像,或者根据图像内容找到合适的文本标签。
- 这种关联能力使得CLIP在图像生成、图像识别、内容创建等任务中具有巨大的潜力。
使用及参数
随机种子
这个参数要说一下,在上一节中,有人问,根据相同提示词,AI绘制出的东西总是不同的,确实是这样,因为AI 绘画有随机性,他只需要满足你描述的prompt即可。但是我们有时候只是想改变背景,保留住主元素,比如上一节的哪个快艇,我们想保留住,只是想改变背景蓝色的大海怎么办?
那这时,就需要看下当时的随机数是多少,用当时的随机数即可。比如上一节的例子中,最后绘制出来的图片是这样的:
我们想保留之前的那个快艇:
将随机种子找到,hold 住。再生成图:
就回来了。
重绘幅度
就是希望AI重新绘制的力度是多少,太大容易走样,太小没有什么新意。根据我的经验,设置在6-8之间比较合适。
图像宽高
建议是生成的图片与原图片等比例,不然容易出问题,哪怕是以后重新扩图也行。今天绘制一个stable diffusion 生成的美女,看看把她变为 二次元风格会是怎样。
原图信息
采样方法
其实采用方法很多,主要用来描述怎么解析原图和怎么与之生成配对的新图的方案。我比较喜欢采用DPM + Karas 的方式,但是我还是解释下原理,没听明白,可以跳过,其实数学的东西比较多。先泛泛解释下。
采样方法DPM + SDE Karas(或DPM++ SDE Karras)是Stable Diffusion等图像生成模型中的一种采样策略,它结合了DPM(Diffusion Probabilistic Models,扩散概率模型)和SDE(Stochastic Differential Equation,随机微分方程)以及Karras等人的优化策略。以下是对该采样方法的详细解析:
1. DPM(扩散概率模型)
DPM是一种通过逐步添加噪声到数据中,然后学习如何逐步去除噪声以恢复原始数据的生成模型。这种方法在图像生成领域取得了显著成果,因为它能够生成高质量的图像,并且具有较好的可解释性和可控性。
2. SDE(随机微分方程)
SDE是一种描述系统随时间变化的随机过程的数学工具。在图像生成中,SDE被用来模拟图像数据的扩散过程,即图像数据逐渐添加噪声的过程。通过求解SDE的逆过程,可以生成去噪后的图像,即原始图像。
3. Karras等人的优化策略
Karras等人提出了一种高效的随机数生成方法和优化策略,这些策略被应用于DPM + SDE Karas中,以减少计算量和内存消耗,同时提高生成图像的质量和效率。
4. DPM + SDE Karas的特点
- 高效性:结合了DPM和SDE的优点,能够在较少的采样步数下生成高质量的图像。
- 可控性:通过调整SDE的参数和Karras等人的优化策略,可以实现对生成图像过程的精细控制。
- 多样性:由于SDE的随机性,DPM + SDE Karas能够生成具有多样性的图像样本。
5. 应用场景
DPM + SDE Karas适用于需要高质量、高效率图像生成的场景,如艺术创作、游戏开发、虚拟现实等。此外,它还可以用于图像编辑、图像超分辨率等图像处理任务。
prompt的书写
上一篇已经解释过了,就是 内容prompt + 通用prompt。内容很简单,我就写 1 girl。 通用 prompt 基本就是那些套路,这个需要多练,直接上那些固定讨论写法就好。
小结
看下最终的设置如下:
正向提示词
a girl,
(masterpiece:1,2),best quality,masterpiece,highres,original,extremely detailed wallpaper,
反向提示词
NSFW,(worst quality:2),(low quality:2),(normal quality:2),lowres,normal quality,((monochrome)),((grayscale)),skin spots,acnes,skin blemishes,age spot,(ugly:1.331),(duplicate:1.331),(morbid:1.21),(mutilated:1.21),(tranny:1.331),mutated hands,(poorly drawn hands:1.5),blurry,(bad anatomy:1.21),(bad proportions:1.331),extra limbs,(disfigured:1.331),(missing arms:1.331),(extra legs:1.331),(fused fingers:1.61051),(too many fingers:1.61051),(unclear eyes:1.331),lowers,bad hands,missing fingers,extra digit,bad hands,missing fingers,(((extra arms and legs))),
其他设置
底模
其实已经有很多人上传了各种你你可能需要的底膜,所谓底膜,如果你懂AI原理,其实就是 以前的checkpoint,说直白点就是AI 绘画大模型针对当下你需要的这个场景提前训练好的模型参数。不过现在用safetensor 的方式比较流行,以前是 kpt 文件的方式存储,有安全问题,可能引入其他可执行代码。相对来说 safetensor 就是存储的模型layer 张量数据,很单纯,安全性高。不扯远了,你可以选择一个已经有的成熟底膜。我这里选择的是
好了,设置完成,看看出图效果。
第一幅是原图,后面三张是二次元生成的动漫效果。