StyleGAN和Diffusion结合能擦出什么火花?PreciseControl:实现文本到图像生成中的精确属性控制!

本文主要是介绍StyleGAN和Diffusion结合能擦出什么火花?PreciseControl:实现文本到图像生成中的精确属性控制!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前给大家介绍过CycleGAN和Diffusion结合的一项优秀的工作,感兴趣的小伙伴可以点击以下链接阅读~

图像转换新风尚!当CycleGAN遇到Diffusion能擦出什么火花?CycleGAN-Turbo来了!

今天给大家介绍StyleGAN和Diffusion结合的一项工作PreciseControl,通过结合扩散模型和 StyleGAN 实现文本到图像生成中的精确属性控制,该文章已经发表在ECCV2024.

亮点直击

  • 通过在丰富的 W+ 潜在空间上调节 T2I,首次将大型文本到图像模型与 StlyeGAN2 相结合。

  • 使用单个肖像图像的有效个性化方法,可在 W+ 空间中进行细粒度属性编辑,并使用文本提示进行粗略编辑。

  • 将多个个性化模型与链式扩散过程融合在一起,实现多人构图的新颖方法。

相关链接

论文链接:https://arxiv.org/pdf/2408.05083

工程主页:https://rishubhpar.github.io/PreciseControl.home/

git链接:https://github.com/rishubhpar/PreciseControl

论文阅读

PreciseControl:通过细粒度属性控制增强文本到图像的扩散模型

摘要

最近,我们看到大量个性化方法用于文本到图像 (T2I) 扩散模型,这些模型使用少量图像来学习概念。现有方法在用于人脸个性化时,难以在保留身份的情况下实现令人信服的反转,并且依赖于对生成的脸部进行基于语义文本的编辑。但是,面部属性编辑需要更细粒度的控制,而仅使用文本提示很难实现这一点。相比之下,StyleGAN 模型可以学习丰富的面部先验知识,并通过潜在操作实现对细粒度属性编辑的平滑控制。

这项工作使用 StyleGAN 解开的W +空间来调节 T2I 模型。这种方法使我们能够精确地操纵面部属性,例如平滑地引入微笑,同时保留 T2I 模型固有的现有粗略文本控制。为了在W +空间上调节 T2I 模型,我们训练了一个潜在映射器,将潜在代码从W +转换为 T2I 模型的标记嵌入空间。所提出的方法在保留属性的情况下对人脸图像进行精确反转方面表现出色,并且有助于对细粒度属性编辑进行持续控制。此外,我们的方法可以轻松扩展以生成涉及多个个体的合成图。我们进行了大量实验来验证我们的方法在人脸个性化和细粒度属性编辑方面的有效性。

方法

方法概述

个性化框架。 给定一张肖像图像,我们从编码器 EGAN 中提取其w 潜在表示。潜在 w 连同扩散时间步长t通过潜在适配器 M生成一对时间相关的 token 嵌入 (v1t, v2t),代表输入主题。最后,将 token 嵌入与任意提示相结合以生成定制图像。

个性化

给定一张肖像图像,我们从编码器E GAN中提取其w潜在表征。潜在w连同扩散时间步长t一起通过潜在适配器M生成一对表示输入主题的时间相关标记嵌入 ( v t 1 , v t 2 )。最后,将标记嵌入与任意提示相结合以生成定制图像。

属性编辑/控制

将给定的输入图像映射到w个潜在代码,然后按全局线性属性编辑方向移动该潜在代码以获得已编辑的潜在代码w *。然后将已编辑的潜在代码w *传递到 T2I 模型以获得细粒度的属性编辑。标量编辑强度参数β可以更改以获得连续的属性控制。我们的方法对各种属性执行解开的编辑,同时保留身份并推广到自然人脸、风格和多人。身份插值。我们可以通过在相应的w代码之间进行插值来在身份之间执行平滑插值。

创作多个主题

我们运行多个并行扩散过程,每个主体一个,背景一个,并在每个去噪步骤中使用实例分割掩码将它们融合。实例掩码可以由用户提供,也可以通过同一 T2I 模型分割两个主体的生成图像来获得。请注意,每个主体的扩散过程都会通过其相应的微调模型,从而实现出色的身份保存。

实验

虚拟人像生成

编辑身份属性信息

多人物结合

附加编辑说明

使用从 InterfaceGAN 获得的编辑方向执行属性编辑。编辑方向在 T2I 模型中具有良好的泛化能力,表明任何现成的 StyleGAN 编辑方法都可轻松集成到我们的框架中。

多人属性控制

我们可以在场景中以最小的纠缠对单个角色进行连续编辑。观察不同属性的平滑编辑转换,同时保留身份。

面部修复

解开的W +潜在空间是 StyleGAN 中出色的面部先验。利用这一点,我们使用 StyleGAN 编码器将损坏的面部图像投影到W +潜在空间中来调节 T2I 模型,从而执行面部恢复。生成的图像看起来很逼真,可以使用 T2I 功能嵌入和编辑。对此类损坏图像进行个性化设置具有挑战性,因为模型很容易过度拟合给定的单脸图像。

草图到图像

我们使用经过训练的 psp StyleGAN 编码器将边缘图像映射到W +潜在空间,以生成草图到图像。然后可以使用获得的 𝕊 潜在代码来调节 T2I 模型以生成真实图像。

结论

结论。 我们提出了一个新颖的框架,用于在 StyleGAN2 模型的 W+ 空间上对 T2I 扩散模型进行条件化,以实现细粒度属性控制。具体来说,我们学习了一个潜在映射器,它将潜在代码从 W+ 投影到使用去噪、正则化和身份保留损失学习的 T2I 模型的输入标记嵌入空间。该框架提供了一种自然的方式来嵌入真实面部图像,方法是使用 GAN 编码器模型获取其潜在代码。然后可以以两种方式编辑嵌入的面部 - 基于粗略文本的编辑和通过 W+ 中的潜在操作进行细粒度属性编辑。

限制。 主要限制是 W+ 中基于编码器的反转在某些信息上比较松散,因此我们需要进行几次迭代的测试时间微调以恢复类似于关键调整的身份。此外,当前方法利用多重扩散来组合多个人,这需要多个扩散过程。在当前方法中有效地组合两个以上具有一致身份的个体具有挑战性 并且是一个值得探索的有趣未来方向。

这篇关于StyleGAN和Diffusion结合能擦出什么火花?PreciseControl:实现文本到图像生成中的精确属性控制!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T