图像生成模型基础——Stable Diffusion模型介绍

随着人工智能技术的飞速发展,图像生成技术也取得了显著进步。扩散模型(Stable Diffusion)因其高效性和稳定性而得到广泛关注,目前的大多数生成模型都是以扩散模型为基础进行改进得到。首先简单介绍一下传统人工智能模型和生成模型的区别。

**传统人工智能模型:**主要目标是学习输入到输出的关系(如逻辑关系、映射关系等),即根据输入数据预测或分类输出。也就是说,传统人工智能模型更侧重于对已有数据的分析和处理,以实现对新数据的准确预测或分类。

**生成模型:**主要目标是学习数据的概率分布,并据此生成新的、与真实数据相似的样本。也就是说,生成模型关注于数据的生成过程,致力于模拟数据的内在规律和分布特性。下面对生成模型的基础——扩散模型进行详细介绍:

01

性能提升的关键——潜空间

(Latent Space)

在采用模型对数据进行处理时,通常都面临“模型效率”和“处理效果”不可兼顾的问题。扩散模型通过将数据压缩到潜空间(Latent Space)中进行处理,在不明显损失处理效果的前提下,极大地降低了内存消耗和计算的复杂度。其性能提升的关键是:通过U-Net 网络[由若干下采样模块(编码器)和相应数量的上采样模块(解码器)组成]中的下采样模块将高维度数据下采样到低维度的“潜空间”中,并在低维度的“潜空间”中进行处理,再通过U-Net 网络中的上采样模块将处理后的结果上采样至下采样前的维度。个人认为,下采样和上采样的传输过程中存在损失,这是导致生成模型的输出结果与真实数据存在差异(即并非100%复原真实数据)的原因之一。

下面通过一个例子来直观展现数据压缩前后内存消耗的变化。以一个 512*512 像素的图像为例,该图像可以表示为(3,512,512),数据体积为786432。而在潜空间中该图像可以被压缩为(4,64,64),数据体积为 16384。相比与压缩前的图像来说,压缩到潜空间中的图像内存消耗将会减少到原来的 1/48 。这极大地提升了扩散模型的运行效率,并且提高了扩散模型的普及性(即让更多配置较低的电脑也能通过扩散模型完成图像处理过程)。

需要特别注意的是,一些发明方案的改进点在于在数据处理过程中加入其他向量。由于数据处理是在潜空间中进行,在撰写申请文件时要注意这些向量是在下采样前加入的,还是(下采样后)加入在潜空间数据中的。

02

扩散模型的前向过程(训练过程)

以图像为例,扩散模型的前向过程是对图像进行迭代加噪,得到最终的纯噪声(也称白噪声)。所谓迭代加噪是指对每一次添加的噪声都是叠加在上一次加噪后得到的结果之上的。该过程主要用于训练U-Net 网络,训练的目标是使得U-Net 网络预测的噪声尽可能逼近实际添加的噪声。为了训练更加充分,可以将添加的噪声按照强度进行区分,并通过添加不同强度的噪声来对扩散模型进行训练。训练后的扩散模型能够较好地预测迭代加噪过程中每次加入的噪声。

需要特别注意的是,在迭代加噪过程中,每次的噪声是添加到潜空间中图像对应的数据矩阵中,而不是直接将噪点添加在图像上。

03

扩散模型的反向过程(生成过程)

同样以图像为例,扩散模型的反向过程就是我们所说的“生成过程”,即通过训练后的扩散模型和输入的提示信息,对纯噪声进行迭代降噪,得到与提示信息匹配的生成图像。所谓迭代降噪是指逐渐减少纯噪声中的噪点,每次降噪的输入数据为上一次降噪的结果。从可视化的角度来说,每次降噪的结果相较于上一次降噪的结果来说噪点更少。同样的,迭代降噪过程也是在潜空间中进行,而非直接去除图像中的噪点。

扩散模型的反向过程所涉及的主要参数包括:噪声加载计划表(scheduler)、随机种子(seed)、采样步数(steps)。噪声加载计划表指示了迭代降噪处理的具体实施过程,影响扩散模型的生成效果;随机种子用于指示起始条件,它确保了随机过程的可控性和可重复性;采样步数用于指示迭代降噪的次数。

04

风格迁移

