首頁  >  文章  >  科技週邊  >  AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

WBOY
WBOY轉載
2023-04-12 15:40:061601瀏覽

隨著大型文字 - 圖像模型的出現,生成一幅吸引人的圖像已經變得非常簡單,用戶需要做的就是動動手指輸入簡單的 prompt 就可以。透過一系列操作得到影像後,我們不免又會產生這樣幾個問題:基於 prompt 產生的影像能夠滿足我們的要求嗎?我們應該建構怎樣的架構來處理用戶提出的各種要求?在特定任務中,大型模型是否還能保持從數十億張影像中獲得的優勢和能力?

為了回答這些問題,來自史丹佛的研究者對各種圖像處理應用進行了大量調查,並得出以下三個發現:

##首先,在特定領域中可用資料實際上比訓練通用模型的資料少,這主要表現在,例如在特定問題上(例如姿態理解等)最大的資料集通常低於100k,比大規模、多模態文字影像資料集LAION 5B 少了5 × 10^4 數量級。這就要求神經網路穩健性要好,以避免模型過度擬合,並在針對特定問題時具有良好的泛化性。

其次,當使用資料驅動處理影像任務時,大型運算叢集並不總是可用的。這時快速訓練方法就變得很重要,這種方法在可接受的時間和記憶體空間內能夠針對特定任務對大模型進行最佳化。更進一步,在後續的處理過程中可能還需要微調、遷移學習等操作。

最後,在影像處理過程中遇到的各種問題會有不同形式的定義方式。在解決這些問題時,雖然影像擴散演算法可以以「程序化(procedural)」方式進行調節,例如,約束去噪過程、編輯多頭注意力激活等,但這些手工製定的規則基本上是由人類指令規定的,考慮到一些特定的任務,如深度- 圖像、姿態- 人等,這些問題本質上需要將原始輸入解釋為對象級或場景級的理解,這使得手工製作的程序方法不太可行。因此,想要在多個任務中給出解決方案,端到端學習是必不可少的。

基於上述發現,本文提出了一個端到端的神經網路架構ControlNet,可以透過增加額外條件來控制擴散模型(如Stable Diffusion),從而改善圖生圖效果,並能實現線稿生成全彩圖、產生具有相同深度結構的圖、透過手部關鍵點還能優化手部的生成等。

論文網址:https://arxiv.org/pdf/2302.05543.pdf

項目網址:https://github.com/lllyasviel/ControlNet

效果展示

那麼ControlNet 效果到底如何呢?

Canny 邊緣偵測:透過從原始影像中擷取線稿,能夠產生同樣構圖的影像。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

深度檢測:透過擷取原始影像中的深度信息,可以產生具有同樣深度結構的圖。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

帶有語意分割的ControlNet:

使用基於學習的深度霍夫變換從Places2 中偵測直線,然後使用BLIP 產生字幕。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

HED 邊緣偵測圖示。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

人體姿態辨識圖示。

方法介紹

ControlNet 是一種神經網路架構,它可以增強具有任務特定(task-specific)條件的預訓練影像擴散模型。我們先來看看 ControlNet 的基本結構。

ControlNet 操縱神經網路區塊的輸入條件,從而進一步控制整個神經網路的整體行為。這裡「網路塊」指的是一組神經層,它們被放在一起作為一個構建神經網路的常用單元,例如 resnet 塊、多頭注意力塊、Transformer 塊。

以 2D 特徵為例,給定一個特徵圖 x ϵ R^h×w×c,其中 {h, w, c} 分別為高度、寬度和通道數。具有一組參數 Θ 的神經網路區塊 F (・; Θ) 將 x 轉換為另一個特徵圖 y,如下公式 (1) 所示。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

這個過程如下圖 2-(a) 所示。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

神經網路區塊由稱為「零卷積」的獨特卷積層連接,即權重和偏壓都零初始化的1×1 卷積層。研究者將零卷積運算表示為 Z (・;・) ,並使用兩個參數實例 {Θ_z1, Θ_z2} 組成 ControlNet 結構,如下公式 (2) 所示。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

其中 y_c 成為該神經網路區塊的輸出,如下圖 2-(b) 所示。

影像擴散模型中的ControlNet

#研究者以Stable Diffusion 為例,介紹如何使用ControlNet 控制具有任務特定條件的大型擴散模型。 Stable Diffusion 是一種在數十億張圖像上訓練的大型文字到圖像擴散模型,本質上是一個由編碼器、中間塊和殘差連接解碼器組成的 U-net。

如下圖 3 所示,研究者使用 ControlNet 來控制 U-net 的每一層。需要注意,這裡連接 ControlNet 的方式在計算上是高效的:由於原始權重被鎖定,原始編碼器上的梯度計算不需要進行訓練。並且又由於原始模型上少了一半梯度計算,可以加快訓練速度並節省 GPU 記憶體。使用 ControlNet 訓練一個 Stable Diffusion 模型只需要在每次訓練迭代中增加約 23% 的 GPU 記憶體和 34% 的時間(在單一 Nvidia A100 PCIE 40G 上測試)。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

具體地,研究者使用ControlNet 建立了12 個編碼區塊和1 個Stable Diffusion 中間區塊的可訓練副本。這 12 個編碼區塊有 4 種分辨率,分別為 64×64、32×32、16×16 和 8×8,每種解析度有 3 個區塊。輸出被加到 U-net 的 12 個殘差連接和 1 個中間區塊。由於 Stable Diffusion 是典型的 U-net 結構,因此這種 ControlNet 架構很可能可以用於其他擴散模型。

訓練及提升訓練

#給定圖像z_0,擴散演算法漸進地向圖像添加雜訊並產生噪聲圖像z_t,t 是添加雜訊的次數。當 t 夠大時,影像近似於純雜訊。給定一組包括時間步長 t、文本 prompts c_t 的條件以及任務特定條件 c_f,圖像擴散演算法學習網絡 ϵ_θ 以預測添加到噪聲圖像 z_t 的噪聲,如下公式 (10) 所示。

AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用

在訓練過程中,研究者隨機將 50% 的文字 prompts c_t 替換為空字串,這有利於 ControlNet 從輸入條件 map 中識別語義內容的能力。

此外,研究者也討論了幾種改進ControlNets 訓練的策略,特別是在計算設備非常有限(如筆記型電腦)或非常強大(如具有可用大規模GPU 的計算集群)的極端情況下。

更多技術細節請參閱原文。

以上是AI降維打擊人類畫家,文生圖引進ControlNet,深度、邊緣資訊全能復用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除