AI大模型教程
一起来学习

【stable diffusion模型】文生图模型原理,以及Stable Diffusion部署体验

前言

LLM推理优化系统工程概述

截止到目前市面上比较主流的基于文字生成影像的模型都是基于了3大部分组成的。

Encoder Model , Generation Model ,Decoder Model。并且这三个部分是分开训练,然后组合在一起从而构成了文生图大模型。

图片来源于B站李宏毅教授讲问生图原理,侵删。

下面我们可以看一下Stable Diffusion, DAll -E ,以及Imagen的架构示意图。它们基本上也都是基于这三大部分构成的。

所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~

一、关键的前置认知:

1.1 基础概念:

FID分数:是一种衡量生成图像质量的指标,较低的FID分数表示更好的图像质量。

  • “red points: real images” 表示红色点代表真实图像的特征向量。

  • “blue points: generated images” 表示蓝色点代表生成图像的特征向量。

  • “FID = Frechet distance between the two Gaussians” 表示FID是两个高斯分布之间的弗雷歇距离。

  • “Smaller is better” 表示FID值越小,表示生成图像的质量越好。

CLIP Score:是一个用于评估文本到图像生成任务中生成图像与输入文本相关性的指标。

即文本进变向量,图像进变向量。然后比较两个向量在高斯分布上的距离。分值越高越好。

1.2 重要结论:

(a)显示了不同大小(Small, Large, XL, XXL)的T5编码器对最终图像生成质量的影响。随着T5模型大小的增加,其在低CLIP Score范围内的表现有所改善,但超过某个阈值后,较大的模型不再显著提升图像质量,甚至可能导致过拟合,从而影响性能。

(b)展示了不同大小(300M, 500M, 1B, 2B参数量)的U-Net模型对图像生成质量的影响。随着模型复杂度(即参数量)的增加,U-Net在提高图像质量方面表现出了一定的优势,但在高CLIP Score区域,较大的模型可能会导致过拟合,从而影响生成图像的质量。

综上,在生成图像模型中,编码器(如T5)的重要性超过了生成模型(如U-Net)。具体表现为,随着编码器规模的增加,生成图像的质量显著提高,而生成模型规模的增加对生成图像质量的提升相对较小。因此,编码器在生成图像模型中的作用更为关键。

即,一个好的文生图模型,Encoder是关键的核心,并且其关键程度要大于Generation Model!!!

二、文生图模型的工作原理

2.1 文生图模型的基本原理

– 其核心的逻辑是,

– 正向(加噪过程):一张图像 —> 加噪 —> 加噪 —>加噪… 直至变成纯噪声

– 反向(去噪过程):纯噪声 —> 去噪 —> 去噪 —>去噪… 直至还原成一张图片

– 这是一个AE(Auto Encoder)模型的变体,即自编码模型

– 学习的过程就是,将一段向量转换成一张图片的过程(加噪,去噪的过程)。

– 实际推理的过程,就是“噪声”变向量的过程。

2.2 正向(Forward Process)&反向(Backward Process)过程逻辑说明:

上图就是一个典型加噪过程。在Encoder对图像进行编码后,开始分步骤加躁。直至加至纯噪声。不过这时的“纯噪声”实际上是指图像已经无法辨认出其原始内容,但严格来说,它并不是一个完全随机的噪声向量。它的像素值仍然遵循某种概率分布,但不再保留任何关于原始图像的信息。

上图就是一个典型降噪的过程。我们会看到一系列重复的去噪模块(Denoise Block),每个模块都试图从当前的噪声图像中移除一部分噪声。每次去噪操作后,图像的某些部分变得更加清晰,显示出更多的结构信息。例如,我们可以观察到一些颜色块逐渐形成图案,暗示着图像内容的逐步恢复。

去噪过程是循环进行的,每次迭代都会使图像更加接近原始状态。图片中展示了多轮迭代的效果,可以看到图像从最初的混乱状态逐渐转变为具有更多可识别特征的状态。

2.3 解码器(Decoder)的原理

在最后一轮去噪之后,图像被传递给一个解码器(Decoder)。解码器的任务是将去噪后的特征重新组合成完整的图像。

其实核心本质,就是把所谓的中间产物(Latent Representation) 还原为一张图片。让生成图片与原始图片向量,在高斯分布上,越接近越好。

通过大量的数据进行训练,使整个模型学习文本和图像之间的对应关系。

2.4 推理过程说明

  • 首选输入文档,例如:“一只雪地里的猫”;

  • 使用预训练的文本编码器(如BERT、T5)将文本描述转换为固定长度的向量表示;

  • 将文本编码的向量作为条件输入到图像生成模型中;–Vtext

  • 生成模型从一个随机噪声向量开始; – Z

  • 通过一系列生成步骤,逐步减少噪声,恢复图像的结构信息。逐步将噪声向量转换为与文本描述匹配的图像。 – Vtext和Z生成中间特征向量f

  • 生成模型输出一张图像,该图像应与输入的文本描述相匹配。– f转换为生成的图像Xgen

以下是,训练过程与推理过程在架构上的区别示意图:

推理过程的核心本质是,首先进行多模态抽特征,生成一个向量。由这个向量去干扰去噪的过程。由此可以实现控制生成的结果。

三、Stable Diffusion 部署体验

模型名称:iic/multi-modal_chinese_stable_diffusion_v1.0 即阿里云中文微调过的stable_diffusion模型

环境:魔搭的NoteBook

下载模型:git clone https://www.modelscope.cn/iic/multi-modal_chinese_stable_diffusion_v1.0.git

安装版本低于0.21.0的diffusers库。diffusers是一个用于实现扩散模型的库,通常用于图像生成等任务。这里使用特定版本是为了确保与代码中其他部分的兼容性。

pip install 'diffusers

导出相关依赖

import torch  
import cv2  
from modelscope.pipelines import pipeline  
from modelscope.utils.constant import Tasks  
from IPython.display import display, Image as IPImage  
from PIL import Image

设定任务,并指定模型

task = Tasks.text_to_image_synthesis  
model_id = 'damo/multi-modal_chinese_stable_diffusion_v1.0'

魔搭社区的基础调用示例

pipe = pipeline(task=task, model=model_id)  
output = pipe({'text': '中国山水画'})  
cv2.imwrite('result.png', output['output_imgs'][0])

输出为opencv numpy格式,转为PIL.Image

from PIL import Image  
img = output['output_imgs'][0]  
img = Image.fromarray(img[:,:,::-1])  
img.save('result.png')

展示结果图片

display(IPImage(filename='result.png'))

结果如下:

当然Prompt如果不是很符合训练的数据习惯时,大概率会有翻车的可能,例如:

最后说一下,这个推理的过程还是非常吃资源的。例如使用纯CPU的NoteBook环境,在8核24G的配置下,生成一张图片大概需要将近30分钟。然后同样的配置,如果使用的是24G的GPU,则生成一张图片的速度在1.5分钟 – 3分钟之间。

可以使用:

nvidia-smi 

命令来查看GPU的使用率。这里我之前忘记截图了,但是推理过程中,基本上快把24G的内存吃满了。

好了,以上就是本篇的全部内容了。希望对各位有一点帮助。

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

零基础AI绘画学习资源介绍

👉stable diffusion新手0基础入门PDF👈


👉AI绘画必备工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉AI绘画基础+速成+进阶使用教程👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉12000+AI关键词大合集👈

这份完整版的AI绘画全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

文章来源于互联网:【stable diffusion模型】文生图模型原理,以及Stable Diffusion部署体验

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » 【stable diffusion模型】文生图模型原理,以及Stable Diffusion部署体验

【stable diffusion模型】文生图模型原理,以及Stable Diffusion部署体验

前言

LLM推理优化系统工程概述

截止到目前市面上比较主流的基于文字生成影像的模型都是基于了3大部分组成的。

Encoder Model , Generation Model ,Decoder Model。并且这三个部分是分开训练,然后组合在一起从而构成了文生图大模型。

图片来源于B站李宏毅教授讲问生图原理,侵删。

下面我们可以看一下Stable Diffusion, DAll -E ,以及Imagen的架构示意图。它们基本上也都是基于这三大部分构成的。

一、关键的前置认知:

1.1 基础概念:

FID分数:是一种衡量生成图像质量的指标,较低的FID分数表示更好的图像质量。

  • “red points: real images” 表示红色点代表真实图像的特征向量。

  • “blue points: generated images” 表示蓝色点代表生成图像的特征向量。

  • “FID = Frechet distance between the two Gaussians” 表示FID是两个高斯分布之间的弗雷歇距离。

  • “Smaller is better” 表示FID值越小,表示生成图像的质量越好。

CLIP Score:是一个用于评估文本到图像生成任务中生成图像与输入文本相关性的指标。

即文本进变向量,图像进变向量。然后比较两个向量在高斯分布上的距离。分值越高越好。

1.2 重要结论:

(a)显示了不同大小(Small, Large, XL, XXL)的T5编码器对最终图像生成质量的影响。随着T5模型大小的增加,其在低CLIP Score范围内的表现有所改善,但超过某个阈值后,较大的模型不再显著提升图像质量,甚至可能导致过拟合,从而影响性能。

(b)展示了不同大小(300M, 500M, 1B, 2B参数量)的U-Net模型对图像生成质量的影响。随着模型复杂度(即参数量)的增加,U-Net在提高图像质量方面表现出了一定的优势,但在高CLIP Score区域,较大的模型可能会导致过拟合,从而影响生成图像的质量。

综上,在生成图像模型中,编码器(如T5)的重要性超过了生成模型(如U-Net)。具体表现为,随着编码器规模的增加,生成图像的质量显著提高,而生成模型规模的增加对生成图像质量的提升相对较小。因此,编码器在生成图像模型中的作用更为关键。

即,一个好的文生图模型,Encoder是关键的核心,并且其关键程度要大于Generation Model!!!

所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~

二、文生图模型的工作原理

2.1 文生图模型的基本原理

– 其核心的逻辑是,

– 正向(加噪过程):一张图像 —> 加噪 —> 加噪 —>加噪… 直至变成纯噪声

