文章链接:https://arxiv.org/pdf/2509.04582
项目链接:https://visual-ai.github.io/inpaint4drag/

基于拖动的图像编辑方法比较

基于拖动的图像编辑方法比较

亮点直击

  • 一个物理启发的变形框架,将图像区域视为弹性材料,通过用户指定的控制点和区域掩码实现自然变换,并提供可选的掩码细化功能以处理精确的对象边界。

  • 一种高效的双向扭曲算法,通过前向扭曲建立初始形状,并通过反向映射填充间隙,创建密集的像素对应关系,同时保持实时性能。

  • 一种模块化pipeline,清晰地将变换与生成分离,计算显露区域和边界平滑的精确掩码,以实现与现有修复模型的无缝集成。

总结速览

解决的问题

  • 控制精度低: 现有基于拖拽的编辑方法主要在生成模型(如Stable Diffusion)的隐空间(latent space) 中进行操作。用户控制点需要被下采样到低分辨率隐空间(如从512×512到32×32),导致用户输入与最终变化之间的映射关系模糊,控制不精确。

  • 交互体验差: 生成过程耗时,无法提供实时视觉反馈。用户被迫进行耗时的“试错”循环,严重影响了交互的流畅性。

  • 功能受限: 依赖通用文生图模型处理编辑后产生的大面积遮挡和缺失区域(如旋转头部、张嘴)时,效果不真实,能力有限。

  • 模型依赖性强: 现有方法通常与特定生成模型架构深度耦合,无法通用地利用其他或未来更先进的修复模型。

提出的方案

提出了 Inpaint4Drag 的新型交互框架。该框架的核心思想是将复杂的拖拽编辑任务解耦为两个更简单、更专业的子任务:

  1. 双向变形(Bidirectional Warping): 受物理世界中弹性物体变形的启发,将图像区域视为可变形材料。
    • 前向变形(Forward Warping):根据用户拖拽的控制点,将源像素移动到目标位置,定义出初始轮廓和大致变形。

    • 反向变形(Backward Warping):填补前向变形产生的孔洞和间隙,建立密集的几何对应关系,完成平滑的几何变换。

  2. 图像修复(Image Inpainting): 自动计算修复区域(包括变形后显露出的区域和轮廓周围的窄带区域),然后将标准格式的(图像+修复掩码)输入到任何现成的、专业的图像修复模型中进行最终的内容补全。

应用的技术

  • 物理启发的弹性变形模型: 将图像处理问题类比为物理世界的弹性材料变形,为几何变换提供理论依据。

  • 双向变形算法(Bidirectional Warping Algorithm):结合前向和反向变形,有效解决了单一变形方法产生的伪影和空洞问题,实现了高质量、无缝的像素级几何变换。

  • 掩码优化模块(Optional Mask Refinement Module):一个可选的辅助模块,用于自动捕捉精确的对象边界,确保边缘和内部区域变形的一致性。

  • 通用适配器设计(Universal Adapter Design):将用户的拖拽输入转化为任何图像修复模型都能处理的标准输入格式(图像+掩码),从而与具体模型架构解耦。

达到的效果

  • 极高的交互效率:
    • 提供实时(0.01秒) 的变形预览,让用户立即看到大致的变形效果。

    • 整个编辑过程(包括修复)在0.3秒内即可完成(512×512分辨率),相比需要数分钟的现有方法,交互体验得到显著提升

  • 卓越的编辑质量:
    • 实现了精确的几何控制,保持了被拖动内容的颜色,并保护了未编辑区域的图像质量。

    • 能够有效处理大面积遮挡等挑战性编辑任务(如让狮子张嘴、旋转人头),生成效果更真实。

  • 强大的通用性和可扩展性:
    • 作为一个“万能适配器”,无需修改即可利用任何现有的(如LaMa)或未来的图像修复模型,并自动继承其所有性能提升。

  • 精准的控制: 在像素空间中进行变形操作,避免了隐空间下采样带来的精度损失,实现了对图像内容的像素级精确控制

方法

Inpaint4Drag,一种基于拖拽的图像编辑交互方法,将该任务分解为双向扭曲和标准图像修复。给定输入图像,用户可以绘制掩码来选择要变形的对象,并使用掩码细化模块来提高边界精度。在指定拖拽点对后,双向扭曲算法立即变形所选区域,提供编辑结果的实时预览,该预览同时也作为修复模型的输入。用户在执行相对耗时的修复操作之前,迭代细化掩码和控制点以达到所需的拖拽效果,该修复操作填充变形后显露的区域。本文的方法通过专门的变形控制和集成的修复模型实现无缝补全,从而在实现实时交互的同时提供高质量的结果。

