AI 模型与平台

Paint3D:无光照扩散模型用于图像生成

mm
将 Unite.AI 添加到您在 Google 上的首选来源

近年来,AI 生成模型,尤其是深度生成模型的快速发展,显著推进了自然语言生成、3D 生成、图像生成和语音合成的能力。这些模型在各个行业的 3D 生产中起到了革命性的作用。然而,许多模型面临一个挑战:它们的复杂结构和生成的网格通常与传统的渲染管道(如 Physically Based Rendering,PBR)不兼容。基于扩散的模型,尤其是没有光照纹理的模型,展示了令人印象深刻的多样化 3D 资产生成,增强了电影、游戏和 AR/VR 中的 3D 框架。

本文介绍了 Paint3D,一种用于生成多样化、高分辨率 2K UV 纹理映射的新型框架,适用于未纹理的 3D 网格,条件为视觉或文本输入。Paint3D 的主要挑战是生成高质量的纹理,而不包含嵌入的照明,允许用户在现代图形管道中重新编辑或重新照明。它采用预训练的 2D 扩散模型进行多视纹理融合,生成初始的粗糙纹理映射。然而,这些映射通常显示照明伪影和不完整区域,原因是 2D 模型在禁用光照效果和完全表示 3D 形状方面的局限性。我们将深入探讨 Paint3D 的工作原理、架构和与其他深度生成框架的比较。让我们开始吧。

Paint3D:介绍

深度生成 AI 模型在自然语言生成、3D 生成和图像合成任务中的能力众所周知,并在现实应用中得到了体现,革命了 3D 生成行业。尽管它们具有显著的能力,现代深度生成 AI 框架生成的网格通常具有复杂的结构和混乱的光照纹理,这些纹理通常与传统的渲染管道(包括 PBR 或 Physically Based Rendering)不兼容。与深度生成 AI 模型类似,纹理合成也迅速发展,特别是在利用 2D 扩散模型方面。纹理合成模型采用预训练的深度到图像扩散模型,有效地使用文本条件生成高质量的纹理。然而,这些方法面临预照明纹理的问题,这可能会显著影响最终的 3D 环境渲染,并在常见的工作流程中引入光照错误,如下图所示。

如图所示,具有自由照明的纹理映射与传统的渲染管道协同工作,提供准确的结果,而具有预照明的纹理映射在重新照明时包含不适当的阴影。另一方面,训练在 3D 数据上的纹理生成框架提供了一种替代方法,其中框架通过理解特定 3D 对象的整个几何形状来生成纹理。虽然它们可能提供更好的结果,但训练在 3D 数据上的纹理生成框架缺乏泛化能力,这限制了它们将模型应用于训练数据以外的 3D 对象的能力。

当前的纹理生成模型面临两个关键挑战:使用图像指导或多样化的提示来实现不同对象之间更广泛的泛化,以及消除预训练结果中的耦合照明。预照明的纹理可能会干扰渲染引擎中纹理对象的最终结果,因为预训练的 2D 扩散模型仅在视域中提供 2D 结果,缺乏对 3D 形状的全面理解,这导致它们无法保持 3D 对象的视图一致性。

由于上述挑战,Paint3D 框架尝试开发一种双阶段的纹理扩散模型,用于 3D 对象,能够泛化到不同的预训练生成模型,并在学习无光照纹理生成的同时保持视图一致性。

Paint3D 是一种双阶段的粗糙到精细的纹理生成模型,旨在利用预训练生成 AI 模型的强大提示指导和图像生成能力来纹理 3D 对象。在第一阶段,Paint3D 框架首先从预训练的深度感知 2D 图像扩散模型中采样多视图图像,进而实现从多样化提示中生成高质量和丰富的纹理结果。然后,模型通过将这些图像投影到 3D 网格表面来生成初始纹理映射。在第二阶段,模型专注于生成无光照纹理,通过实施专门用于去除光照影响和形状感知细化不完整区域的扩散模型的方法。在整个过程中,Paint3D 框架能够一致地生成高质量的 2K 纹理,语义上一致,并消除内在的照明效果。

总之,Paint3D 是一种新型的粗糙到精细的生成 AI 模型,旨在为未纹理的 3D 网格生成多样化、无光照和高分辨率的 2K UV 纹理映射,实现对 3D 对象进行纹理的最新状态,具有条件输入,包括文本和图像,并为合成和图形编辑任务提供显著优势。

方法和架构

Paint3D 框架逐渐生成和细化纹理映射,以使用所需的条件输入(包括图像和提示)为 3D 模型生成多样化和高质量的纹理映射,如下图所示。

在粗糙阶段,Paint3D 模型使用预训练的 2D 图像扩散模型来采样多视图图像,然后通过将这些图像投影到网格表面来创建初始纹理映射。在第二阶段,即细化阶段,Paint3D 模型使用 UV 空间中的扩散过程来增强粗糙纹理映射,实现高质量、插补和无光照功能,确保最终纹理的视觉吸引力和完整性。

阶段 1:渐进粗糙纹理生成

