图像修复和编辑大一统 | 腾讯&北大等联合提出BrushEdit:BrushNet进阶版来了

科技   2024-12-17 23:32   广东  

作者:Yaowei Li

解读:AI生成未来 

文章链接:https://arxiv.org/pdf/2412.10316
项目链接:https://liyaowei-stu.github.io/project/BrushEdit

亮点直击

  • 提出了BrushEdit,这是先前BrushNet模型的高级迭代版本。BrushEdit通过开创基于修复(inpainting)的图像编辑方法,扩展了可控图像生成的能力。该统一模型支持指令引导的图像编辑和修复,提供了用户友好的、自由形式的、多轮交互编辑体验。

  • 通过集成现有的预训练多模态大语言模型和视觉理解模型,BrushEdit显著提高了语言理解能力和可控图像生成能力,而无需额外的训练过程。

  • 将BrushNet扩展为一个通用的图像修复框架,能够适应任意形状的mask。这消除了为不同类型的mask配置使用单独模型的需求,并增强了其对现实世界用户mask的适应性。

总结速览

解决的问题
当前基于扩散模型的图像编辑方法存在两大问题:

  • 基于反演(inversion)的方法在进行大幅度修改(如添加或移除物体)时效果较差,原因在于反演噪声的结构性限制了编辑的灵活性。
  • 基于指令(instruction)的方法通常采用黑箱操作,限制了用户直接指定编辑区域和强度的能力。

提出的方案
提出了一种新的图像编辑范式BrushEdit,基于图像修复(inpainting)和指令引导,结合多模态大语言模型(MLLMs)和双分支图像修复模型,构建了一个代理协作框架,实现:

  • 编辑类别分类。
  • 主体对象识别。
  • mask区域获取。
  • 编辑区域的修复与生成。

应用的技术

  • 多模态大语言模型(MLLMs)用于解析用户自由形式的编辑指令并指导编辑流程。
  • 双分支图像修复模型,用于在mask区域内生成符合用户指令的编辑内容。
  • 代理协作框架,通过分类、识别、mask生成和修复的多步流程协同完成图像编辑。

达到的效果
通过大量实验验证,BrushEdit 框架能够高效结合 MLLMs 和图像修复模型,在七个关键指标上实现性能优越,包括:

  • mask区域的精准性保持。
  • 编辑效果的连贯性和自然性。
  • 更高的用户交互自由度与操作便捷性。
demo展示

方法

BrushEdit的概述如下图2所示。框架通过代理协作,将MLLM与双分支图像修复模型集成在一起,从而实现自由形式的、多轮交互的指令编辑。具体而言,一个预训练的MLLM作为编辑指导者(Editing Instructor),解析用户的指令以识别编辑类型、定位目标对象、获取编辑区域的检测结果并生成编辑后的图像文本描述。在此信息的引导下,修复模型作为编辑指挥者(Editing Conductor),根据目标文本说明填充被遮掩的区域。这个迭代过程允许用户在任何阶段修改或优化中间控制输入,支持灵活和交互式的基于指令的编辑。

编辑指导者

在BrushEdit中,我们使用MLLM作为编辑指导者来解析用户的自由形式编辑指令,将其分类为预定义类型(添加、删除、局部编辑、背景编辑),识别目标对象,并利用预训练的检测模型找到相关的编辑mask。最后,生成编辑后的图像说明。在下一阶段,这些信息将被打包并发送到编辑系统,以图像修复方法完成任务。
正式过程如下:给定编辑指令和源图像,我们首先使用预训练的MLLM识别用户的编辑类型和相应的目标对象。然后,MLLM调用预训练的检测模型,基于搜索目标对象mask。获得mask后,MLLM将结合起来生成最终的编辑图像说明。源图像、目标mask和说明被传递到下一阶段,编辑指挥者,进行基于图像修复的编辑。

编辑指挥者

编辑指挥者基于之前的BrushNet,采用混合微调策略,使用随机mask和分割mask相结合。这种方法使修复模型能够处理多种mask基础的修复任务,而不受mask类型的限制,达到相当或更优的性能。具体而言,通过额外的控制分支将mask图像特征注入到预训练的扩散网络(例如Stable Diffusion 1.5)中。这些特征包括噪声隐空间,以增强语义一致性,通过VAE提取的mask图像隐空间,以引导前景提示和背景之间的语义一致性,以及通过立方插值下采样的mask,用于明确指示前景填充区域的位置和边界。

