人工智能
Paint3D:一种使用闪电般的扩散模型进行图像生成的方法
随着深度生成式AI模型的出现,AI在自然语言生成、3D生成、图像生成和语音合成方面的能力得到了显著的提升。3D生成模型已经改变了许多行业和应用,彻底改变了当前的3D生产格局。然而,许多当前的深度生成模型都面临着一个共同的挑战:复杂的电路和生成的网格具有照明纹理,通常与传统的渲染管道(如PBR(基于物理的渲染))不兼容。基于扩散的模型可以生成不具有照明纹理的3D资产,具有生成多样化3D资产的显著能力,从而增强了现有的3D框架,在诸如电影制作、游戏和增强/虚拟现实等行业中发挥着重要作用。
在本文中,我们将讨论Paint3D,一种新的粗糙到精细的框架,能够为未纹理的3D网格生成多样化的、高分辨率的2K UV纹理图,条件为视觉或文本输入。Paint3D解决的主要挑战是生成高质量的纹理而不嵌入照明信息,允许用户在现代图形管道中重新编辑或重新照明。为了解决这个问题,Paint3D框架使用预训练的2D扩散模型来执行多视图纹理融合和生成视图条件图像,最初生成一个粗糙的纹理图。然而,由于2D模型不能完全禁用照明效果或完全表示3D形状,纹理图可能会出现照明伪影和不完整区域。
在本文中,我们将深入探讨Paint3D框架,研究其工作原理和架构,并将其与最先进的深度生成框架进行比较。因此,让我们开始。
Paint3D:介绍
深度生成式AI模型已经展示了其在自然语言生成、3D生成和图像合成方面的卓越能力,并已在实际应用中得到实施,彻底改变了3D生成行业。然而,尽管它们具有显著的能力,现代深度生成式AI框架通常会生成具有复杂电路和混乱照明纹理的网格,这些纹理与传统的渲染管道(包括PBR)不兼容。同样,纹理合成也迅速进步,尤其是在使用2D扩散模型时。这些模型有效地利用预训练的深度到图像扩散模型和文本条件来生成高质量的纹理。然而,一个重大挑战仍然存在:预照明纹理会对最终的3D环境渲染产生不利影响,当在常见的工作流程中调整光线时,会引入照明错误,如下图所示。

如观察到的那样,纹理图没有预照明可以与传统的渲染管道无缝工作,提供准确的结果。相比之下,具有预照明的纹理图在重新照明时会包含不适当的阴影。训练有素的3D数据的纹理生成框架提供了一种替代方法,通过了解特定3D对象的整个几何形状来生成纹理。虽然这些框架可能会提供更好的结果,但它们缺乏所需的泛化能力,以将模型应用于训练数据以外的3D对象。
当前的纹理生成模型面临两个关键挑战:实现不同对象的广泛泛化,使用图像指导或多样化的提示,并消除来自预训练结果的耦合照明。预照明纹理会干扰渲染引擎中纹理对象的最终结果。此外,由于预训练的2D扩散模型仅在视图域中提供2D结果,因此它们缺乏对形状的全面理解,导致在3D对象中维持视图一致性时出现不一致性。
为了解决这些挑战,Paint3D框架开发了一个双阶段的纹理扩散模型,用于3D对象,能够泛化到不同的预训练生成模型,并在生成照明自由的纹理时保持视图一致性。
Paint3D是一种双阶段的、粗糙到精细的纹理生成模型,利用预训练的生成式AI模型的强大提示指导和图像生成能力来纹理3D对象。在第一阶段,Paint3D从预训练的深度感知2D图像扩散模型中逐渐采样多视图图像,实现从多样化提示中泛化高质量、丰富的纹理结果。然后,模型通过将这些图像反投影到3D网格表面来生成初始纹理图。在第二阶段,模型专注于生成照明自由的纹理,通过实施专门用于去除照明影响和完善形状感知不完整区域的扩散模型的方法。在整个过程中,Paint3D框架一致地生成高质量的2K纹理,语义上消除了内在的照明效果。

总之,Paint3D是一种新颖的、粗糙到精细的生成式AI模型,旨在为未纹理的3D网格生成多样化的、照明自由的、高分辨率的2K UV纹理图。它旨在实现对3D对象进行纹理的最先进性能,使用不同的条件输入,包括文本和图像,提供了显著的优势用于合成和图形编辑任务。
方法和架构
Paint3D框架生成和完善纹理图,以生成3D模型的多样化和高质量的纹理,使用条件输入,如图像和提示,如下图所示。