在渐进粗糙纹理生成阶段,Paint3D 模型为 3D 网格生成粗糙的 UV 纹理映射,使用预训练的深度感知 2D 扩散模型。更具体地说,模型首先使用不同的相机视图来渲染深度图,然后使用深度条件从图像扩散模型中采样图像,并将这些图像投影到网格表面。框架执行渲染、采样和投影方法,交替进行以提高纹理网格的一致性,这最终有助于渐进生成纹理映射。

模型首先使用相机视图来渲染 3D 网格的可见区域,然后渲染 3D 网格到深度图。模型然后采样一个纹理图像,用于外观条件和深度条件。模型然后将图像投影到 3D 网格上。对于视图,Paint3D 模型执行类似的方法,但略有不同,通过使用图像绘制方法执行纹理采样过程。此外,模型考虑到来自前一视图的纹理区域,允许渲染过程不仅输出深度图像,还输出具有当前视图中未着色的遮罩的部分着色 RGB 图像。

模型然后使用深度感知图像插补模型和插补编码器来填充 RGB 图像中的未着色区域。模型然后通过将插补图像投影到 3D 网格上,生成视图下的纹理映射,允许模型渐进生成纹理映射,并到达整个粗糙结构映射。最后,模型将纹理采样过程扩展到具有多个视图的场景或对象。更具体地说,模型使用一对相机来捕获两个深度图,在初始纹理采样中来自对称视图。模型然后组合两个深度图,组成一个深度网格。模型用深度网格替换单个深度图像,以执行多视深度感知纹理采样。

阶段 2:UV 空间中的纹理细化

虽然粗糙纹理映射的外观是合理的,但它面临一些挑战,例如由于 2D 图像扩散模型的参与而在渲染过程中产生的纹理孔或光照阴影。Paint3D 模型旨在在 UV 空间中执行扩散过程,基于粗糙纹理映射,试图减轻这些问题,并进一步增强纹理映射的视觉吸引力。在 UV 空间中细化主流图像扩散模型与纹理映射引入纹理不连续性,因为纹理映射是通过将 3D 表面的纹理投影到 UV 空间来生成的,这会将连续的纹理切割成 UV 空间中的个别碎片。因此,模型难以学习碎片之间的 3D 相邻关系,这导致纹理不连续性问题。

模型通过在 UV 空间中执行扩散过程来细化纹理映射,受纹理碎片的相邻信息的指导。需要注意的是,在 UV 空间中,位置图表示纹理碎片的 3D 相邻信息,模型将每个非背景元素视为 3D 点坐标。在扩散过程中,模型通过将位置图编码器添加到预训练的图像扩散模型中来融合 3D 相邻信息。新的编码器类似于 ControlNet 框架的设计,并具有与图像扩散模型中实现的编码器相同的架构,具有连接两个的零卷积层。此外,纹理扩散模型在包含纹理和位置图的数据集上进行训练,模型学习预测添加到噪声潜在变量的噪声。然后,模型优化位置编码器并冻结训练的去噪器以进行图像扩散任务。

模型然后同时使用位置条件编码器和其他编码器来执行 UV 空间中的细化任务。在这方面,模型具有两个细化能力:UVHD 或 UV 高清和 UV 插补。UVHD 方法旨在增强纹理映射的视觉吸引力和美观。为了实现 UVHD,模型使用图像增强编码器和位置编码器与扩散模型。模型使用 UV 插补方法来填充 UV 平面中的纹理孔,这能够避免渲染过程中产生的自遮挡问题。在细化阶段,Paint3D 模型首先执行 UV 插补,然后执行 UVHD,以生成最终的细化纹理映射。通过集成两个细化方法,Paint3D 框架能够生成完整、多样化、高分辨率和无光照的 UV 纹理映射。

Paint3D:实验和结果

Paint3D 模型采用 Stable Diffusion 文本到图像模型来协助纹理生成任务,同时采用图像编码器组件来处理图像条件。为了进一步增强其对条件控制的掌握,例如图像插补、深度和图像高清,Paint3D 框架采用 ControlNet 域编码器。模型在 PyTorch 框架上实现,渲染和纹理投影在 Kaolin 上实现。

文本到纹理比较

为了分析其性能,我们首先评估 Paint3D 的纹理生成效果,当使用文本提示进行条件时,并将其与最先进的框架(包括 Text2Tex、TEXTure 和 LatentPaint)进行比较。如图所示,Paint3D 框架不仅在生成高质量的纹理细节方面表现出色,而且还合理地合成无光照纹理映射。

相比之下,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,一种能够生成无光照、多样化和高分辨率 2K UV 纹理映射的新型框架,适用于未纹理的 3D 网格,条件为视觉或文本输入。Paint3D 框架的主要亮点是能够生成无光照的高分辨率 2K 纹理,语义上一致,无需条件输入图像或文本。由于其粗糙到精细的方法,Paint3D 框架生成无光照、多样化和高分辨率的纹理映射,并且比当前最先进的框架提供更好的性能。

专业为工程师,心为作家。 Kunal是一名技术作家,对AI和ML有着深厚的热爱和理解,致力于通过其引人入胜和信息丰富的文档来简化这些领域中的复杂概念。