为了保持mask图像特征,BrushEdit使用了预训练扩散模型的副本,去除了所有注意力层。预训练的卷积权重作为提取mask图像特征的强大先验,而排除跨注意力层确保该分支专注于纯背景信息。BrushEdit的特征逐层集成到冻结的扩散模型中,实现分层、密集的每像素控制。根据ControlNet,使用零卷积层将冻结模型与可训练的BrushEdit连接,减轻早期训练阶段的噪声。特征插入操作定义为公式5。

其中,表示网络中第层的特征,其中表示层的总数。相同的符号也适用于
网络处理连接的噪声隐空间、mask图像隐空间和下采样的mask,其中连接用表示。表示零卷积操作,是保留尺度,调节BrushEdit对预训练扩散模型的影响。

先前的研究强调,在隐空间融合过程中,下采样可能引入不准确性,且VAE编码解码过程具有固有的局限性,影响图像的完整重建。为了确保未遮掩区域的一致重建,先前的方法探索了多种策略。一些方法[29],[31]依赖于复制粘贴技术,直接转移未遮掩区域,但这些方法通常导致输出缺乏语义一致性。受BLD启发的隐空间融合方法也难以有效保留未遮掩区域中的所需信息。

在这项工作中,提出了一种简单的像素空间方法,在使用模糊mask进行复制粘贴之前先进行mask模糊处理。虽然这可能会稍微影响mask边界附近的精确度,但这种误差几乎不可察觉,并显著改善了边界一致性。

BrushEdit的架构本质上设计为能够无缝地与各种预训练的扩散模型进行即插即用集成,从而实现灵活的保留控制。具体而言,BrushEdit的灵活功能包括:

  • 即插即用集成:由于BrushEdit不修改预训练扩散模型的权重,因此可以轻松地与任何社区微调的模型集成,便于采用和实验。
  • 保留尺度调整:可以通过将BrushEdit特征与冻结的扩散模型中的权重结合,控制未遮掩区域的保留尺度,从而调整BrushEdit对保留级别的影响。
  • 模糊和融合自定义:可以通过调整模糊尺度并根据需要应用融合操作,进一步细化保留尺度。这些功能为编辑过程提供了细粒度和灵活的控制。

实验

评估基准和指标

基准

为了全面评估BrushEdit的性能,在图像编辑和图像修复基准上进行了实验:

  • 图像编辑:使用了PIE-Bench(基于提示的图像编辑基准)来评估BrushEdit和所有基准方法在图像编辑任务上的表现。PIE-Bench包含700张图像,涵盖10种编辑类型,均匀分布在自然和人工场景(例如画作)之间,分为四个类别:动物、人类、室内和室外。每张图像包含五个标注:源图像提示、目标图像提示、编辑指令、主要编辑内容和编辑mask。

  • 图像修复:在之前工作的基础上,用BrushBench替代了传统基准[81]–[86],用于基于分割的mask和EditBench用于随机刷子mask。这些基准涵盖了人体、动物以及室内和室外场景的真实和生成图像。EditBench包含240张图像,其中自然和生成内容各占一半,每张图像都带有mask和说明。BrushBench,如图3所示,包含600张带有人工标注mask和说明的图像,均匀分布在自然和人工场景(例如画作)之间,并涵盖人类、动物以及室内/室外环境等多种类别。

将任务细化为两种基于分割mask的修复场景:内部修复和外部修复,从而实现对不同图像区域的详细性能评估。

值得注意的是,BrushEdit通过利用统一的高质量修复mask图像进行训练,超越了BrushNet,能够处理所有mask类型。这使得BrushEdit成为一个统一的模型,能够执行所有修复和编辑基准任务,而BrushNet则需要为每种mask类型进行单独的微调。

数据集

在之前版本中提出的BrushData的基础上,整合了两种子集:分割mask和随机mask,并进一步扩展了来自Laion-Aesthetic 数据集的数据,形成了BrushData-v2。一个关键的区别是,我们选择背景干净的图像,并随机与分割mask或随机mask配对,实际上创建了模拟基于删除的编辑的配对,显著增强了我们框架在图像编辑中的删除能力。数据扩展过程如下:使用Grounded-SAM标注开放世界mask,然后根据置信度分数进行过滤,仅保留高置信度的mask。同时,在过滤过程中考虑了mask的大小和连续性。

指标