第1阶段:渐进式粗糙纹理生成
在初始的粗糙纹理生成阶段,Paint3D使用预训练的2D图像扩散模型来采样多视图图像,然后将这些图像反投影到网格表面以创建初始纹理图。这个阶段从生成不同相机视图的深度图开始。模型使用深度条件从扩散模型中采样图像,然后将这些图像反投影到3D网格表面。这种交替渲染、采样和反投影的方法增强了纹理网格的一致性,有助于渐进式生成纹理图。
这个过程从3D网格的可见区域开始,首先从第一个相机视图生成纹理,通过渲染3D网格到深度图。然后,根据外观和深度条件采样纹理图像,并将其反投影到网格上。这个方法对于后续视图进行重复,结合以前的纹理来渲染不仅是一个深度图像,还渲染一个部分着色的RGB图像,带有未着色的掩码。模型使用深度感知图像修复编码器来填充未着色的区域,通过将修复图像反投影到3D网格上,生成一个完整的粗糙纹理图。
对于更复杂的场景或对象,模型使用多个视图。最初,它从对称视图捕获两个深度图,并将它们合并到一个深度网格中,取代单个深度图像,用于多视图深度感知纹理采样。
第2阶段:UV空间中的纹理细化
尽管生成了逻辑的粗糙纹理图,但仍然存在诸如渲染过程中的纹理孔和2D图像扩散模型中的照明阴影等挑战。为了解决这些问题,Paint3D在粗糙纹理图的基础上,在UV空间中执行扩散过程,增强视觉效果并解决问题。
然而,在UV空间中细化纹理图可能会由于连续纹理被分解为个别碎片而引入不连续性。为了减轻这一问题,Paint3D通过使用纹理碎片的邻接信息来细化纹理图。在UV空间中,位置图表示3D网格上的纹理碎片的邻接信息,将每个非背景元素视为3D点坐标。模型使用一个额外的位置图编码器,类似于ControlNet,来集成邻接信息到扩散过程中。
模型同时使用条件编码器和其他编码器的位置来执行UV空间中的细化任务,提供两种能力:UVHD(UV高定义)和UV修复。UVHD增强视觉效果和美观度,使用图像增强编码器和位置编码器与扩散模型。UV修复填充纹理孔,避免渲染中的自遮挡问题。细化阶段从UV修复开始,接着是UVHD,以生成最终的细化纹理图。
通过集成这些细化方法,Paint3D框架生成完整、多样化、高分辨率和照明自由的UV纹理图,使其成为纹理3D对象的强大解决方案。
Paint3D:实验和结果
Paint3D模型利用Stable Diffusion文本到图像模型来协助纹理生成任务,而图像编码器组件管理图像条件。为了增强其对条件任务(如图像修复、深度处理和高清图像)的控制,Paint3D框架采用ControlNet域编码器。该模型是在PyTorch框架上实现的,渲染和纹理投影在Kaolin上执行。
文本到纹理比较
为了评估Paint3D的性能,我们首先分析其在文本提示条件下的纹理生成,比较它与最先进的框架,如Text2Tex、TEXTure和LatentPaint。如下图所示,Paint3D框架不仅在生成高质量的纹理细节方面表现出色,而且还有效地合成了一个无照明的纹理图。
通过利用Stable Diffusion和ControlNet编码器的强大能力,Paint3D提供了卓越的纹理质量和多样性。比较结果突出了Paint3D生成详细、高分辨率纹理的能力,而无需嵌入照明,使其成为3D纹理任务的领先解决方案。

与之相比,Latent-Paint框架容易生成模糊的纹理,导致视觉效果不佳。另一方面,虽然TEXTure框架生成清晰的纹理,但缺乏平滑度,表现出明显的拼接和缝隙。最后,Text2Tex框架生成平滑的纹理非常出色,但在生成具有复杂细节的精细纹理方面却无法复制其性能。
以下图像比较了Paint3D框架与最先进的框架的量化结果。

如观察到的,Paint3D框架在FID基线上超过所有现有模型,表现出近30%的改进,在KID基线上约有40%的改进。FID和KID基线分数的改进表明了Paint3D生成高质量纹理的能力,适用于多样化的对象和类别。
图像到纹理比较
为了生成Paint3D的生成能力,使用视觉提示,我们使用TEXTure模型作为基线。如前所述,Paint3D模型采用Stable Diffusion的文本到图像模型的图像编码器。如下图所示,Paint3D框架合成了精美的纹理,仍然保持了对图像条件的高保真度。

另一方面,TEXTure框架能够生成类似于Paint3D的纹理,但在准确表示图像条件中的纹理细节方面却有所欠缺。另外,如下图所示,Paint3D框架在与TEXTure框架相比时,提供了更好的FID和KID基线分数,前者从40.83下降到26.86,后者从9.76下降到4.94。

最后的想法
在本文中,我们讨论了Paint3D,一种新的粗糙到精细的框架,能够为未纹理的3D网格生成照明自由的、多样化的、高分辨率的2K UV纹理图,条件为视觉或文本输入。Paint3D框架的主要亮点是其能够生成照明自由的、高分辨率的2K UV纹理,语义上一致,而无需条件为图像或文本输入。由于其粗糙到精细的方法,Paint3D框架生成照明自由的、多样化的、高分辨率的纹理图,并且其性能优于当前最先进的框架。












