深入浅出理解 AI 生图模型

news2024/10/6 14:33:20

目录

引言

一、Stable Diffusion原理

首先

随后

最后

二、DDPM模型

1 资料

2 原理

扩散过程

反向过程

3 公式结论

三、优缺点

优点:

缺点:

四、改进与完事

LDM代表作

原理概括

 Latent Space(潜空间)

五、总结


引言

众所周知,视频是图片连起来快速播放的,所以Stable Diffusion可能是sora参考的重要模型之一。
随着深度学习和生成模型的发展,扩散模型在生成领域也取得了显著进步。这类扩散模型通常分为扩散过程和逆扩散过程。

扩散过程是对数据(如图像)逐步加入噪声,而逆扩散过程则是从噪声中逐渐消除噪声以生成数据。这类模型在图像生成、文本到图像的转换等领域有广泛应用,如DALL-E 2和Stable Diffusion等。

Stable Diffusion(稳定扩散)严格说来它是一个由几个组件(模型)构成的系统,而非单独的一个模型。

一、Stable Diffusion原理

首先

用户输入的Prompt会被Text Encoder(文本编译器)处理,转化为一系列词特征向量。这一步骤会生成77个长度相同的向量,每个向量都包含768个维度。这些向量实际上是将文本信息转化为机器能够理解和处理的数字序列。

随后

这些特征向量会与一张随机图(可视为充满电子雪花或信息噪声的图像)一同输入到Image Information Creator中。在此环节,机器首先将这些特征向量和随机图转换至Latent Space(潜空间)。接着,根据这些特征向量的指引,机器会对随机图进行“降噪”处理,生成一个“中间产物”。这个中间产物虽然对人类而言是难以理解的数字图像,但它已经蕴含了用户Prompt中描述的信息。

最后

这个中间产物会经过Image Decoder(图片解码器)的处理,转化为一张真实可见的图片。

这个过程中,扩散模型功不可没,今天主要讲讲扩散模型的代表DDPM

二、DDPM模型

