DragGAN开源三天Star量23k,这又来一个DragDiffusion

简介: DragGAN开源三天Star量23k,这又来一个DragDiffusion


动动鼠标,让图片变「活」,成为你想要的模样。


在 AIGC 的神奇世界里,我们可以在图像上通过「拖曳」的方式,改变并合成自己想要的图像。比如让一头狮子转头并张嘴:


实现这一效果的研究出自华人一作领衔的「Drag Your GAN」论文,于上个月放出并已被 SIGGRAPH 2023 会议接收。

一个多月过去了,该研究团队于近日放出了官方代码。短短三天时间,Star 量便已突破了 23k,足可见其火爆程度。

GitHub 地址:https://github.com/XingangPan/DragGAN

无独有偶,今日又一项类似的研究 —— DragDiffusion 进入了人们的视线。此前的 DragGAN 实现了基于点的交互式图像编辑,并取得像素级精度的编辑效果。但是也有不足,DragGAN 是基于生成对抗网络(GAN),通用性会受到预训练 GAN 模型容量的限制。

在新研究中,新加坡国立大学和字节跳动的几位研究者将这类编辑框架扩展到了扩散模型,提出了 DragDiffusion。他们利用大规模预训练扩散模型,极大提升了基于点的交互式编辑在现实世界场景中的适用性。

虽然现在大多数基于扩散的图像编辑方法都适用于文本嵌入,但 DragDiffusion 优化了扩散潜在表示,实现了精确的空间控制。


研究者表示,扩散模型以迭代方式生成图像,而「一步」优化扩散潜在表示足以生成连贯结果,使 DragDiffusion 高效完成了高质量编辑。

他们在各种具有挑战性的场景(如多对象、不同对象类别)下进行了广泛实验,验证了 DragDiffusion 的可塑性和通用性。相关代码也将很快放出、

下面我们看看 DragDiffusion 效果如何。

首先,我们想让下图中的小猫咪的头再抬高一点,用户只需将红色的点拖拽至蓝色的点就可以了:


接下来,我们想让山峰变得再高一点,也没有问题,拖拽红色关键点就可以了:


还想让雕塑的头像转个头,拖拽一下就能办到:


让岸边的花,开的范围更广一点:


方法介绍

本文提出的 DRAGDIFFUSION 旨在优化特定的扩散潜变量,以实现可交互的、基于点的图像编辑。

为了实现这一目标,该研究首先在扩散模型的基础上微调 LoRA,以重建用户输入图像。这样做可以保证输入、输出图像的风格保持一致。

接下来,研究者对输入图像采用 DDIM inversion(这是一种探索扩散模型的逆变换和潜在空间操作的方法),以获得特定步骤的扩散潜变量。

在编辑过程中,研究者反复运用动作监督和点跟踪,以优化先前获得的第 t 步扩散潜变量,从而将处理点的内容「拖拽(drag)」到目标位置。编辑过程还应用了正则化项,以确保图像的未掩码区域保持不变。

最后,通过 DDIM 对优化后的第 t 步潜变量进行去噪,得到编辑后的结果。总体概览图如下所示:

实验结果

给定一张输入图像,DRAGDIFFUSION 将关键点(红色)的内容「拖拽」到相应的目标点(蓝色)。例如在图(1)中,将小狗的头转过来,图(7)将老虎的嘴巴合上等等。

下面是更多示例演示。如图(4)将山峰变高,图(7)将笔头变大等等。


相关文章
|
6月前
|
安全 机器人 API
『GitHub项目圈选08』推荐5款本周使用率超高的开源项目
『GitHub项目圈选08』推荐5款本周使用率超高的开源项目
112 1
|
6月前
|
Rust Linux iOS开发
|
6月前
|
开发者 Python
新手困扰?该如何了解github的热门趋势和star排行?
新手困扰?该如何了解github的热门趋势和star排行?
193 0
|
5月前
|
人工智能 自然语言处理
Co-STAR 模型
Co-STAR 模型
127 0
|
6月前
|
缓存 前端开发 安全
推荐一个Star74.5k的电商系统项目
时间有限,V哥大概研究了一下这个项目,基于mall 项目来搭建自己的电商系统完全没有问题。
|
6月前
|
Java 开发者 Python
Star 72.4k!神仙级开源项目,真的一行代码都没有!
Star 72.4k!神仙级开源项目,真的一行代码都没有!
|
算法
双向广搜+A star算法
双向广搜+A star算法
54 0
|
SQL 存储 分布式计算
一次Delta lake 0.8.0 踩坑有感:使用新框架的新版本,一定要今早关注多多关注社区动态
一次Delta lake 0.8.0 踩坑有感:使用新框架的新版本,一定要今早关注多多关注社区动态
|
设计模式 监控 Java
BT!GitHub开源阿里Java性能调优百宝书仅3小时,标星竟超过30k
我们在日常生活中,并不是碰见的每一个程序都需要进行调优的。如果你做出来的程序的性能表现的和预期一样甚至超越,那就完全没有必要再付出额外的精力去提升它的性能。
|
设计模式 Java 程序员
GitHub发布即百万!字节内网超实用Java性能优化手册,star超十万
在开发任何Java应用的时候,我们都会谈及optimization——优化的概念。作为一个开发者,我们应该尽可能地保证自己写的代码干净、没有缺陷,并且尽可能地考虑性能问题。 我们开发一个应用程序并且期望获得尽可能好的性能并不是一件容易的事情。但是,即使你不是性能调优专家,也可以采取一些简单的方法来提高性能为了帮各位粉丝朋友更快的上手java性能优化,小编我就就把自己看的书一本非常实用的书分享出来,来供大家参考下 !