Stable Diffusion 背後公司 Stability AI 又上新了。
這次帶來的是圖生 3D方面的新進展:
基于 Stable Video Diffusion 的Stable Video 3D(SV3D),隻用一張圖片就能生成高質量 3D 網格。
Stable Video Diffusion(SVD)是 Stability AI 此前推出的高分辨率視頻生成模型。也就是說,此番登場的 SV3D首次将視頻擴散模型應用到了 3D 生成領域。
官方表示,基于此,SV3D 大大提高了 3D 生成的質量和視圖一緻性。
模型權重依然開源,不過僅可用于非商業用途,想要商用的話還得買個 Stability AI 會員 ~
話不多說,還是來扒一扒論文細節。
将視頻擴散模型用于 3D 生成
引入潛在視頻擴散模型,SV3D 的核心目的是利用視頻模型的時間一緻性來提高 3D 生成的一緻性。
并且視頻數據本身也比 3D 數據更容易獲得。
Stability AI 這次提供兩個版本的 SV3D:
SV3D_u:基于單張圖像生成軌道視頻。
SV3D_p:擴展了 SV3D_u 的功能,可以根據指定的相機路徑創建 3D 模型視頻。
研究人員還改進了 3D 優化技術:采用由粗到細的訓練策略,優化 NeRF 和 DMTet 網格來生成 3D 對象。
他們還設計了一種名爲掩碼得分蒸餾采樣(SDS)的特殊損失函數,通過優化在訓練數據中不直接可見的區域,來提高生成 3D 模型的質量和一緻性。
同時,SV3D 引入了一個基于球面高斯的照明模型,用于分離光照效果和紋理,在保持紋理清晰度的同時有效減少了内置照明問題。
具體到架構方面,SV3D 包含以下關鍵組成部分:
UNet:SV3D 是在 SVD 的基礎上構建的,包含一個多層 UNet,其中每一層都有一系列殘差塊(包括 3D 卷積層)和兩個分别處理空間和時間信息的 Transformer 模塊。
條件輸入:輸入圖像通過 VAE 編碼器嵌入到潛在空間中,會和噪聲潛在狀态合并,一起輸入到 UNet 中;輸入圖像的 CLIP 嵌入矩陣則被用作每個 Transformer 模塊交叉注意力層的鍵值對。
相機軌迹編碼:SV3D 設計了靜态和動态兩種類型的軌道來研究相機姿态條件的影響。靜态軌道中,相機以規律間隔的方位角圍繞對象;動态軌道則允許不規則間隔的方位角和不同的仰角。
相機的運動軌迹信息和擴散噪聲的時間信息會一起輸入到殘差模塊中,轉換爲正弦位置嵌入,然後這些嵌入信息會被整合并進行線性變換,加入到噪聲時間步長嵌入中。
這樣的設計旨在通過精細控制相機軌迹和噪聲輸入,提升模型處理圖像的能力。
此外,SV3D 在生成過程中采用 CFG(無分類器引導)來控制生成的清晰度,特别是在生成軌道的最後幾幀時,采用三角形 CFG 縮放來避免過度銳化。
研究人員在 Objaverse 數據集上訓練 SV3D,圖像分辨率爲 575 × 576,視場角爲 33.8 度。論文透露,所有三種模型(SV3D_u,SV3D_c,SV3D_p)在 4 個節點上訓練了 6 天左右,每個節點配備 8 個 80GB 的 A100 GPU。
實驗結果
在新視角合成(NVS)和 3D 重建方面,SV3D 超過了現有其他方法,達到 SOTA。
從定性比較的結果來看,SV3D 生成的多視角試圖,細節更豐富,更接近與原始輸入圖像。也就是說,SV3D 在理解和重構物體的 3D 結構方面,能夠更準确地捕捉到細節,并保持視角變換時的一緻性。
這樣的成果,引發了不少網友的感慨:
可以想象,在未來 6-12 個月内,3D 生成技術将會被用到遊戲和視頻項目中。
評論區也總少不了一些大膽的想法……
并且項目開源嘛,已經有第一波小夥伴玩上了,在 4090 上就能跑起來。
如果你也有第一手實測體會,歡迎在評論區分享 ~
參考鏈接:
[ 1 ] https://twitter.com/StabilityAI/status/1769817136799855098
[ 2 ] https://stability.ai/news/introducing-stable-video-3d
[ 3 ] https://sv3d.github.io/index.html