深入浅出理解 AI 生图模型

引言

众所周知,视频是图片连起来快速播放的,所以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://xiahunao.cn/news/2869860.html

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

相关文章

SPSS k-均值聚类的 anova分析表解读

from&#xff1a;SPSS K均值聚类&#xff08;k-means&#xff09;和可视化方法 - CollinsLi - 博客园 (cnblogs.com) F值&#xff1a;变量对聚类的贡献 显著性水平&#xff1a;<0.05 则因子显著

整数和浮点数在内存中是如何存储的?

1.整数在内存中的存储 首先数据在内存中都是以二进制的形式存储的&#xff0c;而整数在内存中也是以二进制的形式存储的&#xff0c;而整数的表示形式有三种&#xff0c;分别是源码&#xff0c;反码&#xff0c;补码&#xff0c;而整数在内存中是以补码的形式存放的。 三种表示…

SQLiteC/C++接口详细介绍之sqlite3类(十七)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十六&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍之sqlite3类&#xff08;十八&#xff09; ​ 53.sqlite3_trace_v2 函数功能&#x…

element-plus怎么修改表单中的label字体颜色及大小

问题描述&#xff1a; 当我们在vue3中使用element-plus组件库提供的表单组件时&#xff0c;有时我们需要修改表单中label的字体颜色等属性&#xff0c;这是如果直接选中label的class进行修改是不起作用的&#xff0c;我们只需深度选择即可选中并进行修改。 比如&#xff1a; …

GET和POST方法的区别

GET和POST的区别 在我们开发项目的时候常常会在Controller层使用到POST方法或者GET方法&#xff0c;犹豫到底将接口定义为GET方法还是POST方法&#xff1f;那这两者之间有什么区别呢&#xff1f; 看一下官方定义&#xff1a; GET 和 POST 是 HTTP 协议中最常用的两种请求方法…

软考79-上午题-【面向对象技术3-设计模式】-结构型设计模式02

一、组合模式 1-1、意图 将对象组合成树型结构&#xff0c;以表示"部分-整体"的层次结构。Composite使得用户对单个对象和组 合对象的使用具有一致性。 示例&#xff1a;对象&#xff1a;文件、文件夹 1-2、结构 Component 为组合中的对象声明接口&#xff1b;在适…

MacBook使用——彻底卸载并删除软件:NTFS for Mac

问题 之前因MacBook读写NTFS格式移动硬盘&#xff0c;我安装并使用了 Paragon NTFS for Mac &#xff0c;试用期结束后将其从【应用程序】中卸载移除了。但之后每次开机启动时&#xff0c;系统还是会弹出【激活】通知&#xff0c;如下图 解决 Step1、在用户目录下的 Library 目…

Kubernetes 编排系统

Kubernetes 编排系统 Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序。它提供了一种灵活而强大的方式来管理容器化应用程序的生命周期&#xff0c;包括自动化部署、扩展、负载均衡、故障恢复等功能…

01初识Python

一、Python 简介 二、为什么要学Python? 三、Python 安装 四、输出第一条指令 五、总结 一、Python 简介 Python是一种高级编程语言,由Guido van Rossum于1991年创建。它具有简单易学的语法结构,被广泛应用于Web开发、数据科学、人工智能等领域。 Python具有丰富的库…

MySQL安装(Mac系统)

首先要删除本机原有的mysql 停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop不放心可以使用以下命令查询并杀死进程 ps aux | grep mysqld sudo kill <PID>再次尝试停止服务 sudo /usr/local/mysql/support-files/mysql.server stop卸载MySQL&…

蓝桥杯单片机快速开发笔记——PWM

一、原理分析 使用定时器输出PWM&#xff08;脉宽调制&#xff09;信号是通过微控制器的定时器模块来生成一种周期性的脉冲信号&#xff0c;通过控制脉冲的高电平时间&#xff08;占空比&#xff09;来控制输出信号的平均功率。以下是生成PWM信号的基本原理概述&#xff1a; 定…

