现有的图像编辑工具多集中于静态调整,如替换图像中的特定区域或改变整体风格,对于动态调整——特别是图像中主体的位置变化则显得力不从心。这种局限性激发了对更加先进和灵活的图像编辑技术的探索。复旦大学数据科学学院的研究团队提出了一种名为SEELE的框架,用于实现图像中主体的动态重定位。SEELE框架通过统一的提示引导修复过程,使用单一的扩散模型有效处理主体移除、完成和协调等子任务,为图像编辑带来了新的可能性。
方法
SEELE通过动态地重新定位图像中的主体,同时保持图像的完整性和真实感,实现了一种全新的视觉呈现方式。SEELE框架的核心在于它能够理解用户意图,识别出图像中的主体,并根据用户的指令将其移动到期望的位置。这一过程中,SEELE不仅要考虑主体的新位置,还要处理因主体移动而产生的空白区域,以及主体可能被遮挡的部分。SEELE通过先进的算法,能够智能地填补空白,重建遮挡部分,并确保主体在新位置上与周围环境协调一致。
SEELE框架是针对图像中主体重定位问题提出的一整套解决方案。它通过创新性地分解任务、引入任务反转技术,以及精心设计的预处理和后处理步骤,实现了对图像中主体的精准操控。
图 2 展示了SEELE框架在处理主体重定位(SubRep)任务时的流程。这一流程包括三个关键步骤:预处理、操作和后处理。SEELE框架通过单一的扩散模型来解决所有生成子任务,确保了处理过程的高效性和一致性。
预处理阶段: 在预处理阶段,SEELE框架的首要任务是精确识别图像中的主体。这一过程依赖于用户输入的条件,如简单的点选、绘制的边框,或是文本描述,SEELE都能够据此定位主体。接着,SEELE会分析主体间的遮挡关系,这是确保重定位后图像自然性和连贯性的关键。例如,如果一个人物主体被树木遮挡,SEELE需要识别出这种遮挡,并在后续步骤中适当处理,以保持场景的真实性。此外,如果需要,SEELE还会调整主体的大小,以符合透视关系,确保在新位置上主体的比例和场景相匹配。
操作阶段: 操作阶段是SEELE框架的核心,涉及到主体的移除、填补和重建。首先,SEELE会填充主体移位后留下的空白区域,这一步骤需要创造性地生成与周围环境相融合的内容,避免出现不自然或突兀的视觉效果。其次,如果主体在移动后被部分遮挡,SEELE将使用用户指定的不完整掩码来重建被遮挡的主体部分,确保主体的完整性。这一阶段的关键在于使用单一的扩散模型,通过不同的任务提示来指导模型完成不同的生成任务,从而实现主体的有效重定位。
后处理阶段: 后处理阶段的目的是确保重新定位的主体与新环境之间的无缝衔接。SEELE会处理由于主体移动带来的任何视觉上的不一致性,包括调整光照、颜色和纹理,以匹配新背景。SEELE还会特别关注局部协调,确保主体的边界和周围环境自然过渡,没有明显的边界痕迹。如果主体在新位置上需要阴影效果,SEELE也能够根据场景的光照条件生成逼真的阴影,增强主体的立体感和融入感。通过这些细致的调整,SEELE能够生成高质量、高保真的重定位图像。
SEELE框架通过这三个阶段的紧密协作,实现了对图像中主体的精准操控和自然重定位,为用户提供了一种高效、直观且强大的图像编辑工具。
任务反转是SEELE框架中的一个关键创新点,它使得单一的扩散模型能够适应多种不同的图像生成任务。这一技术的核心在于将传统的文本到图像的生成过程转变为基于任务指令的生成过程,从而提高了模型的灵活性和适应性。
在任务反转中,SEELE不是简单地使用现成的文本提示来引导图像生成,而是通过训练学习到的潜在嵌入(latent embeddings)来指导扩散模型。这些嵌入作为替代文本条件,能够根据具体的任务指令来调整模型的生成方向。这种方法的优势在于,它允许SEELE在不改变模型架构的情况下,通过调整任务级别的"文本"提示来适应不同的图像生成任务。
任务反转的实现涉及到以下几个关键步骤:
-
生成特定任务的掩码:为了训练模型识别和响应不同的任务,SEELE首先需要为每个任务生成特定的掩码。例如,在主体移除任务中,掩码会模拟主体被移除后留下的空白区域。
-
学习任务特定的提示:通过训练过程,SEELE学习到与特定任务相关的提示,这些提示能够指导扩散模型生成符合任务需求的图像内容。例如,"complete the subject"(完成主体)这样的提示会引导模型填充被遮挡的主体部分。
-
保持模型主干固定:在任务反转的训练过程中,SEELE保持了扩散模型的主干部分不变,只有任务提示的嵌入向量是可学习的参数。这减少了模型训练的复杂性,并保持了原有模型的稳定性。
-
适应不同生成路径:由于不同的子任务可能需要不同的生成逻辑,任务反转允许SEELE通过学习到的任务提示来选择最合适的生成路径。这样,无论是填补空白、重建遮挡部分,还是协调主体与环境的一致性,SEELE都能够灵活应对。
学习任务反转是SEELE框架中的一个核心过程,它使得模型能够理解和执行特定的图像编辑任务。这一过程涉及到训练模型以识别和响应各种任务指令,而不是简单地依赖于固定的文本提示。以下是学习任务反转的几个关键方面:
-
任务特定掩码的生成:为了训练模型识别不同的图像编辑任务,SEELE首先需要创建与任务相关的掩码。例如,在主体移除任务中,需要生成一个掩码来表示主体被移除后留下的空间。在主体完成任务中,掩码则表示被遮挡的主体部分,需要模型来填充和重建。
-
任务指令的嵌入学习:SEELE通过训练学习到与特定任务相关的潜在嵌入向量,这些嵌入向量作为任务指令,指导扩散模型的生成过程。这一学习过程涉及到优化模型,使其能够根据任务指令生成符合预期的图像内容。
-
冻结模型主干:在学习任务反转的过程中,SEELE框架保持了扩散模型的主干部分不变,只有与任务相关的嵌入向量是可训练的参数。这种设计允许模型在不牺牲原有能力的前提下,获得执行特定任务的能力。
-
适应多样化的任务需求:通过学习任务反转,SEELE能够适应不同的图像编辑任务,如主体移除、主体完成和主体协调等。这种适应性是通过调整任务级别的提示来实现的,而不是通过改变模型的架构。
-
优化和评估:在学习过程中,SEELE使用特定的损失函数来优化任务指令的嵌入向量。这些损失函数衡量了生成图像与预期结果之间的差异。通过最小化这些损失,SEELE能够提高任务执行的准确性和可靠性。
-
灵活性和扩展性:任务反转的学习方法为SEELE提供了极高的灵活性和扩展性。随着新任务类型的出现,SEELE可以通过学习新的任务指令来适应这些任务,而无需进行大规模的模型重构。
实验
实验中,SEELE框架在10242张真实世界图像上进行了主体重定位任务。结果表明,SEELE能够在多样化的场景中灵活地重新定位主体,并且生成的图像具有高保真度。这些示例证明了SEELE在处理复杂图像时的能力,包括不同光照条件、背景和主体类型。
由于Google Photos的Magic Editor不公开,无法直接与SEELE进行比较。因此,实验主要将SEELE与原始的Stable Diffusion(SD)修复模型进行了比较。SD模型使用了不同的提示来进行主体移除和完成任务。实验还集成了其他几种修复算法到SEELE中,以评估其性能。
通过视觉比较,SEELE在主体移除和完成方面表现出色。特别是在处理不精确的掩码时,SEELE能够减少不清晰边缘的影响,并且更好地平滑区域。与其他方法相比,SEELE在保持主体完整性和周围环境一致性方面具有明显优势。
为了更客观地评估SEELE的性能,研究团队使用了Learned Perceptual Image Patch Similarity (LPIPS)作为定量指标,并进行了用户研究来评估用户对结果的偏好。用户研究涉及100份匿名调查,结果显示SEELE在所有指标上都显著优于其他方法,尤其是在图像操作的质量与周围区域的一致性方面。
为了进一步验证任务反转的有效性,SEELE在Places2数据集上进行了标准修复任务的实验,并与Flickr-Scenery数据集上的其他修复算法进行了比较。结果表明,任务反转在标准修复和扩展任务中均表现出色。
实验还探讨了不同任务提示对SEELE生成方向的影响。结果表明,使用错误的提示可能会导致模型生成不良的结果,这验证了SEELE学习到的任务提示在引导特定生成方向方面的能力。
为了评估SEELE中本地协调子任务的有效性,进行了消融研究。结果表明,结合和谐提示和LoRA参数可以有效地解决本地协调问题。
最后,实验还评估了SEELE中各个组件的有效性。结果表明,每个组件都对生成图像的保真度和一致性有重要影响。
通过这些详细的实验结果和分析,SEELE框架证明了其在图像中主体重定位任务中的高效性和可靠性。随着技术的不断发展,SEELE有望在图像编辑和内容创作领域发挥更大的作用。
论文链接:https://arxiv.org/abs/2401.16861