风格迁移是扩散模型的一个重要概念,它的专业描述是:扩散模型的生成图像具有与原样本图像同时符合潜空间中一定数据结构分布规律的特点。简单来说,用两种不同风格的样本数据对扩散模型进行训练,得到两个不同的扩散模型,再将相同的纯噪声和提示信息输入这两个扩散模型,会得到两个完全不同的结果,每个扩散模型输出结果的风格,与该扩散模型训练时样本数据的风格相似。

个人理解这是由于训练时样本数据的风格不同,导致训练后的扩散模型对同一提示信息的理解不同,因此导致最后输出的结果不同。打一个不太恰当的比方,不同风格的数据在对扩散模型进行训练时会影响扩散模型的“审美观”(也就是风格),由于具有不同“审美观”的扩散模型对“美”(也就是提示信息)的理解不同,针对同一提示信息具有不同“审美观”的扩散模型输出的结果也不同。

05

应用场景

目前,除了被应用在图像生成、视频生成领域以外,以扩散模型为基础的生成模型还被广泛应用在文本生成、音乐创作等领域,并可以实现不同模态数据之间的转换,如根据音频生成图片、根据图片生成视频等。在撰写相关申请文件时,可以考虑数据和应用场景是否具有局限性。

下面借用一段“沙画”比喻对扩散模型进行总结。扩散模型类似一个沙画装置,每次创作出的画虽用相同沙子,但因细节差异而独一无二。扩散模型训练过程模拟沙画逐渐散乱成沙子的过程,通过不断添加噪点至完全无序状态,记录各阶段变化并建模。尽管单粒沙子运动无规律,但巨量沙粒组合展现复杂但可识别的规律和联系。扩散模型在充分训练后,掌握了沙子聚散的规律。在反向去噪过程中,训练后的扩散模型能将散沙凝聚成基础图像单元,这些单元按逻辑组合成完整图像。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。

######

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!

在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

在这里插入图片描述

四、AIGC视频教程合集

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

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

request.getRequestURI()与request.getRequestURL()的区别

1.返回值的区别: request.getRequestURL() 返回值是一个StringBuffer类型 request.getRequestURI() 返回值是一个String类型 先看 request.getRequestURL() 返回的是一个具体的地址,访问网页的地址 而 request.getRequestURI() 返回的是一个映射地址&a…

VM Ubuntu22.04 ROS2 从头安装

目录 前言安装步骤1 设置编码2 添加ROS2软件源(从哪去下载ros2相关软件)报错解决方法 3 安装报错解决方法1解决方法2 报错 4 设置环境变量5 Ros2 测试Hello World 发送和监听小海龟键盘控制 成功 Hello World 发送和监听界面成功控制小海龟界面 前言 本…

【java】RuoYiBootstrap多模块版本-新写的接口,用接口工具访问,状态码302,访问不到。打的断点也进不去。其实是Shiro拦截器搞的鬼

【java】RuoYiBootstrap多模块版本-新写的接口,用接口工具访问,状态码302,访问不到。打的断点也进不去 你如果着急,可以直接看《ShiroConfig.java文件源码-过滤器配置-重点代码》 重点 状态码:302访问不到断点进不去 …

FileNotFoundException: XXX (系统找不到指定的文件。)