区域指定与边界细化

先前的拖拽编辑方法通常使用稀疏控制点来引导变形,并可选择使用掩码来限制可编辑区域。然而,这种稀疏输入格式在变形解释中引入了根本的模糊性——大量像素的运动仅依赖于少数控制点的引导。对角色手臂的单个拖拽操作可能产生截然不同的结果:全身旋转、局部手臂运动或孤立的点平移。没有明确的变形规范,现有方法通常会产生偏离用户意图的不可预测结果。

本文通过要求用户显式地指定用于变形的掩码区域来解决这种模糊性,类似于自然识别对象可移动部分的方式。给定输入图像、一组手柄点及其目标位置,将每个掩码区域视为弹性材料,移动手柄点会在整个连接区域内产生涟漪效应——就像拉伸橡胶片一样。双向扭曲方法计算密集变形场,确保从控制点到每个像素的平滑影响传播,同时在整个变形区域保持完整的像素覆盖。为了有效传播变形,掩码边界应与对象边界对齐——属于同一对象的像素应连贯地移动。为了在保持变形连贯跨越对象边界的同时简化用户交互,本文提出了一个基于Segment Anything Model (SAM) 的可选掩码细化模块。

给定包含点的用户输入掩码,直接使用所有掩码点作为SAM输入会引入计算瓶颈。为了解决这个问题,本文从用户绘制的掩码中采样网格点作为SAM输入,这在保持交互性能的同时保留了关键的边界信息。

通过SAM的提示编码器处理这些采样点以获得点嵌入,这些嵌入与图像嵌入结合以生成预测掩码。尽管SAM具有强大的分割能力,但直接的SAM预测可能生成不连贯的区域或捕获远离用户指定区域的不相关对象,这是由于SAM倾向于分割完整对象和语义相似的实例,而不是用户意图的区域(示例见下图2或图6)。采用两步细化方法来解决这一限制,该方法在保持用户意图的同时平衡自动边界检测。

首先,生成输入掩码的膨胀和腐蚀版本

其中表示半径为的膨胀/腐蚀核。通过边界引导公式获得细化掩码:

其中和分别表示逻辑或(OR)和逻辑与(AND)操作。该方法使用膨胀和腐蚀掩码来创建自然边界约束,确保细化结果尊重用户的原始意图,同时提高边界精度。通过将核半径作为控制参数暴露给用户,用户可以定制细化强度,在自动边界检测和手动控制之间实现所需的平衡。

用于区域变形的双向扭曲

给定用户掩码(原始或细化后的)和控制点对,双向扭曲算法旨在将这些输入转化为掩码区域的连贯变形,并为修复模型准备标准输入:一个包含变形内容的扭曲图像,以及一个识别因像素重定位而留下空白的区域的修复掩码。

如下图3和图4所示,本文的方法包括四个步骤:(1) 轮廓提取以识别独立的可变形区域;(2) 前向扭曲以定义目标区域边界并建立初始映射;(3) 后向映射以确保目标区域中的完整像素覆盖;(4) 利用已建立的映射生成扭曲内容并识别需要修复的区域。

轮廓提取与控制点关联

首先将二值掩码分解为表示独立可变形区域的不同轮廓(粉色块左侧,上图3)。轮廓指的是追踪掩码中连通区域边界的闭合曲线。

为了保持局部变形一致性,将每个轮廓点与其区域内部的控制点相关联。

确保每个区域仅响应其边界内的控制点,保持了仅在用户直接交互处发生变形的直观行为。为简洁起见,在后续方程中简单地使用来指代与轮廓点关联的控制点。

前向扭曲

对于具有单个控制点对的区域,变形简化为平移,区域像素直接从手柄位置移动到目标位置。当存在多个控制点时,变形变为非刚性,需要基于插值的变换。首先执行前向扭曲(绿色块,图3),它有两个关键目的:i) 变换轮廓本身以定义目标区域边界,以及ii) 建立初始像素级映射以指导后续处理。

对于源区域中的每个点(包括轮廓的边界点),通过加权插值计算其目标位置

