Connect with us

人工智能

In-Paint3D:使用无光照扩散模型进行图像生成

mm

深度生成式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模型生成多样化和高质量的纹理,如下图所示。

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

在初始的粗糙纹理生成阶段,Paint3D采用预训练的2D图像扩散模型来采样多视图图像,然后将其反向投影到网格表面以创建初始纹理贴图。此阶段首先从不同相机视图生成深度图。模型使用深度条件从扩散模型中采样图像,然后将其反向投影到3D网格表面。这种交替渲染、采样和反向投影的方法增强了纹理网格的一致性,并有助于逐步生成纹理贴图。 该过程从3D网格的可见区域开始,专注于从第一个相机视图生成纹理,通过将3D网格渲染为深度图。然后根据外观和深度条件采样纹理图像,并将其反向投影到网格上。此方法对后续视点重复进行,结合先前的纹理来渲染不仅深度图像,还有带有未着色蒙版的部分彩色RGB图像。模型使用深度感知图像修复编码器来填充未着色区域,通过将修复后的图像反向投影到3D网格上来生成完整的粗糙纹理贴图。 对于更复杂的场景或对象,模型使用多个视图。最初,它从对称视点捕获两个深度图,并将其组合成一个深度网格,以替代用于多视图深度感知纹理采样的单个深度图像。

阶段二: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的text2image模型来辅助纹理生成任务,而图像编码器组件则处理图像条件。为了增强其对图像修复、深度处理和高清晰度图像等条件任务的控制,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的text2image模型的图像编码器。如下图所示,Paint3D框架能够出色地合成精美的纹理,并且仍然能够保持相对于图像条件的高保真度。 另一方面,TEXTure框架能够生成类似于Paint3D的纹理,但在准确表示图像条件中的纹理细节方面存在不足。此外,如下图所示,与TEXTure框架相比,Paint3D框架提供了更好的FID和KID基线分数,前者从40.83降至26.86,而后者则从9.76降至4.94。

最终思考

在本文中,我们讨论了Paint3D,这是一种由粗到细的新颖框架,能够根据视觉或文本输入条件,为无纹理的3D网格生成无光照、多样化且高分辨率的2K UV纹理贴图。Paint3D框架的主要亮点在于,它能够生成语义一致的无光照高分辨率2K UV纹理,而无需依赖图像或文本输入条件。得益于其由粗到细的方法,Paint3D框架能够生成无光照、多样化且高分辨率的纹理贴图,并且比当前最先进的框架提供更好的性能。

“职业是工程师,内心是作家”。Kunal 是一位技术文档工程师,对人工智能和机器学习怀有深厚的热爱与深刻的理解,致力于通过其引人入胜且内容翔实的文档,简化这些领域的复杂概念。