PCB设计中的MARKER

今天在给板子布局的时候发现了一个这样的东西&#xff0c;名叫MARKER&#xff0c;查了一下这个东西分享一下&#xff1a; 目录 MARKER是什么样的&#xff1f; MARKER的用途&#xff1a; MARKER是必须的吗&#xff1f; MARKER是什么样的&#xff1f; 他在PCB中是这样的&…

力扣每日一题 矩阵中移动的最大次数 DP

Problem: 2684. 矩阵中移动的最大次数 复杂度 ⏰ 时间复杂度: O ( n m ) O(nm) O(nm) &#x1f30e; 空间复杂度: O ( n m ) O(nm) O(nm) Code class Solution { public int maxMoves(int[][] grid){int n grid.length;int m grid[0].length;int[][] f new int[n][m]…

【Flink SQL】Flink SQL 基础概念(三):SQL 动态表 连续查询

《Flink SQL 基础概念》系列&#xff0c;共包含以下 5 篇文章&#xff1a; Flink SQL 基础概念&#xff08;一&#xff09;&#xff1a;SQL & Table 运行环境、基本概念及常用 APIFlink SQL 基础概念&#xff08;二&#xff09;&#xff1a;数据类型Flink SQL 基础概念&am…

EVENG环境安装及测试 1

文章目录 下载eve镜像导入镜像访问测试导入自定义镜像 下载eve镜像 下载地址 链接&#xff1a;https://pan.baidu.com/s/1NqGE34oE5qZ6TCugMymPDg 提取码&#xff1a;f4m1 导入镜像 安装vmware 虚拟机&#xff0c;文件->打开 选中上述镜像 输入虚拟机的名称和保存 路径&a…

pytorch CV入门 - 汇总

初次编辑&#xff1a;2024/2/14&#xff1b;最后编辑&#xff1a;2024/3/9 参考网站-微软教程&#xff1a;https://learn.microsoft.com/en-us/training/modules/intro-computer-vision-pytorch 更多的内容可以参考本作者其他专栏&#xff1a; Pytorch基础&#xff1a;https…

DDR协议基础进阶(三)——(基本功能、初始化、MR寄存器)

DDR协议基础进阶&#xff08;三&#xff09;——&#xff08;基本功能、初始化、MR寄存器&#xff09; 一、DDR基本功能 DDR基本功能主要包括&#xff1a; 8-bit prefetch预取——8-bit&#xff0c;是指8位数据&#xff0c;即8倍芯片位宽的数据。由于DDR内部数据传输是32bit…

【python开发】并发编程(上)

并发编程&#xff08;上&#xff09; 一、进程和线程&#xff08;一&#xff09;多线程&#xff08;二&#xff09;多进程&#xff08;三&#xff09;GIL锁 二、多线程开发&#xff08;一&#xff09;t.start()&#xff08;二&#xff09;t.join()&#xff08;三&#xff09;t.…

Word粘贴时出现“运行时错误53,文件未找到:MathPage.WLL“的解决方案

在安装完MathType后&#xff0c;打开word复制粘贴时报错“运行时错误53,文件未找到&#xff1a;MathPage.WLL” 首先确定自己电脑的位数&#xff08;这里默认32位&#xff09; 右击MathType桌面图标&#xff0c;点击“打开文件所在位置”&#xff0c; 然后分别找到MathPage.W…

第一章:模型从硬盘文件到显示器像素的全过程分析

模型从硬盘文件到显示器像素的全流程分析 引言一、硬盘中的模型文件&#xff08;1&#xff09;分离式模型文件&#xff08;2&#xff09;模型主文件2.1 顶点几何与索引数据构成模型表面2.2 通过材质或贴图为模型表面着色2.3 通过骨骼动画驱动模型 二、CPU中的模型数据三、GPU中…