LayerDiffusion是什麼
LayerDiffusion(現已更名爲LayerDiffuse)是由來自斯坦福大學的研究人員 Lvmin Zhang(即ControlNet的作者張呂敏)和 Maneesh Agrawala 共同提出的一種利用大規模預訓練的潛在擴散模型(如Stable Diffusion)生成透明圖像的技術,可以幫助用戶生成單個透明圖像或多個透明圖層。該方法的核心在於引入了“潛在透明度”的概念,將圖像的alpha通道的透明度信息編碼到潛在空間中,從而使得原本用於生成非透明圖像的模型能夠生成具有透明度的圖像。
藉助LayerDiffusion,用戶無需先生成圖片再利用如Remove.bg之類的AI技術進行摳圖,可以直接快速生成背景透明的免摳圖片。
LayerDiffusion的官網入口
- GitHub代碼庫:https://github.com/layerdiffusion/LayerDiffusion(模型和源碼即將上線)
- LayerDiffusion SD WebUI版:https://github.com/layerdiffusion/sd-forge-layerdiffusion
- arXiv研究論文:https://arxiv.org/abs/2402.17113
LayerDiffusion的功能特性
- 生成透明圖像:LayerDiffusio 能夠生成具有透明度的圖像,這意味着它可以創建具有 alpha 通道的圖像,其中 alpha 通道定義了圖像中每個像素的透明度。
- 生成多個透明圖層:除了單個透明圖像,LayerDiffusion還能夠生成多個透明圖層。這些圖層可以獨立生成,也可以根據特定的條件(如前景或背景)生成,並且可以混合在一起以創建複雜的場景。
- 條件控制生成:LayerDiffusion 支持條件控制生成,根據透明圖像生成前景或背景,爲創建特定場景的圖像提供了靈活性。
- 圖層內容結構控制:用戶還可以將 LayerDiffusion 與 ControlNet 控制框架相結合,對圖層內容進行結構控制,以指導圖層、佈局、元素和對象形狀等。
- 重複迭代組合圖層:LayerDiffusion可以通過重複背景條件前景模型來迭代地組合多個層,以增量地構建具有任意數量的透明圖層的組合圖像。
- 高質量的圖像輸出:通過將透明度作爲潛在偏移量添加到預訓練模型的潛在空間中,LayerDiffusion 能夠在不顯著改變原始潛在分佈的情況下,保持預訓練模型的高質量輸出。
LayerDiffusion的工作原理
- 潛在空間的準備:
- 首先,LayerDiffusion 使用預訓練的潛在擴散模型(如 Stable Diffusion)的潛在空間,該潛在空間是通過變分自編碼器(VAE)將 RGB 圖像編碼得到的。
- 爲了支持透明度,LayerDiffusion 在潛在空間中引入了一個額外的維度(潛在透明度),用於表示圖像的 alpha 通道(透明度信息)。
- 潛在透明度的編碼和解碼:
- LayerDiffusion 訓練兩個獨立的神經網絡:一個潛在透明度編碼器和一個潛在透明度解碼器。
- 編碼器接收原始圖像的 RGB 和 alpha 通道,並將透明度信息編碼爲一個潛在偏移量,這個偏移量被添加到潛在空間的表示中。
- 解碼器則從調整後的潛在表示中提取透明度信息,並將其解碼回原始的 alpha 通道。
- 潛在空間的調整:
- 爲了確保添加的透明度信息不會破壞原始潛在空間的分佈,LayerDiffusion通過潛在偏移量來調整潛在表示。
- 這個過程涉及到一個“無害性”度量,即通過比較原始預訓練模型的解碼器對調整後潛在表示的解碼結果,來評估潛在偏移量是否對模型的重建能力造成了破壞。
- 擴散模型的微調:
- 在潛在空間中引入透明度信息後,LayerDiffusion對原始的擴散模型進行微調,使其能夠在新的潛在空間中生成透明圖像。
- 這個過程涉及到訓練擴散模型,使其能夠學習如何在添加噪聲的過程中保留透明度信息。
- 多圖層生成:
- LayerDiffusion 還擴展了其能力,以支持生成多個透明圖層。這是通過共享注意力機制和低秩適應(LoRAs)來實現的,確保不同圖層之間的一致性和和諧混合。
- 數據集的準備和訓練:
- 爲了訓練模型,研究者們收集了大量透明圖像(由 100 萬張透明圖像組成,涵蓋多種內容主題和風格),這些數據通過人類參與的收集方案獲得。基於該數據集,模型被訓練以生成高質量的透明圖像和圖層。
© 版權聲明
文章版权归作者所有,未经允许请勿转载。
相關文章
暫無評論...