美图公司推出AI局部重绘功能!局部重绘让你随心所欲修改AI生成的图像作品,想怎么改就怎么改

最近,靠着出其不意的扩图效果,“AI扩图”功能凭借搞笑的补全结果频频出圈,火爆全网。网友们踊跃尝试,180度的大反转也让网友们直呼离谱,

最近,靠着出其不意的扩图效果,“AI扩图”功能凭借搞笑的补全结果频频出圈,火爆全网。网友们踊跃尝试,180度的大反转也让网友们直呼离谱,话题热度高居不下。

近日,美图公司旗下WHEE等产品上线AI扩图及AI改图功能,只需简单的提示性输入,用户就可以任意修改图像、移除画面元素、扩充画面,凭借便捷的操作与惊艳的效果,大大降低工具使用门槛,为用户带来高效、优质的图像创作体验。

本次全新上线的AI扩图和AI改图功能基于美图自研的AI局部重绘技术,由美图影像研究院(MT Lab)依托美图视觉大模型MiracleVision倾力打造。现在,就一起来揭晓这项黑科技背后的奥秘吧!

美图AI局部重绘技术:MiracleVision大模型加持

众所周知,图像局部重绘是图像编辑细分功能中使用频率最高的功能之一,根据需要重绘的位置(即Mask区域)不同可以进一步细分为内部区域重绘(inpaint)和外部区域重绘(outpaint)。

传统的图像局部重绘方法往往要求用户使用专业图像编辑工具手动重绘目标区域,或者根据用户划定的目标区域,使用基于GAN(生成对抗网络)的方法进行自动化的像素内容填充。前者需要用户具备一定的美术功底和对专业工具的熟练使用,门槛较高,对普通用户来说难度大;而后者填充出来的区域通常缺乏真实性,在纹理细节等方面表现欠佳,当用户划定的mask区域越大,填充出来的效果也会越来约失真。

除此之外,基于GAN的方法只能根据周围的像素信息进行填充,并不能够根据文本引导凭空生成出新的内容,这极大地限制了它的使用场景。

基于GAN方法的重绘结果

而当前大热的扩散模型(Diffusion Model)虽然将图像生成效果推向了一个新高度,但在图像重绘领域中仍在存在一些问题,比如常见的Stable Diffusion 1.5、Stable Diffusion 2.0、SDXL等扩散模型由于输入图像分辨率的限制,在生成纹理上有时无法与原图完全贴合,存在边界感;以及在执行目标消除任务时,容易不受prompt(提示词)的限制,凭空生成一些其它的前景目标,无法输出纯背景像素。

Stable Diffusion 1.5的局部前景消除结果

为了实现自然过渡的画面融合,达到“以假乱真”的目标,美图影像研究院(MT Lab)基于自研AI视觉大模型——MiracleVision(奇想智能)强大的图像生成能力以及多模态理解能力,实现了简单、高效且逼真的AI局部重绘效果。

用户只需要手动涂抹或通过智能分割算法,选择想要编辑的区域,再输入具体修改目标,就能够在保持图像主体特征的前提下,进行任意编辑。支持包括画面元素消除、修改、移动、替换及画面扩充等重绘操作,结合高精度纹理生成技术,生成部分与原图高度融合,真正做到画面“不失真”,不仅极大提升用户的图像编辑效率,还能让废片“变废为宝”。

MiracleVision(奇想智能)消除结果

MiracleVision(奇想智能)替换效果前

MiracleVision(奇想智能)替换效果后

MiracleVision(奇想智能)AI改图效果

强大模型能力,让图像编辑随心所欲

美图AI局部重绘模型基于扩散模型(Diffision Model)技术构建了完整的inpaint & outpaint模型框架,将内部区域重绘、前景目标消除以及外部区域扩展等任务统一到同一个方案中进行解决,并针对一些特定的效果问题做了专门的优化设计。

MiracleVision(奇想智能)模型属于文生图模型,虽然可以通过改造第一卷积层,并将unet整体微调的方式,使其适应inpaint任务,但这样需要修改unet原有的权重,在训练数据量不足时可能会导致模型性能的下降。

因此,为了充分利用MiracleVision(奇想智能)已有的生成能力,团队在局部重绘模型中不对MiracleVision(奇想智能)的unet模型进行直接微调,而是使用controlnet的方式增加一个mask的输入分支进行控制。

同时,为了节约训练成本,加快推理速度,使用压缩后的controlnet模块进行训练,尽可能地减少计算量。在训练的过程中,unet模型的参数会被固定,只有controlnet模块会进行更新,最终使整个模型获得inpaint的能力。

美图AI局部重绘模型架构图

Outpaint任务则是crop任务的反向操作。Crop任务是沿着图像边界对原图像进行剪裁,只保留需要的部分,是一种图像内容的减法操作;而outpiant任务则是沿着图像边界向外进行扩展,借助模型的生成能力来凭空创造出原本不存在的内容,是一种图像内容的加法操作。