其中表示与轮廓关联的控制点数量,权重通过反距离加权计算:

虽然这种前向方法建立了初始映射,但单独使用它进行扭曲会产生采样伪影(示例见上图3或下图7)。当非刚性变换拉伸图像区域时,像素的离散性会在目标位置未接收到映射值的地方产生间隙。当变换后的源像素网格在目标空间中被拉伸且变得不连续时,就会出现这种情况,从而留下未映射的间隙。

后向映射

为了确保变形区域内完整的像素覆盖(蓝色块,上图3),计算变换后的目标轮廓内所有像素的源位置。对于每个目标像素,使用以下公式确定其对应的源位置:

其中表示在前向过程中成功匹配的个最近目标像素,代表其中一个匹配的最近目标位置,是其对应的源位置,是如前定义的反距离权重。

与使用全局像素参考相比,这种局部邻域方法提供了计算效率,并通过限制遥远前向扭曲结果对最终映射的影响来帮助保持结构一致性。通过确保所有坐标保持在图像边界内来验证每个计算的映射对。

其中和分别表示图像的宽度和高度。这防止了从图像域外未定义区域进行采样。

后向映射策略通过建立可靠的像素级映射来完成双向框架,这些映射保持了局部结构关系,同时解决了前向变换的局限性。

计算扭曲结果和修复掩码

使用已建立的像素映射,通过传输像素值来生成扭曲图像:

如上图4所示,随后通过确定存在于原始掩码中但在变形结果中未映射的像素来识别需要修复的区域:

为确保在扭曲内容边界和腾空区域都能实现平滑过渡,对未映射区域和扭曲掩码边界同时应用膨胀操作。通过扩展修复掩码,这在边界周围创建了一个缓冲区域,使得修复模型能够处理过渡区域,并避免扭曲内容与新生成内容之间出现突兀的边缘:

其中表示半径为的膨胀核。至此,双向扭曲算法已处理用户掩码和控制点对,生成扭曲图像和修复掩码,这两者共同构成图像修复模型所需的标准输入。

与图像修复的集成

流程的最后一步是应用修复模型为变形过程中显露的区域生成内容:

在执行修复操作之前,本文方法提供作为最终结果的实时预览——这是现有方法所缺乏的能力。该预览使用户能够通过调整掩码和控制点来实现所需的拖拽效果,从而提供更交互式的编辑体验,避免了重复尝试修复带来的不必要开销。

在实现中,选择了Stable Diffusion 1.5 Inpainting Checkpoint,该模型从常规Stable Diffusion v1.2模型微调而来,并针对修复任务进行了额外训练。修复过程遵循一个简单的流程:将掩码调整大小并与图像VAE潜在表示连接。在条件扩散去噪过程中,用纯噪声初始化掩码区域,在变形显露的区域生成全新的内容。最后,通过VAE解码将结果转换回像素空间。

为优化性能,采用了多项效率增强技术:TinyAutoencoder SD (TAESD)(一种减少内存需求的蒸馏VAE);LCM(潜在一致性模型)LoRA以减少采样步骤;空文本提示以消除无分类器引导计算;以及缓存空提示嵌入以避免编辑会话中的重复计算。值得注意的是,虽然使用这种代表性修复模型报告实验结果,但本文的框架可以容纳任何修复模型作为即插即用的替代方案。

实验

数据集

使用两个基准评估拖拽编辑方法:来自SDE-Drag的DragBench-S(包含100个样本)和来自DragDiffusion的DragBench-D(包含205个样本)。每个基准条目包括源图像、描述图像的文本提示、可编辑区域的二值掩码以及显示所需移动的点对。

在本框架中,掩码作为可变形区域具有不同的用途。虽然可编辑区域指示允许编辑的位置,但可变形区域定义了在变换过程中应一起移动的连贯部分。因此重新标注了可变形区域位置和拖拽点,同时保留了原始用户编辑意图并保持源图像不变。

评估指标

本文使用LPIPS和平均距离(MD)来衡量编辑性能。

LPIPS:学习感知图像块相似度(LPIPS)v0.1测量原始图像与编辑图像之间的身份保持度。较低的LPIPS表示更好的身份保持。然而,该指标的一个局限性是它仅测量图像块之间的低级特征相似性。在拖拽编辑中,有意且正确的形状变形通常会导致不可避免的LPIPS增加,这不应受到惩罚。