评估了五个指标,重点关注未编辑/未修复区域的保留和已编辑/已修复区域的文本对齐。此外,我们还进行了广泛的用户研究,以验证BrushEdit在编辑指令对齐和背景保真度方面的优越性能。

  • 背景保真度:我们采用标准指标,包括峰值信噪比(PSNR)、学习的感知图像块相似性(LPIPS)、均方误差(MSE)和结构相似性指数测量(SSIM),来评估生成图像与原始图像之间未mask区域的一致性。

  • 文本对齐:使用CLIP相似度(CLIP Sim)来评估文本与图像的一致性,通过将两者投影到CLIP模型的共享嵌入空间中,并测量它们表示之间的相似性。

实现细节

除非另有说明,否则在一致的设置下评估各种修复方法,即使用NVIDIA Tesla V100 GPU及其开源代码,以Stable Diffusion v1.5作为基础模型,50步,指导比例为7.5。每种方法在所有图像上使用其推荐的超参数,以确保公平性。BrushEdit和所有消融模型在8台NVIDIA Tesla V100 GPU上训练430k步,约需要3天时间。值得注意的是,对于所有图像编辑(PnPBench)和图像修复(BrushBench和EditBench)任务,BrushEdit使用在BrushData-v2上训练的单一模型,达成了统一的图像编辑和修复。相比之下,我们之前的BrushNet需要为不同的mask类型进行单独的训练和测试。更多细节请参见提供的代码。

定量比较(图像编辑)

表II和表III比较了在PnPBench上的定量图像编辑性能。评估了先前基于反演的方法的编辑结果,包括四种反演技术——DDIM反演、Null-Text反演、Negative-Prompt反演和StyleDiffusion——以及四种编辑方法:Prompt-to-Prompt、MasaCtrl、pix2pix-zero和Plug-and-Play。

表II中的结果确认了BrushEdit在保留未编辑区域和确保编辑区域文本对齐方面的优越性。尽管基于反演的方法,如DDIM反演(DDIM)和PnP反演(PnP),能够实现高质量的背景保留,但它们本质上受到重建误差的限制,影响了背景的保持。相比之下,BrushEdit通过一个专门的分支单独建模未编辑的背景信息,而主网络则基于文本提示生成编辑区域。结合预定义的用户mask和混合操作,它确保了几乎无损的背景保留和语义一致的编辑。

更重要的是,方法能够在不受反演方法中不可恢复的结构噪声影响的情况下,保持高保真度的背景信息。这使得像添加或移除物体这样的操作成为可能,这在基于反演的编辑方法中通常是无法实现的。此外,由于不需要反演,BrushEdit只需要单次前向传递即可执行编辑操作。如表III所示,BrushEdit的编辑时间显著较短,极大提高了图像编辑的效率。

定性比较(图像编辑)

图4展示了与先前图像编辑方法的定性比较。呈现了在多种编辑任务上的结果,包括删除物体(I)、添加物体(II)、修改物体(III)和交换物体(IV),任务涉及人工图像和自然图像。BrushEdit在编辑区域和未编辑区域之间始终保持卓越的一致性,在遵循编辑指令、编辑mask边界的平滑度以及整体内容一致性方面表现出色。特别地,图4中的I和II任务包括删除花朵或笔记本电脑,添加领子或耳环等。

定量比较(图像修复)

表IV和表V展示了在BrushBench和EditBench上的定量比较。评估了几种图像修复方法,包括采样策略修改方法Blended Latent Diffusion、专门的修复模型Stable Diffusion Inpainting、HD-Painter、PowerPaint,以及基于Plug-and-Play方法的ControlNet,这些方法都在修复数据上进行过训练。此外,还包括之前的BrushNet。

结果证实了BrushEdit在保持未修复区域的完整性和确保修复区域的文本对齐方面的优越性。Blended Latent Diffusion表现最差,主要原因是由于它忽视了mask边界,并且在mask区域与未mask区域之间的过渡不一致,导致了混合引发的隐空间损失。HD-Painter和PowerPaint,都基于Stable Diffusion Inpainting,在内部修复任务中与其基础模型取得了相似的结果。然而,在外部修复任务中,它们的性能急剧下降,因为它们仅设计用于内部修复。ControlNet,明确为修复任务而训练,具有与我们相似的实验设置,但其与修复任务的设计不匹配,限制了其保持mask区域完整性和文本对齐的能力,因此需要与Blended Latent Diffusion结合才能取得合理的结果。即使使用了这种组合,它仍然无法超越专门的修复模型和BrushEdit。

