当前位置: 首页 > news >正文

超高清图像生成新SOTA!清华唐杰教授团队提出Inf-DiT:生成4096图像比UNet节省5倍内存。

清华大学唐杰教授团队最近在生成超高清图像方面的新工作:Inf-DiT,通过提出一种单向块注意力机制,能够在推理过程中自适应调整内存开销并处理全局依赖关系。基于此模块,该模型采用了 DiT 结构进行上采样,并开发了一种能够上采样各种形状和分辨率的无限超分辨率模型。与常用的 UNet 结构相比,Inf-DiT 在生成 4096×4096 图像时可以节省超过 5 倍的内存。该模型在机器和人类评估中均实现了生成超高清图像的SOTA。

选取基于SDXL的超高分辨率上采样Inf-Dit, Dall-e 3和真实图像示例.

相关链接

项目网址:https://github.com/THUDM/Inf-DiT

论文地址:https://arxiv.org/abs/2405.04312

论文阅读

Inf-Dit:对任意分辨率图像进行上采样的内存高效扩散变压器

摘要

近年来,扩散模型在图像生成方面表现出色。然而,由于生成超高分辨率图像(例如 4096 × 4096)时内存的二次方增加,生成的图像的分辨率通常限制为 1024 × 1024。

在这项工作中,我们提出了一种单向块注意机制,可以在推理过程中自适应地调整内存开销并处理全局依赖关系。在此模块的基础上,我们采用 DiT 结构进行上采样,并开发了一个能够对各种形状和分辨率的图像进行上采样的无限超分辨率模型。

综合实验表明,我们的模型在机器和人工评估中都能在生成超高分辨率图像方面实现 SOTA 性能。与常用的 UNet 结构相比,我们的模型在生成 4096 × 4096 图像时可以节省 5 倍以上的内存。

方法

(左)Inf-DiT的总体架构。(右)Inf-DiT的内部结构 块。为了简单起见,我们没有描述最初存在于DiT中的Layernorm。

左图:单向块注意力机制。在我们的实现中,每个块直接依赖于每一层中的三个块:左上角、左侧和顶部的块。右图:Inf-DiT 的推理过程。Inf-DiT 每次根据内存大小生成 n × n 个块。在此过程中,只有后续块所依赖的块的 KV 缓存存储在内存中。

效果

2048×2048分辨率下不同方法的详细定性比较。

4096×4096分辨率下不同方法的详细定性比较。

人的评价结果。参与者对不同的图片进行排序 我们将4到1的分数依次分配给模型,最后计算出 所有结果的平均值。Inf-Dit在所有三个类别中都获得了最高分。

生成迭代上采样的样本。上图:Inf-Dit可以上样 图像本身生成几次,并生成不同频率的细节以相应的分辨率。下图:在128x128点未能产生pupul后在分辨率方面,后续的上采样阶段很难纠正这个错误。

结论

在这项工作中,我们观察到生成超高分辨率图像的主要障碍是模型隐藏状态占用的大量内存。 基于此,我们提出了单向块注意机制(UniBA),它可以通过在块之间执行批量生成来降低空间复杂度。借助UniBA,我们训练了Inf-DiT,这是一种4倍内存效率的图像上采样器,它在生成和超分辨率任务中均实现了最先进的性能。

相关文章:

  • 银行数仓项目实战(一)--什么是数据仓库
  • 独立游戏之路:Tap篇 -- Unity 集成 TapTap 广告详细步骤
  • MySQL触发器基本结构
  • React@16.x(32)useDebugValue
  • flutter 环境搭建(windows)(先装 jdk 建议1.8起步)
  • Spring IOC的优、缺点
  • 视频合成渲染服务解决方案,数字人+PPT+视频云剪辑
  • 搭建RocketMQ主从异步集群
  • vue前段处理时间格式,设置开始时间为00:00:00,设置结束时间为23:59:59
  • Langchain-chatchat: Langchain基本概念
  • SaaS案例分享:成功构建销售渠道的实战经验
  • homework 2024.06.17 math, UI
  • 【Linux硬盘数据读取】WIN10访问linux分区解决方案:ext2fsd
  • 企业内部、与合作伙伴/客户文档协作如何高效安全地收集资料?
  • 安装docker+mysql的一些坑
  • dva中组件的懒加载
  • emacs初体验
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JWT究竟是什么呢?
  • Median of Two Sorted Arrays
  • springMvc学习笔记(2)
  • SwizzleMethod 黑魔法
  • 初探 Vue 生命周期和钩子函数
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深度学习在携程攻略社区的应用
  • 我的业余项目总结
  • 我是如何设计 Upload 上传组件的
  • 译自由幺半群
  • 终端用户监控:真实用户监控还是模拟监控?
  • 最近的计划
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​低代码平台的核心价值与优势
  • ​一些不规范的GTID使用场景
  • #define用法
  • (1)Android开发优化---------UI优化
  • (2)leetcode 234.回文链表 141.环形链表
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (6)设计一个TimeMap
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (floyd+补集) poj 3275
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (zhuan) 一些RL的文献(及笔记)
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET 中的轻量级线程安全
  • .NET建议使用的大小写命名原则
  • /var/spool/postfix/maildrop 下有大量文件
  • @Conditional注解详解