平均距离(MD):该指标评估手柄点移动到目标位置的准确度。采用DIFT在编辑图像中查找用户指定手柄点的匹配点,将搜索区域限制在用户指定的手柄点和目标点周围区域以避免错误匹配。MD计算为目标点与DIFT匹配点之间的平均归一化欧几里得距离。

实现细节

本文的框架使用PyTorch在单个NVIDIA Tesla V100-SXM2 GPU上以Python实现。对于掩码细化,采用EfficientVIT-SAM-L0并从用户掩码中采样点,将采样点数量限制为以提高计算效率。膨胀/腐蚀核半径设置为10像素,以在保持用户意图的同时提供足够的边界细化。在双向扭曲模块中,设置以确保权重计算的数值稳定性,并使用个最近邻进行后向映射。最终修复掩码使用核半径像素进行膨胀以确保平滑过渡。对于修复,采用Stable Diffusion 1.5 Inpainting Checkpoint配合TAESD和LCM LoRA,将图像调整到长边512像素同时保持宽高比。使用8个采样步骤进行扩散,无需无分类器引导。

定量评估

如下表1所示,将Inpaint4Drag与最先进的方法进行比较。本文的双向扭曲算法在DragBench-S和DragBench-D上实现了拖拽精度和图像一致性的显著提升,获得了最低的MD分数(3.6/3.9)和具有竞争力的LPIPS值(11.4/9.1)。这一优势源于密集的像素级变形计算,在操作过程中保持了颜色和几何关系。值得注意的是,Inpaint4Drag比FastDrag快14倍,比DragDiffusion快近600倍,其中基于SAM的细化耗时0.02秒,双向扭曲仅需0.01秒。计算峰值出现在SD修复预览期间,需要0.29秒,同时在所有方法中使用最少的内存(2.7GB)。

定性结果

如下图5所示,Inpaint4Drag在来自DragBench-S和DragBench-D的挑战性案例上优于最先进的方法。通过利用专门的修复模型,Inpaint4Drag在先前被遮挡的区域生成真实的内容(例如,第1行和第4行中新暴露的面部特征,以及第3行中狮子张开的嘴巴)。可选掩码细化模块使用户能够连贯地变形对象边界(第4、5和7行)或专注于精确的局部编辑(其余示例)。与将控制点下采样到潜在分辨率时会丢失精度的隐空间方法不同,像素空间方法能够精确操作局部细节(第2行和第5行)。双向扭曲生成拖拽内容的信息化预览,为后续修复过程提供信息化的上下文。

方法分析

掩码细化。如下图6所示,本文方法通过将SAM的预测(中间)限制在用户输入的膨胀区域内,将粗糙的初始掩码(左侧)转换为精细化的结果(右侧)。虽然细化模块同时包含内部和外部边界约束,但为了可视化清晰度,在这些示例中仅展示外部边界的使用情况。最终得到的掩码有效捕获了对象边界,同时保留了用户预期的编辑范围。

单向与双向扭曲。前图7中展示了单向(仅前向扭曲)和双向扭曲的定性比较。单向方法难以处理采样伪影,在变形过程中会在拉伸区域产生明显的间隙。当非刚性变换拉伸图像区域时会出现这些伪影,因为像素的离散性会导致未映射的间隙,目标位置由于变换后像素网格的不连续性而无法接收到源值。双向方法通过两步过程有效解决了这些挑战:首先通过前向扭曲识别目标轮廓,然后采用像素级后向映射来填充间隙。这种方法产生无间断的平滑变换,为用户预览和图像修复提供可靠的视觉上下文。

结论

Inpaint4Drag,一种通过像素空间双向扭曲将图像修复重新用于基于拖拽的编辑的新方法。与依赖未针对拖拽操作优化的通用文本到图像模型的现有解决方案不同,本文专门的扭曲和修复分离有效保持了像素一致性,同时在新显露区域生成高质量内容。双向扭曲算法和基于SAM的边界细化提供实时反馈以实现直观交互。实验结果表明,Inpaint4Drag在将处理时间从分钟级减少到毫秒级的同时提供了卓越的性能。此外,由于Inpaint4Drag与任何修复模型兼容,它可以随着修复技术的进步而持续改进。

参考文献

[1] Inpaint4Drag: Repurposing Inpainting Models for Drag-Based Image Editing via Bidirectional Warping

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