单张4090,1秒100张二次元小姐姐!UC伯克利等新模型霸榜Github,吞吐量提升近60倍
来源:51CTO.COM
时间:2024-01-21 11:14:02 380浏览 收藏
今天golang学习网给大家带来了《单张4090,1秒100张二次元小姐姐!UC伯克利等新模型霸榜Github,吞吐量提升近60倍》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~
10毫秒生成一张图像,1分钟6000张图像,这是什么概念?
下图中,就可以深刻感受到AI的超能力。
甚至,当你在二次元小姐姐图片生成的提示中,不断加入新的元素,各种风格的图片更迭也是瞬间闪过。
如此惊人的图片实时生成速度,便是来自UC伯克利、日本筑波大学等研究人员提出StreamDiffusion带来的结果。
这个全新的解决方案是一种扩散模型流程,能够以超过100fps的速度,实现实时交互式图像生成。
论文地址:https://arxiv.org/abs/2312.12491
StreamDiffusion开源后直接霸榜GitHub,狂揽3.7k星。
StreamDiffusion创新性采用了批处理策略,而非序列去噪,比传统方法快大约1.5倍。而且作者提出的新型剩余无分类器引导(RCFG)算法能够比传统无分类引导快2.05倍。
值得一提的是,在RTX 4090上,新方法能够以每秒91.07帧的速度生成图像到图像的转换
未来,在元宇宙、视频游戏图形渲染、直播视频流等不同场景中,StreamDiffusion快速生成能够满足这些应用的高吞吐量的需求。
尤其,实时的图像生成,能够为那些游戏开发、视频渲染的打工人们,提供了强大的编辑和创作能力。
专为实时图像生成设计
目前,在各个领域中,扩散模型的应用需要具备高吞吐量和低延迟的扩散通道,以保证高效的人机交互
一个典型的例子是,用扩散模型创建虚拟角色VTuber——能够对用户的输入做出流畅的反应。
为了增加高吞吐量和实时交互能力,当前的研究方向主要集中在减少去噪迭代次数,比如将迭代次数从50次减少到几次甚至一次
常见的做法是将多步扩散模型简化为几个步骤,并使用神经常微分方程(ODE)重新建立扩散过程。为了提高效率,有些人还对扩散模型进行了量化
最新论文中,研究人员从正交方向(orthogonal direction)开始,引入了StreamDiffusion——一种实时扩散管道,专为互动式图像生成的高吞吐量而设计。
现有的模型设计工作仍然可以与StreamDiffusion集成。另外,它还可以在保持高吞吐量的同时,使用N步去噪扩散模型,并为用户提供更灵活的选择。
实时图像生成|第一列和第二列:AI辅助实时绘图的示例,第三列:从3D头像实时渲染2D插图。第四列和第五列:实时相机滤镜
具体是如何实现的?
StreamDiffusion架构
StreamDiffusion是一种新的扩散管道,旨在提高吞吐量。
它由若干关键部分组成:
流批处理策略、剩余无分类器引导(RCFG)、输入输出队列、随机相似滤波(Stochastic Similarity Filter)、预计算程序、微型自动编码器的模型加速工具。
批处理去噪
在扩散模型中,去噪步骤是按顺序进行的,这就导致了U-Net的处理时间,与步骤数成比例增加。
然而,为了生成高保真的图像,就不得不增加步数。
为了解决交互式扩散中的高延迟生成的问题,研究人员提出了一种叫做Stream Batch的方法。
如下图所示,在最新的方法中,在处理下一个输入图像之前,不会等待单个图像完全去噪,而是在每个去噪步骤后接受下一个输入图像。
这样就形成了一个去噪批次,每个图像的去噪步骤交错进行。
通过将这些交错的去噪步骤串联成一个批次,研究人员就能使用U-Net高效地处理连续输入的批次。
在时间步t处编码的输入图像在时间步t+n处生成并解码,其中n是去噪步骤的数目。
剩余无分类器引导(RCFG)
常见的无分类器指导(CFG)是一种,通过在无条件或否定条件项和原条件项之间执行向量计算。来增强原条件的效果的算法。
这可以带来诸如加强提示的效果之类的好处。
然而,为了计算负条件剩余噪声,需要将每个输入潜变量与负条件嵌入配对,并在每个推理时间将其传递给U-Net
为了解决这一问题,作者引入了创新的剩余无分类器引导(RCFG) 。
该方法利用虚拟剩余噪声来逼近负条件,使得只需在过程的初始阶段就可以计算负条件噪声,大大降低了负条件嵌入时额外U-Net推理的计算成本。
输入输出队列
将输入图像转换为管道可管理的张量数据格式,反过来,将解码后的张量转换回输出图像,都需要不可忽略的额外处理时间。
为了避免将这些图像处理时间添加到神经网络推理流程中,我们将图像预处理和后处理分离到不同的线程中,从而实现并行处理。
此外,通过使用输入张量队列,还能应对因设备故障或通信错误造成的输入图像临时中断,从而实现流畅的流式传输。
随机相似滤波(Stochastic Similarity Filter)
如下图是,核心扩散推理管道,包含VAE和U-Net。
通过引入去噪批处理和预先计算的提示嵌入缓存、采样噪声缓存和调度器值缓存,提高了推理流水线的速度,实现了实时图像生成。
随机相似滤波(SSF)是为了节省GPU功耗而设计的,可以动态关闭扩散模型管道,进而实现了快速高效的实时推理。
预计算
U-Net架构需要同时输入潜在变量和条件嵌入
通常情况下,条件嵌入来源于「提示嵌入」,在不同帧之间保持不变。
为了优化这一点,研究人员预先计算提示嵌入,并将其存储在缓存中。在交互或流模式下,这个预先计算的提示嵌入缓存会被召回。
在U-Net中,每一帧的键和值是通过预先计算的提示嵌入计算的
因此,研究人员对U-Net进行修改,以存储这些键和值对,使其可以重复使用。每当输入提示更新时,研究人员都会在U-Net内重新计算和更新这些键和值对。
模型加速和微型自动编码器
为了优化速度,我们将系统配置为使用静态批大小和固定输入大小(高度和宽度)。
这种方法可以确保根据特定的输入大小进行计算图和内存分配的优化,以提高处理速度
然而,这意味着如果需要处理不同形状的图像(即不同的高度和宽度),使用不同的批大小(包括去噪步骤的批次大小)。
实验评估
需要进行的重写是:对去噪批处理进行定量评估
图8显示了批去噪和原始顺序U-Net循环的效率比较。
在实施批去噪策略时,研究人员发现处理时间有了显著改善。与顺序去噪步骤的传统U-Net循环相比,减少了一半的时间。
即使应用了神经模块加速工具TensorRT,研究人员提出的流批处理在不同的去噪步骤中仍能大幅提高原始顺序扩散管道的效率。
此外,研究人员还将最新方法与Huggingface Diffusers开发的AutoPipeline-ForImage2Image管道进行了比较。
平均推理时间比较见表1,最新管道显示速度有了大幅提升。
当使用TensorRT时,StreamDiffusion在运行10个去噪步骤时,实现了13倍的速度提升。而在涉及单个去噪步骤的情况下,速度提升可达59.6倍。
即使没有TensorRT,StreamDiffusion在使用单步去噪时也比AutoPipeline提高了29.7倍,在使用10步去噪时提高了8.3倍。
表2比较了使用RCFG和常规CFG的流扩散管道的推理时间。
在去噪只需一步的情况下,Onetime-Negative RCFG与传统CFG的推理时间几乎一样
所以One-time RCFG和传统CFG在单步去噪时推理时间差不多。但是随着去噪步骤增加,从传统CFG到RCFG的推理速度提升变得更明显。
在第5步去噪时,Self-Negative RCFG比传统CFG快2.05倍,Onetime-Negative RCFG比传统CFG快1.79倍。
然后,研究人员对所提出的SSF的能耗进行了全面评估,如图6和图7所示。
这些图提供了将 SSF(阈值η设为0.98)应用于包含周期性静态特征场景的输入视频时GPU的使用模式。
对比分析表明,在输入图像主要是静态图像且具有高度相似性的情况下,采用SSF可以显著降低GPU的使用率。
消融研究
表3展示了不同去噪步骤下平均推理时间对不同模块的影响。从中可以看出,在图像生成的过程中,不同模块的去噪效果得到了验证
定性结果
图10展示了使用剩余无分类器导引(RCFG)对生成的图像进行快速条件调整的对齐过程。
生成的图像,没有使用任何形式的CFG,显示弱对齐提示,特别是在方面,如颜色变化或添加不存在的元素,这是没有得到有效实现。
相比之下,CFG或RCFG的使用增强了修改原始图像的能力,例如改变头发颜色,添加身体模式,甚至包含像眼镜这样的物体。值得注意的是,与标准CFG相比,RCFG的使用可以加强提示的影响。
最终,图像生成结果的质量可见于图11中
使用sd-turbo模型,只需一步就可以生成像图11所示的那样的高质量图像。
当在 GPU: RTX 4090,CPU: Core i9-13900K,OS: Ubuntu 22.04.3 LTS的环境中,使用研究人员提出的流扩散管道和sd-turbo模型生成图像时,以超100fps的速率生成这种高质量的图像是可行的。
网友上手,一大波二次元小姐姐来了
最新项目的代码已经开源,在Github已经收揽3.7k星。
项目地址:https://github.com/cumulo-autumn/StreamDiffusion
很多网友已经开始创造自己的二次元妻子了
还有真人变实时动画。
感兴趣的童鞋们,不如自己动手吧。
本篇关于《单张4090,1秒100张二次元小姐姐!UC伯克利等新模型霸榜Github,吞吐量提升近60倍》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于科技周边的相关知识,请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
420 收藏
-
293 收藏
-
416 收藏
-
112 收藏
-
426 收藏
-
332 收藏
-
289 收藏
-
102 收藏
-
318 收藏
-
370 收藏
-
346 收藏
-
487 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习