– 反向(去噪过程):纯噪声 —> 去噪 —> 去噪 —>去噪… 直至还原成一张图片

– 这是一个AE(Auto Encoder)模型的变体,即自编码模型

– 学习的过程就是,将一段向量转换成一张图片的过程(加噪,去噪的过程)。

– 实际推理的过程,就是“噪声”变向量的过程。

2.2 正向(Forward Process)&反向(Backward Process)过程逻辑说明:

上图就是一个典型加噪过程。在Encoder对图像进行编码后,开始分步骤加躁。直至加至纯噪声。不过这时的“纯噪声”实际上是指图像已经无法辨认出其原始内容,但严格来说,它并不是一个完全随机的噪声向量。它的像素值仍然遵循某种概率分布,但不再保留任何关于原始图像的信息。

上图就是一个典型降噪的过程。我们会看到一系列重复的去噪模块(Denoise Block),每个模块都试图从当前的噪声图像中移除一部分噪声。每次去噪操作后,图像的某些部分变得更加清晰,显示出更多的结构信息。例如,我们可以观察到一些颜色块逐渐形成图案,暗示着图像内容的逐步恢复。

去噪过程是循环进行的,每次迭代都会使图像更加接近原始状态。图片中展示了多轮迭代的效果,可以看到图像从最初的混乱状态逐渐转变为具有更多可识别特征的状态。

2.3 解码器(Decoder)的原理

在最后一轮去噪之后,图像被传递给一个解码器(Decoder)。解码器的任务是将去噪后的特征重新组合成完整的图像。

其实核心本质,就是把所谓的中间产物(Latent Representation) 还原为一张图片。让生成图片与原始图片向量,在高斯分布上,越接近越好。

通过大量的数据进行训练,使整个模型学习文本和图像之间的对应关系。

2.4 推理过程说明

  • 首选输入文档,例如:“一只雪地里的猫”;

  • 使用预训练的文本编码器(如BERT、T5)将文本描述转换为固定长度的向量表示;

  • 将文本编码的向量作为条件输入到图像生成模型中;–Vtext

  • 生成模型从一个随机噪声向量开始; – Z

  • 通过一系列生成步骤,逐步减少噪声,恢复图像的结构信息。逐步将噪声向量转换为与文本描述匹配的图像。 – Vtext和Z生成中间特征向量f

  • 生成模型输出一张图像,该图像应与输入的文本描述相匹配。– f转换为生成的图像Xgen

以下是,训练过程与推理过程在架构上的区别示意图:

推理过程的核心本质是,首先进行多模态抽特征,生成一个向量。由这个向量去干扰去噪的过程。由此可以实现控制生成的结果。

三、Stable Diffusion 部署体验

模型名称:iic/multi-modal_chinese_stable_diffusion_v1.0 即阿里云中文微调过的stable_diffusion模型

环境:魔搭的NoteBook

下载模型:git clone https://www.modelscope.cn/iic/multi-modal_chinese_stable_diffusion_v1.0.git

安装版本低于0.21.0的diffusers库。diffusers是一个用于实现扩散模型的库,通常用于图像生成等任务。这里使用特定版本是为了确保与代码中其他部分的兼容性。

pip install 'diffusers

导出相关依赖

import torch  
import cv2  
from modelscope.pipelines import pipeline  
from modelscope.utils.constant import Tasks  
from IPython.display import display, Image as IPImage  
from PIL import Image

设定任务,并指定模型

task = Tasks.text_to_image_synthesis  
model_id = 'damo/multi-modal_chinese_stable_diffusion_v1.0'

魔搭社区的基础调用示例

pipe = pipeline(task=task, model=model_id)  
output = pipe({'text': '中国山水画'})  
cv2.imwrite('result.png', output['output_imgs'][0])

输出为opencv numpy格式,转为PIL.Image

from PIL import Image  
img = output['output_imgs'][0]  
img = Image.fromarray(img[:,:,::-1])  
img.save('result.png')

展示结果图片

display(IPImage(filename='result.png'))

结果如下:

当然Prompt如果不是很符合训练的数据习惯时,大概率会有翻车的可能,例如:

最后说一下,这个推理的过程还是非常吃资源的。例如使用纯CPU的NoteBook环境,在8核24G的配置下,生成一张图片大概需要将近30分钟。然后同样的配置,如果使用的是24G的GPU,则生成一张图片的速度在1.5分钟 – 3分钟之间。

可以使用:

nvidia-smi 

命令来查看GPU的使用率。这里我之前忘记截图了,但是推理过程中,基本上快把24G的内存吃满了。

好了,以上就是本篇的全部内容了。希望对各位有一点帮助。

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

零基础AI绘画学习资源介绍

👉stable diffusion新手0基础入门PDF👈

👉AI绘画必备工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉AI绘画基础+速成+进阶使用教程👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉12000+AI关键词大合集👈

这份完整版的AI绘画全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

文章来源于互联网:【stable diffusion模型】文生图模型原理,以及Stable Diffusion部署体验

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » 【stable diffusion模型】文生图模型原理,以及Stable Diffusion部署体验
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们