1 资料

  1. 代表之作:Denoising Diffusion Probabilistic Models(https://arxiv.org/abs/2006.11239)
  2. 官方代码:https://github.com/hojonathanho/diffusion

2 原理

DDPM模型通常指的是去噪扩散概率模型(Denoising Diffusion Probabilistic Models)

扩散过程

在扩散过程中,一张图片会逐渐添加高斯噪声,直至其变成随机噪声。

反向过程

而反向过程则是一个去噪过程,它根据扩散过程中学习到的图片风格,对随机噪声进行去噪,最终生成一张与学到的风格相同的图片。

DDPM模型的本质作用是学习训练数据的分布,从而生成尽可能符合训练数据分布的真实图片。6b82cc92220c40beb28a4405b6e88337.png

 (上图,为其马尔可夫链)

3 公式结论

164f7f97562a4485ae2823ebb288127c.png

 想看推导过程的可以看原论文Denoising Diffusion Probabilistic Models

三、优缺点

DDPM模型(深度确定性策略梯度模型)在强化学习领域具有其独特的优点和缺点。下面是对其优缺点的简要分析:

优点:

  1. 高效的动作采样:相较于其他强化学习方法(如基于采样的策略梯度方法),DDPM采用了确定性策略,这意味着在给定状态下,动作是唯一的,不需要进行采样。这大大减少了计算量,提高了训练效率。
  2. 稳定的训练过程:DDPM通过引入目标网络和软更新机制,使得训练过程更加稳定。这有助于避免训练过程中的震荡和发散,使得模型更容易收敛到好的解。
  3. 良好的性能:在连续动作空间的强化学习任务中,DDPM通常能够表现出良好的性能。它能够有效地处理复杂的状态空间和动作空间,从而解决一系列具有挑战性的任务。

缺点:

  1. 对超参数敏感:DDPM的性能在很大程度上取决于超参数的选择,如学习率、折扣因子等。不合适的超参数可能导致模型训练不稳定或性能不佳。因此,在实际应用中,需要进行大量的超参数调优。
  2. 难以处理高维输入:当状态空间或动作空间维度较高时,DDPM可能会面临挑战。高维输入可能导致模型复杂度增加,训练难度加大,甚至可能引发过拟合等问题。
  3. 对噪声敏感:由于DDPM采用确定性策略,它可能对输入中的噪声较为敏感。在实际应用中,如果状态表示或奖励函数存在噪声,可能会影响模型的稳定性和性能。

需要注意的是,以上优缺点是基于一般情况的总结,具体表现可能因任务和数据集的不同而有所差异。在实际应用中,应根据具体情况选择合适的模型和方法。

四、改进与完事

然后我又看到了这篇

LDM代表作

High-Resolution Image Synthesis with Latent Diffusion Models

https://arxiv.org/abs/2112.10752

原理概括

为了降低训练扩散模型的算力,LDMs使用一个Autoencoder去学习能尽量表达原始image space的低维空间表达(latent embedding),这样可以大大减少需要的算力。

1816a0ea5ec948799a82b57ac4fea7d9.png

 Latent Space(潜空间)

这里用了潜空间,在噪声环节,机器首先将这些特征向量和随机图转换至Latent Space(潜空间)。接着,根据这些特征向量的指引,机器会对随机图进行“降噪”处理,生成一个“中间产物”。1299d62c62824d0198f91323d85b3373.png

 (以上是Wiki上的简单定义https://zh.m.wikipedia.org/zh-cn/%E6%BD%9C%E7%A9%BA%E9%97%B4_(%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0)

五、总结

AI绘画的未来发展方向看起来充满了无限可能。随着人工智能技术的不断进步,像Stable Diffusion这样的AI绘画将会更加智能化,能够更好地模仿人类艺术家的风格和技巧,使非艺术家也能创作出优秀的绘画作品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1523328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zookeeper快速入门一:zookeeper安装与启动

本文是zookeeper系列之快速入门中的第一篇,欢迎大家观看与指出不足。 写在前面: 不影响教程,笔者安装zookeeper用的是WSL(windows下的linux子系统),当然你想直接在windows上用zookeeper也是可以的。 如果你也想用ws…

MinGW64 windows gcc编译器安装

下载编译好的文件包 https://sourceforge.net/projects/mingw-w64/ 打开网址 界面左上方 点File 滚轮 滚到下面 点 红框 解压 配置path 环境变量

西门子PLC常用底层逻辑块分享_调节阀

文章目录 前言一、功能概述二、调节阀程序编写1.创建自定义数据类型2.创建FC块“调节阀”3.编写程序 前言 本文分享一个自己编写的调节阀控制逻辑块。 一、功能概述 手动状态、自动状态、检修状态自由切换;手动状态下,手动输入阀门开度值;自…

不可能,看了这篇笔记还不会用例设计!

随着测试技术的提升,我们在不断学习跟进的同时,也不能把基础知识忘却了。 测试基础里面最重要的一个成果输出就是测试用例,也是测试思维的集中体现。现在虽然有些岗位不写用例了,但是要求还要测试执行覆盖全,不能漏测。…

我在技​​术面试中用 ChatGPT 作弊,没人知道

众所周知,ChatGPT 已经彻底改变了人们的工作方式。它既能帮助小型企业自动化管理任务,又能为 Web 开发人员编写整个 React 组件,它的作用可以说怎么夸都不过分。 在 interviewing.io,我们一直在思考 ChatGPT 将给技术面试带来什么…

YOLOV5 改进:增加注意力机制模块(SE)

1、前言 本章将介绍yolov5的改进项目,为v5增加新的模块---注意力机制、SE模块 大部分更改的代码是重复的,只有少部分需要更改,下面会详细讲解 yolov5的yaml文件介绍:YOLOV5 模型:利用tensorboard查看网络结构和yaml文件介绍-CSDN博客 yolov5的模块更改,C3更改为C2f模块…

用c++实现计数排序、颜色排序问题

3.3.1 计数排序 【问题】 假设待排序记录均为整数且取自区间[0,k],计数排序(count sort)的基本思想是对每一个记录x,确定小于x的记录个数,然后直接将x放在应该的位置。例如,小于x的记录个数是10,则x就位于第11个位置。 【想法】 对于待排序序…

计算机设计大赛 题目:基于机器视觉的图像矫正 (以车牌识别为例) - 图像畸变校正

文章目录 0 简介1 思路简介1.1 车牌定位1.2 畸变校正 2 代码实现2.1 车牌定位2.1.1 通过颜色特征选定可疑区域2.1.2 寻找车牌外围轮廓2.1.3 车牌区域定位 2.2 畸变校正2.2.1 畸变后车牌顶点定位2.2.2 校正 7 最后 0 简介 🔥 优质竞赛项目系列,今天要分享…

【大模型系列】问答理解定位(Qwen-VL/Llama2/GPT)

文章目录 1 Qwen-VL(2023, Alibaba)1.1 网络结构1.2 模型训练 2 Llama2(2023, Meta)2.1 网络结构2.1.1 MHA/GQA/MQA2.1.2 RoPE(Rotary Position Embedding, 旋转式位置编码)2.1.3 RMSNorm 2.2 推理2.2.1 集束搜索(beam search)2.2.2 RoPE外推 3 GPT系列(OpenAI) 1 Qwen-VL(2023…

免费开源多层级多标签文本分类|文本分类接口|文本自动分类

一、开源项目介绍 一款多模态AI能力引擎,专注于提供自然语言处理(NLP)、情感分析、实体识别、图像识别与分类、OCR识别和语音识别等接口服务。该平台功能强大,支持本地化部署,并鼓励用户体验和开发者共同完善&#xf…

【集成开发环境】-VS Code:C/C++ 环境配置

简介 VS Code,全称Visual Studio Code,是一款由微软开发的跨平台源代码编辑器。它支持Windows、Linux和macOS等操作系统,并且具有轻量级、高效、可扩展等特点,深受广大开发者的喜爱。 VS Code拥有丰富的功能特性,包括…

6.【Linux】进程间通信(管道命名管道||简易进程池||简易客户端服务端通信)

介绍 进程间通信的方式 1.Linux原生支持的管道----匿名和命名管道 2.System V-----共享内存、消息队列、信号量 3.Posix------多线程、网路通信 进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。…

科研学习|论文解读——了解在线环境中的多数观点形成过程:Facebook的探索性方法(IPM, 2018)

论文标题 Understanding the majority opinion formation process in online environments: An exploratory approach to Facebook 摘要 在在线社区的社会互动过程中,多数观点经常被观察到,但很少有研究用实证数据来解决这一问题。为了确定一个合适的理论…

解决MySQL密码无法设置问题

引言 当我们第一次在Linux中安装好MySQL服务后,使用如下命令可以查看第一次进入MySQL的临时密码。 cat /var/log/mysqld.log | grep password但是我们如何修改它为自己想要的永久MySQL密码呢?在修改过程中出现的密码太短而无法设置的问题如何解决呢&am…

2024 新版 mysql 和 DBeaver 的安装教程,来啦!

mysql community 官网:https://dev.mysql.com/ DBeaver Community 官网:https://dbeaver.io/download/ 1. mysql 安装教程 进入官网 这里我选择的是社区版(对于新手来说,学生是再好不过了,免费又开源) 选择…

图解Transformer——注意力计算原理

文章目录 1、输入序列怎样传入注意力模块 2、进入注意力模块的矩阵的每一行,都是源序列中的一个词 3、每一行,都会经过一系列可学习的变换操作 4、如何得到注意力分数 5、Query、Key、Value的作用 6、点积:衡量向量之间的相似度 7、Transform…

如何使用机器学习构建自己的推荐系统?

一、说明 在广阔的电子商务领域,众多产品和服务都在争夺我们的注意力,推荐系统的作用变得至关重要。这些智能系统彻底改变了我们在线发现和接触产品的方式,使其成为现代电子商务平台成功的基石。 推荐系统,通常称为推荐引擎或简称…

The service already exists!怎么解决,Windows怎么安装/卸载服务?

问题描述 有时候,我们在Windows系统上安装服务时会遇到报错,The service already exists! 问题分析 这个报错说明此服务已经存在了,所以我们不能再次安装,但有时候我们明明是第一次安装,为什么也会报这个错误呢? 在Windows上注册服务通常需要使用命令行工具或者特定的…

如何降低node.js版本(nvm下载安装与使用)

一、问题场景 项目打包时提示以下错误 error js/chunk-f9fc6130.f14f870a.js from Terser Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:71:19)at Object.createHash (node:crypto:133:10) 这个错误提示表明在执行Ter…

大模型学习笔记(一):部署ChatGLM模型以及stable-diffusion模型

大模型学习笔记(一):部署ChatGLM模型以及stable-diffusion模型 注册算力平台(驱动云平台)1.平台注册2.查看算力3.进入平台中心 部署ChatGLM3-6B模型1.创建项目2.配置环境设置镜像源、克隆项目修改requirements 3.修改w…