本质上,Outpaint任务也可以看作是一种特殊的inpaint任务,只不过mask区域位于图像的外围。

MiracleVision(奇想智能)AI扩图效果

由于outpaint任务中的mask区域只能从图像内部获取引导信息,其他的方向上都是图像边界,因此生成的内容更加具有随机性,会更加的发散。为了填补图像外围的空白区域,同时保证画面拓展的准确性,团队依托场景识别算法对图像风格及内容进行推断,并充分利用图像内容的相关性,通过在扩展边缘处镜像复制原图中的像素并叠加随机噪声,为模型提供适合的初始先验,从而保证生成内容的合理性,并使得边界过渡更加平滑。

通过多种训练策略,自由控制物体生成与消除

一般的扩散模型在执行inpaint任务时更擅长替换而不是消除,当需要消除某一目标时,模型很容易在mask区域中绘制出一些原本不存在的新前景目标,特别是当mask区域的面积比较大的时候这一现象尤为明显,即使这些目标并没有出现在prompt中。究其原因,主要是以下3个方面:

1、训练集的prompt中,一般只描述了图像中有什么,而不会描述图像中没有什么,因此让训练后的模型根据提示生成某一目标很容易,但是不让它生成目标却很难。即便有Classifier-Free Guidance策略,可以通过把不想要的物体添加到负词中的方式来抑制该目标的生成,但始终无法将所有可能的目标全部写到负词中,因此模型还是会倾向于生成一些意想不到的目标;

2、从训练数据的分布来看,由于大规模图像训练集中的绝大部分图像都是由前景和背景组合而成的,纯背景的图像占比较小,这意味着扩散模型在训练时就已经学习到了一种潜在的规律,即一幅图像中大概率存在着某一个目标前景(即使prompt中并没有提到它),这也导致模型在执行inpaint任务时更倾向于在mask区域中生成些什么,从而使输出图像更接近于训练时的分布;

3、待填充的mask区域的形状有时也会包含一定的语义信息,比如在没有其他引导的情况下,模型会更倾向于在一个形状为猫的mask区域内填充一只新的猫,从而导致消除任务失败。

为了使MiracleVision(奇想智能)同时具备目标生成以及目标消除的能力,团队采用了多任务的训练策略:

1.在训练阶段,当mask区域落在纹理较少的纯背景区域上时,增加一个特定的prompt关键词作为触发引导词,并在模型推理阶段,将这个关键词作为正向引导词加入到prompt embedding 中,促使模型更多地生成背景区域。

2.由于纯背景图像在整个训练集中占比较小,为了提高其对于训练的贡献程度,在每个训练batch中,手动采样一定比例的背景图像加入到训练,使背景图像在训练样本中的占比总体保持稳定。

3.为了降低模型对于mask形状的语义依赖,在训练阶段还会随机生成各种不同形态mask,增加mask形状的多样性。

高精度纹理生成,融合更自然

由于训练集中高清的纹理数据只占全部训练数据的一小部分,因此在执行inpaint任务时,通常不会生成纹理非常丰富的结果,导致在原图纹理比较丰富的场景中,容易出现融合不自然、存在边界感的情况。

为了解决这个问题,团队基于自研纹理细节模型作为引导模型,以此来辅助MiracleVision(奇想智能)提高生成质量,抑制过拟合,使得生成区域和原图的其他区域之间能够更好地贴合在一起。

原图 vs 未增加纹理细节 vs MiracleVision扩图效果

美图大模型速度更快、效果更优、交互更高效

扩散模型类方案在推理时通常需要进行多步逆扩散过程,导致单张图片的处理耗时过长。为了在保持生成质量的同时优化用户体验,美图影像研究院(MT Lab)团队为AI局部重绘技术打造了专项调优方案,最终达到性能与效果的最佳平衡。

首先,将MiracleVision(奇想智能)前后处理与推理过程中大量的矩阵计算,尽可能地移植到GPU上并行计算,从而有效地加快了计算速度,并减少CPU端的负载。同时,在组图的过程中,尽可能的对layer进行fuse,使用FlashAttention来降低显存占用,提升推理性能,并对Kernel实现进行Tuning,针对NVIDIA不同的显卡最大化GPU算力使用。

除此之外,依托自研的模型参数量化方法,将MiracleVision量化至8bit而不明显损失精度。由于不同的GPU显卡对8bit量化的支持存在差异性,因此创新性采用混合精度策略,在不同的服务器资源环境下自适应地选取最优算子,从而实现总体加速的最优解。

而对于分辨率较高的用户输入图像,由于受限于服务器资源与时间成本,很难在原始分辨率情况下直接进行推理。对此,团队通过先压缩图像分辨率至合适的大小,再基于MiracleVision(奇想智能)进行推理,其后使用超分算法复原图像至初始分辨率下,再与原图进行图像融合,从而既保持生成图像的清晰效果,又节约推理过程中的显存占用和执行时间。