在EditBench上的表现与BrushBench上的结果相一致,均显示出BrushEdit的优越性。这表明我们方法在各种修复任务中,包括分割、随机、内修复和外修复mask方面都表现稳定优异。

值得注意的是,与BrushNet相比,BrushEdit现在通过一个模型超越了BrushNet,在基于分割mask和随机mask的基准测试中取得了更强大且通用的修复能力。这一进步主要归功于统一的mask类型和BrushData-v2中更丰富的数据分布。

定性比较(图像修复)

图5展示了与以往图像修复方法的定性比较。评估了在人工和自然图像上的修复结果,涵盖了多种修复任务,包括随机mask修复和分割mask修复。BrushEdit在生成区域与未mask区域之间的内容和颜色一致性方面表现始终优越(I,II)。特别是在图5 II(左侧)中,任务要求生成一只猫和一条金鱼。尽管所有先前的方法未能识别出mask图像中已有的金鱼,并错误地生成了另一条鱼,但BrushEdit通过其双分支解耦设计准确地将背景上下文融入修复中。此外,BrushEdit在整体修复性能上超越了我们之前的BrushNet,且无需针对特定mask类型进行微调,在随机mask和分割mask的修复结果上均能取得相当甚至更优的表现。

灵活控制能力

图6和图7展示了BrushEdit在两个关键领域提供的灵活控制:基础扩散模型选择和尺度调整。这种灵活性不仅限于图像修复,也扩展到图像编辑,主要通过改变主干网络的生成先验和分支信息注入强度来实现。在图6中,我们展示了BrushEdit如何与各种社区微调的扩散模型结合使用,使用户能够选择最适合其特定编辑或修复需求的模型。这大大增强了BrushEdit的实用价值。图7则展示了对BrushEdit的尺度参数的控制,允许用户在编辑或修复过程中调整未mask区域的保护程度,从而提供精细的控制,确保结果精准且可定制。

消融研究

进行了消融研究,以考察不同模型设计对图像修复任务的影响。由于BrushEdit基于图像修复模型,编辑任务是通过推理过程完成的,链式连接MLLMs、BrushEdit和图像检测模型作为代理。修复能力直接反映了我们模型的训练结果。表VI比较了双分支和单分支设计,表VII则重点展示了附加分支架构的消融研究。

在BrushBench上进行的消融研究对内修复和外修复的性能进行了平均。表VI中的结果表明,双分支设计显著优于单分支设计。此外,在双分支设置中微调基础扩散模型的结果优于冻结模型。然而,微调可能会限制模型的灵活性和控制能力。考虑到性能与灵活性之间的权衡,我们选择采用冻结的双分支设计。表VII解释了关键设计选择的理由:(1)使用VAE编码器而非随机初始化的卷积层处理mask图像,(2)将完整的UNet特征逐层集成到预训练UNet中,以及(3)移除BrushEdit中的文本交叉注意力,以防止mask图像特征受到文本的影响。

讨论

结论: 本文介绍了一种新颖的基于修复的指令引导图像编辑范式(IIIE),该范式结合了大型语言模型(LLMs)和即插即用的全能图像修复模型,实现了自主、用户友好和交互式的自由形式指令编辑。我们在PnPBench、我们提出的基准、BrushBench和EditBench上的定量和定性结果展示了BrushEdit在图像编辑和修复任务中,在mask背景保留和图像-文本对齐方面的优越性能。

局限性与未来工作: 然而,BrushEdit仍存在一些局限性:(1)我们模型生成的质量和内容在很大程度上依赖于所选择的基础模型;(2)即使使用BrushEdit,当mask形状不规则或提供的文本与mask图像不对齐时,仍然可能出现生成质量差的情况。在未来的工作中,我们计划解决这些挑战。

消极社会影响:图像修复模型为内容创作提供了令人兴奋的机会,但也带来了隐的风险,尤其是对个人和社会的影响。它们对互联网收集的训练数据的依赖可能会加剧社会偏见,并且存在通过操纵人类图像生成误导性内容的风险。为了减轻这些担忧,负责任的使用和建立伦理指南至关重要,这也将是我们未来发布模型时的重点。

参考文献

[1] BrushEdit: All-In-One Image Inpainting and Editing



AI算法与图像处理
考研逆袭985,非科班跨行AI,目前从事计算机视觉的工业和商业相关应用的工作。分享最新最前沿的科技,共同分享宝贵的资源资料,这里有机器学习,计算机视觉,Python等技术实战分享,也有考研,转行IT经验交流心得
 最新文章