字节和旷视提出HiDiffusion,无需训练,只需要一行代码就可以提高 SD 生成图像的清晰度和生成速度。代码已开源。

本文主要是介绍字节和旷视提出HiDiffusion,无需训练,只需要一行代码就可以提高 SD 生成图像的清晰度和生成速度。代码已开源。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

字节和旷视提出HiDiffusion,无需训练,只需要一行代码就可以提高 SD 生成图像的清晰度和生成速度。代码已开源。

  • 支持将图像生成的分辨率提高至4096×4096,同时将图像生成速度提升1.5至6倍。

  • 支持所有 SD 模型同时也支持 SD 模型的下游模型,比如ControlNet,Inpainting,Playground等。

为什么选择 HiDiffusion

  • HiDiffusion是一种免训练方法,可提高预训练扩散模型的分辨率和速度。

  • 设计为即插即用实施。只需添加一行代码即可将其集成到扩散管道中!

支持的模型

  • Stable Diffusion XL

  • Stable Diffusion XL Turbo

  • Stable Diffusion v2

  • Stable Diffusion v1

支持的任务

  • Text-to-image

  • ControlNet

  • Inpainting

更快更好的图像细节

相关链接

Github:https://github.com/megvii-research/HiDiffusion

论文:https://arxiv.org/pdf/2311.17528

论文阅读

HiDiffusion:解锁更高的分辨率预训练扩散模型中的创造力和效率

摘要

扩散模型已成为高分辨率图像合成的主流方法。但是直接从预处理的扩散模型中生成高解决图像将遇到不合理的对象重复,并指数增加生成时间。

在本文中,我们发现对象重复是由U-NET深块的特征重复引起的。同时,我们将延长的生成时间指定为U-NET的顶部块中的自我发挥冗余。为了解决这些问题,我们提出了一个名为Hidiffusion的无调高分辨率框架。

具体而言,Hidiffusion包含分辨率感知的U-NET(RAU-NET),该分辨率可以动态调整特征映射大小以解决对象重复并参与修改后的移位窗口多头自我注意(MSW-MSA),该窗口使用优化的窗口注意力来减少计算。我们可以将Hidiffusion集成到各种预处理的扩散模型中,以将图像生成分辨率扩展到4096×4096,以1.5-6×以前方法的推理速度。 广泛的实验表明,我们的方法可以解决对象重复和重度计算问题,从而在高分辨率图像合成任务上实现最先进的性能。

方法

U-Net架构。

实现了U-Net作为稳定扩散神经主干,它包含几个Down Blocks, Up Blocks和一个Mid 块,如下图a所示。Mid Block在我们的方法中保持不变。因此,为了简单起见,我们省略了它。每个向下块和向上块可以分别写成:

vanilla 稳定扩散的U-Net架构和我们提出的HiDiffusion RAU-Net架构在1024×1024分辨率和SD 1.5上的比较。

冻结所有块中的参数。主要区别在于蓝色块(不同) 在特征图的维度中)和橙色块(我们提出的RAD和RAU)模块被合并到Block 1中)。

实验

我们将我们的方法纳入sd1.5,sd2.1,SDXL Turbo和SDXL来评估我们方法的有效性。sd1.5及 SD 2.1能够生成512×512分辨率的图像。

我们整合HiDiffusion将它们缩放到1024×1024和2048×2048。我们使用HiDiffusion将SDXL Turbo的生成分辨率缩放到1024×1024。

上图为各种扩散模型、分辨率和比率方面选择HiDiffusion示例。HiDiffusion使预训练的扩散模型能够产生更高的分辨率超过训练图像大小的图像,无需进一步的训练或微调可以有效加速推理。

基于sd1.5的不同推理步骤的特征图可视化。 图像分辨率为1024×1024,采用50步DDIM。

基于sd1.5的RAU-Net和MSW-MSA的影响。分辨率为1024×1024。

基于sd1.5的1024×1024分辨率SDEdit任务。

基于sd1.5的ControlNet任务1024×1024分辨率。

基于sd1.5的不同扩散加速方法的定性比较。分辨率是1024×1024。基线为RAU-Net的sd1.5。

结论

在本文中,我们提出了一个名为HiDiffusion的免调优框架,用于更高分辨率的图像生成。HiDiffusion包括分辨率感知U-Net (RAUNet),使更高分辨率的生成成为可能,以及改进的移位窗口多头部自注意(MSW-MSA),使更高分辨率的生成更有效。

根据经验HiDiffusion可以纳入sd1.5,sd2.1、SDXL和SDXL Turbo,并对它们进行缩放生成1024×1024,2048×2048甚至4096×4096分辨率图像,同时显著降低HiDiffusion推理时间。

与以往的高分辨率图像生成方法相比,我们可以在更短的推理时间内生成细节更丰富的图像。我们希望我们的工作可以为未来关于扩散模型可扩展性的工作带来启发。

这篇关于字节和旷视提出HiDiffusion,无需训练,只需要一行代码就可以提高 SD 生成图像的清晰度和生成速度。代码已开源。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/968748

相关文章

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求