目录 问题描述 问题分析 问题总结 问题描述 idea引入文件,系统去读取,但是路径的问题报错系统找不到指定文件 String filePath "test.txt"; try {FileInputStream fileInputStream new FileInputStream(filePath); } catch (FileNotFou…

信息搜集--敏感文件Banner

免责声明:本文仅做分享参考... 目录 git安装: git目录结构: 敏感目录泄露 1-git泄露 (1)常规git泄露 scrabble工具 (2)git回滚 (3)git分支 GitHacker工具 (4)git泄露的其他利用 .git重定向问题 2-SVN泄露 dvcs-ripper工具 3-小结 dirsearch目录扫描工具 敏感备…

MySQL修改表属性

一、修改表名 ① 使用DDL语句修改表名 ALTER TABLE 旧表名 RENAME 新表名; ② 使用Navicat修改表名 二、修改列 2.1 修改列名 ① 使用DDL语句修改列名 ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型; ② 使用Navicat修改列名 2.2 修改列类型 ① 使用DDL语句修改列类…

C++实现多线程三窗口卖票程序

假设我们有100张门票,有三个售卖窗口,我们希望以多线程的方式将这些票卖出去,这样效率会更高一些。 首先我们需要有一个全局的门票变量。 int tickts 100; 卖票的函数,由于每个窗口卖出一张票都需要花费一些时间,假设…

springboot的启动流程原理

一:入口简介: 首先,分析启动流程,就要 找到入口. 启动流程的入口方法就是这个run方法: 点进去之后就是这样: 主要分为了两个步骤: 1.创建springBootApplication对象 2.运行SpringApplication#run(java.lang.String...)方法; 上面说了主要分为两个步骤,那么接下…

day02-JavaScript-Vue

1 JavaScript html完成了架子,css做了美化,但是网页是死的,我们需要给他注入灵魂,所以接下来我们需要学习JavaScript,这门语言会让我们的页面能够和用户进行交互。 1.1 介绍 通过代码/js效果演示提供资料进行效果演…

PCIE-TS1/TS2,变量总结

1.标准TS1/TS2 2.EQ TS1/TS2 3.Modified TS1/TS2 Modified TS1/TS2 是什么?Modify了什么?为什么要Modify?非 PCIe 协议运行在 PCIe PHY 上或发送 TS Message 时,在 LTSSM 部分子状态采用 Modified TS1/TS2。允许发送 Modified …

6.画面渲染及背景-《篮球比赛展示管理系统》现场管理员角色操作手册

通过[特效实验室]及[更换背景] 对整个展示界面的底部图层进行动画渲染。此功能是平台的一大特色。一般用在选手上场或颁奖等。用户可以根据现场情况,妥善发挥。背景图片及其特效,应该在比赛之前设置好。

HarmonyOS 开发

环境 下载IDE 代码 import { hilog } from kit.PerformanceAnalysisKit; import testNapi from libentry.so; import { router } from kit.ArkUI; import { common, Want } from kit.AbilityKit;Entry Component struct Index {State message: string Hello HarmonyOS!;p…

遗传算法与深度学习实战(7)——使用遗传算法解决N皇后问题

遗传算法与深度学习实战(7)——使用遗传算法解决N皇后问题 0. 前言1. N 皇后问题2. 解的表示3. 遗传算法解决 N 皇后问题小结系列链接 0. 前言 进化算法 (Evolutionary Algorithm, EA) 和遗传算法 (Genetic Algorithms, GA) 已成功解决了许多复杂的设计…

GitHub的未来:在微软领导下保持独立与AI发展的平衡

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

20240821 每日AI必读资讯

🎮《黑神话:悟空》震撼上线,英伟达AI技术立功! - 中国游戏史上的奇迹:《黑神话:悟空》预售销售额达3.9亿元,刷新国产游戏预售纪录。 - 游戏美学效果惊人:孙悟空形象深入人心&#…

你知道手机零部件尺寸检测的重要性吗?

手机零部件作为手机制造行业的基础,其品质的优劣直接关系到行业的发展,所以加强手机精密零部件尺寸检测非常重要。如今,手机零部件变得更加精细,对质量的要求也在不断提高,随着生产规模逐渐扩大,传统的检测…

网络安全防渗透实战指南【策略、代码与最佳实践】

网络安全防渗透实战指南【策略、代码与最佳实践】 引言 随着互联网的迅猛发展,网络安全问题日益突出。渗透攻击作为网络攻击的一种常见手段,给企业和个人带来了巨大的威胁和损失。因此,如何有效防止渗透攻击成为网络安全领域的重要课题。本…

【python报错解决】ImportError: DLL load failed while importing win32gui: 找不到指定的程序

在 Python 中安装 pywin32 库 pip install pywin32安装完成后找到自己的 Python 根目录,在该目录下打开命令行。 在命令行中输入: python.exe Scripts/pywin32_postinstall.py -install执行后显示以下信息,即问题解决。 Parsed argumen…

订单到期关闭如何实现?

目录 一、被动关闭 二、定时任务 三、JDK自带的DelayQueue 四、Netty的时间轮 五、Kafka的时间轮 六、RocketMQ延迟消息 七、RabbitMQ死信队列 八、RabbitMQ插件 九、Redis过期监听 十、Redis的Zset 十一、Redisson 在电商、支付等系统中,一般都是先创建…

单因子年化23.7%,基于deap的因子挖掘,我改进了fitness和metrics方案(附python代码和数据)

原创文章第626篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 我们目前投入使用的因子挖掘,基于两个框架,deap和gplearn,deap做一点点改动,就可以完美应用于多标的截面因子挖掘。而gplearn如果要支…