人工智能3D内容生成系列—Zero123++: a Single Image to Consistent Multi-view Diffusion Base Model
我们报告了Zero123++,这是一个图像条件扩散模型,用于从单个输入视图生成3D一致的多视图图像。为了充分利用预训练的2D生成先验,我们开发了各种条件和训练方案,以最小化从现成的图像扩散模型(如StableDiffusion)微调所需的工作量。Zero123++在从单个图像生成高质量、一致的多视图图像方面表现出色,克服了常见的问题,如纹理退化和几何错位。此外,我们展示了在Zero123++上训练
文章目录
1. 背景介绍
我们报告了Zero123++,这是一个图像条件扩散模型,用于从单个输入视图生成3D一致的多视图图像。为了充分利用预训练的2D生成先验,我们开发了各种条件和训练方案,以最小化从现成的图像扩散模型(如StableDiffusion)微调所需的工作量。Zero123++在从单个图像生成高质量、一致的多视图图像方面表现出色,克服了常见的问题,如纹理退化和几何错位。此外,我们展示了在Zero123++上训练ControlNet的可行性,以增强对生成过程的控制。代码可在\url{https://github.com/SUDO-AI-3D/zero123plus}上获得。
3D内容生成在新兴的新型视图生成模型中取得了显著进展,这些模型利用了从互联网大量数据集中学习到的强大的2D扩散生成先验。Zero-1-to-3[12](或Zero123)通过零样本新视图合成开辟了开放世界单图像到3D转换的先河。尽管性能有希望,但其生成图像的几何不一致性尚未弥合多视图图像和3D场景之间的差距。像One-2-3-45[11]、SyncDreamer[13]和Consistent123[10]这样的近期工作在Zero-1-to-3之上构建额外的层次以获得更3D一致的结果。基于优化的方法,如DreamFusion[16]、ProlificDreamer[23]和DreamGaussian[22],从不一致的模型中提取3D表示以获得3D结果。尽管这些技术是有效的,但如果有一个基础扩散模型能够生成一致的多视图图像,它们甚至可以更好地工作。在这方面,我们重新审视了Zero-1-to-3,并从Stable Diffusion[18]中微调了一个新的多视图一致基础扩散模型。
Zero-1-to-3独立地生成每个新视图。由于扩散模型的采样特性,这种方法导致了生成视图之间的一致性崩溃。为了解决这个问题,我们采用了将对象周围的六个视图平铺到单个图像中的策略。这种平铺布局使得正确建模对象的多视图图像的联合分布成为可能。
Zero-1-to-3的另一个问题是它没有充分利用Stable Diffusion提供的现有能力。我们将其归因于两个设计问题:a) 在进行图像条件训练时,Zero-1-to-3没有有效地结合Stable Diffusion提供的全局或局部条件机制。在Zero123++中,我们采取了谨慎的方法,实现了各种条件技术,以最大限度地利用Stable Diffusion先验。b) Zero-1-to-3使用降低的分辨率进行训练。人们普遍认为,将输出分辨率降低到训练分辨率以下会导致Stable Diffusion模型的图像生成质量下降。然而,Zero-1-to-3的作者在512的原生分辨率下训练时遇到了不稳定性,并选择了较低的256分辨率。我们对这种行为进行了深入分析,并提出了一系列解决这个问题的策略。
2. 多视图一致性与条件改进
本节探讨了Zero123++中使用的技术,以提高多视图一致性和图像条件,主要关注重用预训练的Stable Diffusion模型的先验。
2.1 多视图生成
生成一致的多视图图像的关键在于正确建模多个图像的联合分布。Zero-1-to-3分别且独立地对每个图像的条件边际分布进行建模,这忽略了多视图图像之间的相关性。在Zero123++中,我们采取了将6个图像以3×2布局平铺到单个帧中的最简单形式进行多视图生成(见图2)。在对象和相机姿态的背景下,值得注意的是,尽管Objaverse数据集\cite{4}中的物体通常沿着重力轴方向定位,但它们并不总是一致地以规范姿态对齐。因此,物体有广泛的绝对方向。我们观察到,基于绝对相机姿态训练模型可能导致在区分物体方向上的困难。相反,Zero-1-to-3是针对相对于输入视图的相对方位角和俯仰角进行训练的。然而,这种表述需要知道输入视图的俯仰角以确定新视图之间的相对姿态。结果,各种现有管道如One-2-3-45\cite{11}和DreamGaussian\cite{22}已经加入了额外的俯仰角估计模块,这在流程中引入了额外的误差。
为了解决这些问题,我们使用固定的绝对俯仰角和相对方位角作为新视图姿态,消除了方向歧义,而无需额外的俯仰角估计。更具体地说,六个姿态由30°向下和20°向上的俯仰角交替组成,结合从30°开始,每个姿态增加60°的方位角。
2.2 一致性和稳定性:噪声计划
Stable Diffusion的原始噪声计划,即缩放线性计划,强调了局部细节,但在信噪比较低(SNR)的步骤很少,如图3所示。这些低SNR步骤出现在早期去噪阶段,这对于确定内容的全局低频结构至关重要。在这个阶段,无论是在训练或推理中,步骤数量的减少都可能导致更大的结构变化。虽然这种设置适用于单图像生成,我们已经观察到它限制了模型确保多个视图之间全局一致性的能力。
为了实证验证这一点,我们通过在Stable Diffusion 2 v-prediction模型上微调LoRA\cite{6}模型,进行了一个玩具任务,以适应给定提示“警车”的空白白色图像。结果在图4中呈现。令人惊讶的是,使用缩放线性噪声计划,LoRA模型无法完成这个简单任务;它只是轻微地使图像变白。相比之下,使用线性噪声计划,LoRA模型无论提示如何,都能成功生成空白白色图像。尽管对于缩放线性计划,微调整个模型仍然是可行的,但这个例子突出了噪声计划对模型适应新全局要求能力的重大影响。
正如Chen\cite{2}所指出的,当受到相同绝对水平的独立噪声影响时,高分辨率图像看起来比低分辨率图像更少噪声(见\cite{2}中的图2)。这种现象发生的原因是“高分辨率自然图像倾向于在(附近的)像素中表现出更高程度的冗余,因此相同的独立噪声水平破坏的信息较少”。因此,我们可以将Zero-1-to-3训练中使用较低分辨率解释为噪声计划的修改,更加强调3D一致性多视图生成的全局要求。这也解释了使用更高分辨率训练Zero-1-to-3时的不稳定性\cite{12}。
总结来说,我们发现有必要将我们的模型中的噪声计划从缩放线性计划切换到线性计划。然而,这种转变引入了另一个潜在挑战:使预训练模型适应新计划。幸运的是,我们已经观察到v-prediction模型在交换计划时相当健壮,与x0-和ϵ参数化形成对比,如图5所示。从理论上讲,v-prediction也更稳定\cite{19}。因此,我们选择使用Stable Diffusion 2 v-prediction模型作为我们的微调基础模型。
2.3 本地条件:缩放参考注意力
在Zero-1-to-3中,条件图像(单视图输入)在特征维度上与要去除噪声的噪声输入连接起来,用于局部图像条件。这在输入和目标图像之间施加了不正确的逐像素空间对应关系。
我们提议使用缩放版本的参考注意力来提供适当的局部条件输入。如图6所示,参考注意力\cite{24}指的是在额外的参考图像上运行去噪UNet模型,并将参考图像的自注意力键和值矩阵附加到去噪模型输入的相应注意力层。
与去噪输入相同的高斯噪声被添加到参考图像中,允许UNet在当前噪声水平下关注去噪的相关特征。无需任何微调,参考注意力已经能够引导扩散模型生成与参考图像具有相似语义内容和纹理的图像。当我们进行微调时,我们观察到,当我们缩放潜在表示(在添加噪声之前)时,参考注意力效果更好。在图7中,我们提供了在ShapeNet Cars\cite{1}上进行的实验比较,以证明当参考潜在表示被缩放5倍时,模型与条件图像的一致性最高。
2.4 全局条件:FlexDiffuse
在原始的Stable Diffusion中,全局条件完全来自文本嵌入。Stable Diffusion采用CLIP\cite{17}作为文本编码器,并在模型潜在表示和每个token的CLIP文本嵌入之间执行交叉注意力。因此,我们可以利用CLIP图像和文本空间之间的对齐来重用全局图像条件的先验。
我们提出了FlexDiffuse\cite{21}中引入的线性引导机制的可训练变体,以将全局图像条件纳入模型,同时最小化微调的程度。我们从原始提示嵌入T开始,其形状为L×D,其中L是token长度,D是token嵌入的维度,并将CLIP全局图像嵌入I的形状乘以可训练的全局权重集{wi}i=1,…,L(所有token的共享权重集)添加到原始提示嵌入中,或者正式地,
我们用FlexDiffuse的线性引导初始化权重:
在发布的Zero123++模型中,我们没有施加任何文本条件,因此T是通过编码空提示获得的。
我们在图8中展示了有无全局条件的Zero123++模型的训练结果。在没有所提出的全局条件的情况下,对于与输入图像对应的可见区域,生成内容的质量仍然令人满意。然而,在未见区域,生成质量显著下降,因为模型缺乏推断对象全局语义的能力。
2.5 整合所有内容
从Stable Diffusion 2 v-model开始,我们使用上述所有技术训练我们的Zero123++模型。我们在Objaverse\cite{4}数据上训练Zero123++,该数据使用随机HDRI环境照明进行渲染。
我们采用Stable Diffusion Image Variations模型\cite{9}的分阶段训练计划,进一步减少微调的程度,尽可能保留Stable Diffusion中的先验。在第一阶段,我们只调整Stable Diffusion的自注意力层和交叉注意力层的KV矩阵。我们使用AdamW\cite{7, 14}优化器,学习率计划在7 × 10^-5达到峰值,并有1000个预热步骤。在第二阶段,我们采用非常保守的恒定学习率5 × 10^-6和2000个预热步骤来调整整个UNet。
我们采用最小信噪比加权策略\cite{5}使训练过程更加高效。
3. 与最新技术的比较
3.1 图像到多视图
定性比较。在图10中,我们展示了Zero-1-to-3 XL [3, 12]、SyncDreamer [13]以及我们的Zero123++在四个输入图像上的生成结果,包括一个来自Objaverse数据集的图像(关于物体背面(电子玩具猫)有较大不确定性),一张真实照片(灭火器),一张由SDXL [15]生成的图像(一只狗坐在火箭上)以及一张动漫插图。我们在Zero-1-to-3 XL和SyncDreamer中应用了One-2-3-45 [11]的俯仰角估计方法,以满足所需的俯仰角估计步骤。我们使用SAM [8]进行背景移除。Zero123++生成了一致且高质量的多视图图像,并且可以推广到领域外的AI生成和2D插图图像。
定量比较。我们在验证集(Objaverse的一个子集)上评估了不同模型的LPIPS得分[26],以定量比较Zero-1-to-3 [12]、Zero-1-to-3 XL [3, 12]和Zero123++。SyncDreamer [13]被排除在外,因为它不支持改变俯仰角。为了评估多视图生成结果,我们将6个生成的图像和地面真实参考图像(从Objaverse渲染)分别平铺,并计算平铺图像之间的LPIPS得分。请注意,Zero-1-to-3模型在训练期间可能已经看过我们的验证集,而XL变体比Zero123++训练了更多的数据。尽管如此,Zero123++在验证集上取得了最佳的LPIPS得分。这表明了我们在Zero123++中的设计的有效性。结果如表1所示。
3.2 文本到多视图
对于文本到多视图,我们首先使用文本提示在SDXL上生成图像,然后在生成的图像上运行Zero123++。在图11中,我们将我们的结果与MVDream [20]和Zero-1-to-3 XL [3, 12]进行了比较。我们观察到MVDream在纹理样式上出现了向卡通和平面纹理的转变,这是由于Objaverse数据集的偏差,以及Zero-1-to-3不能保证多视图一致性,而Zero123++能够使用文本到图像到多视图的流水线生成真实、一致且细节高度丰富的多视图图像。
4. Zero123++的深度ControlNet
除了基础的Zero123++模型,我们还发布了一个与ControlNet [25]构建的深度控制版本的Zero123++。我们渲染了对应目标RGB图像的归一化线性深度图像,并通过深度来训练ControlNet以控制Zero123++的几何形状。训练好的模型在我们的验证集上能够实现卓越的LPIPS 0.086。
图9显示了来自深度控制Zero123++的两个示例生成。我们可以使用单个视图作为Zero123++的输入图像(第一个示例),或者使用普通深度控制的Stable Diffusion生成输入图像以消除对输入颜色的任何需求(第二个示例)。
5. 未来工作
本报告介绍了对我们新的图像到多视图基础扩散模型Zero123++的一系列分析和增强。虽然我们的模型已经在质量、一致性和泛化方面比以往的模型有显著提高,但我们希望强调三个潜在的未来工作领域:
- 两阶段细化模型。尽管ϵ参数化模型在满足一致性的全局要求方面存在困难,但它们通常更擅长生成局部细节。我们可能应用像SDXL [15]这样的两阶段生成-细化流水线,并使用ϵ参数化SDXL模型作为基础模型来微调细化模型,利用其比之前的SD模型更强的先验。
- 进一步扩展。目前Zero123++是在中等规模的Objaverse数据集上训练的,包含大约800k个对象。为了增强我们模型的能力,我们正在考虑将训练扩展到更大的数据集,如Objaverse-XL [3]。
- 利用Zero123++进行网格重建。高质量多视图图像和高质量3D网格之间仍然存在差距。我们在图12中展示了一些利用Zero123++进行网格生成的初步结果。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)