存根 Paint3D:用于图像生成的无光扩散模型 - Unite.AI
关注我们.

人工智能

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

mm
更新 on

AI生成模型,尤其是深度生成AI模型的快速发展,在自然语言生成、3D生成、图像生成、语音合成等方面具有显着先进的能力。这些模型彻底改变了各个行业的 3D 生产。然而,许多人面临着挑战:它们复杂的布线和生成的网格通常与基于物理的渲染 (PBR) 等传统渲染管道不兼容。基于扩散的模型(特别是没有光照纹理)展示了令人印象深刻的多样化 3D 资产生成,增强了电影制作、游戏和 AR/VR 中的 3D 框架。

本文介绍 Paint3D,这是一种新颖的框架,用于根据视觉或文本输入为无纹理 2D 网格生成多样化的高分辨率 3K UV 纹理图。 Paint3D 的主要挑战是在没有嵌入式照明的情况下生成高质量纹理,使用户能够在现代图形管道中重新编辑或重新照明。它采用预训练的 2D 扩散模型进行多视图纹理融合,生成初始粗糙纹理图。然而,由于 2D 模型在禁用照明效果和完全表示 3D 形状方面的限制,这些地图通常会显示照明伪影和不完整的区域。我们将深入研究 Paint3D 的工作原理、架构以及与其他深度生成框架的比较。让我们开始。

Paint3D:简介

深度生成 AI 模型在自然语言生成、3D 生成和图像合成任务中的功能众所周知,并在现实生活中得到应用,彻底改变了 3D 生成行业。尽管它们具有非凡的能力,但现代深层 生成式人工智能 框架生成的网格的特点是复杂的布线和混乱的光照纹理,这些网格通常与传统的渲染管道(包括 PBR 或基于物理的渲染)不兼容。与深度生成人工智能模型一样,纹理合成也取得了迅速发展,尤其是在利用 2D 扩散模型方面。纹理合成模型采用预先训练的深度图像 扩散模型 有效地使用文本条件来生成高质量的纹理。然而,这些方法面临着预照明纹理的问题,这些问题可能会严重影响最终的 3D 环境渲染,并在常见工作流程中更改灯光时引入照明错误,如下图所示。 

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

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

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

Paint3D是一个双阶段从粗到细的纹理生成模型,旨在利用预训练的强大提示引导和图像生成能力 生成式人工智能 模型来纹理 3D 对象。在第一阶段,Paint3D 框架首先从预先训练的深度感知 2D 图像扩散模型中逐步对多视图图像进行采样,以便能够从不同的提示中概括出高质量和丰富的纹理结果。然后,模型通过将这些图像反向投影到 3D 网格表面来生成初始纹理图。在第二阶段,该模型侧重于通过实现专门用于消除照明影响和不完整区域的形状感知细化的扩散模型所采用的方法来生成无照明纹理。在整个过程中,Paint3D 框架始终能够在语义上生成高质量的 2K 纹理,并消除固有的照明效果。 

总而言之,Paint3D 是一种新颖的从粗到细的生成 AI 模型,旨在为无纹理 2D 网格生成多样化、无光照且高分辨率的 3K UV 纹理图,以在使用不同条件对 3D 对象进行纹理化方面实现最先进的性能输入包括文本和图像,并为合成和图形编辑任务提供显着优势。 

方法论和架构

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

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

第一阶段:渐进式粗糙纹理生成

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

模型开始使用聚焦于 3D 网格的相机视图生成可见区域的纹理,并将 3D 网格从第一个视图渲染为深度图。然后,模型对纹理图像进行采样以获得外观条件和深度条件。然后模型将图像反投影到 3D 网格上。对于视点,Paint3D 模型执行类似的方法,但通过使用图像绘制方法执行纹理采样过程略有变化。此外,该模型还考虑了之前视点的纹理区域,使得渲染过程不仅可以输出深度图像,还可以在当前视图中输出带有未着色蒙版的部分着色 RGB 图像。 

然后,该模型使用带有修复编码器的深度感知图像修复模型来填充 RGB 图像内的未着色区域。然后,模型通过将修复图像反投影到当前视图下的 3D 网格中,从视图生成纹理图,从而使模型逐步生成纹理图,并得到整个粗结构图。最后,该模型将纹理采样过程扩展到具有多个视图的场景或对象。更具体地说,该模型在初始纹理采样期间从对称视点使用一对摄像机捕获两个深度图。然后该模型结合两个深度图并组成一个深度网格。该模型用深度网格代替单个深度图像来执行多视图深度感知纹理采样。 

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

虽然粗糙纹理图的出现是合乎逻辑的,但它确实面临着一些挑战,例如由于二维图像扩散模型的参与,在渲染过程中由于自遮挡或闪电阴影而导致纹理孔洞。 Paint2D模型旨在基于粗糙纹理图在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 模型采用 稳定扩散 text2image 模型来协助它完成纹理生成任务,同时它使用图像编码器组件来处理图像条件。为了进一步增强对图像修复、深度和图像高清等条件控制的控制,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 的 text2image 模型。如下图所示,Paint3D 框架非常好地合成了精美的纹理,并且仍然能够保持图像条件的高保真度。 

另一方面,TEXTURE框架能够生成类似于Paint3D的纹理,但它无法准确地表示图像条件下的纹理细节。此外,如下图所示,与 TEXTURE 框架相比,Paint3D 框架提供了更好的 FID 和 KID 基线分数,前者从 40.83 下降到 26.86,而后者从 9.76 下降到 4.94。 

最后的思考

在本文中,我们讨论了 Paint3D,这是一个从粗到细的新颖框架,能够为基于视觉或文本输入的无纹理 2D 网格生成无光照、多样化且高分辨率的 3K UV 纹理图。 Paint3D 框架的主要亮点是它能够生成无光照高分辨率 2K UV 纹理,这些纹理在语义上是一致的,而不受图像或文本输入的限制。由于采用从粗到细的方法,Paint3D 框架可生成无光照、多样化且高分辨率的纹理贴图,并提供比当前最先进的框架更好的性能。 

“职业工程师,心灵作家”。 Kunal 是一位技术作家,对人工智能和机器学习有着深厚的热爱和理解,致力于通过他引人入胜且信息丰富的文档来简化这些领域的复杂概念。