" 新 · AI 繪畫細節控制大師 "ControlNet-XS來啦!
敲重點的是參數隻要原始 ControlNet 的1%。
就能做到蛋糕口味随意切換:
△左圖爲改前
改變一個人的行頭也輕輕松松:
上圖同款,身形不變藝術氛圍感拉滿:
自然風光也能 hou 住,一年四季任意切換:
還有這貓頭鷹,直接從活物變雕塑:
參數很小的情況下,能做到這樣的效果,網友也是直呼絕絕子,并迫不及待想看論文。
ControlNet-XS 由海德堡大學計算機視覺實驗室研發,目前相關論文、預訓練模型還未公布。
但研究人員表示 ControlNet-XSFID 分數明顯優于 ControlNet。
且控制 Stable Diffusion-XL 和 Stable Diffusion 2.1 的代碼将在不久後開源。
新生代控制大師
先來康康對 StableDiffusion-XL 的控制。
研究人員在評估了不同大小的控制模型後發現,控制模型甚至不必和 2.6B 參數的 StableDiffusion-XL 基礎網絡大小一樣。
400M、104M 和 48M 參數的 ControlNet-XS 控制也很明顯。
深度圖給出了更爲直觀的展示,根據圖像内容的距離、深度,深度圖呈現出準确的顔色深淺度:
要注意的是,這裏研究人員設置的每行 seed 值不同,每列 seed 值相同。
此外,還有 Canny 邊緣檢測圖,物體的邊界、輪廓都能清晰地展現出來:
對 StableDiffusion 的控制,研究人員則是評估了 491M、55M 和 14M 參數的三個版本的 ControlNet-XS。
結果表明 1.6% 的參數(865M)也能夠可靠地控制生成過程。
那這是如何做到的呢?
從頭開始訓練
原始 ControlNet 是 StableDiffusion 基礎模型(base model)中 U-Net 編碼器的副本,所以接收與基礎模型相同的輸入,并帶有額外的引導信号,比如說邊緣圖。
然後,經過訓練的 ControlNet 的中間輸出被添加到基礎模型的解碼器層的輸入中。在 ControlNet 的整個訓練過程中,基礎模型的權重保持凍結狀态。
ControlNet-XS 的研究者們認爲這種方法存在問題,ControlNet 不必這麽龐大。
首先是 Stable Diffusion 最終輸出圖像,是在一系列步驟中叠代生成的。每個步驟會在 U-Net 網絡結構的編碼器(Encoder)和解碼器(Decoder)兩部分中執行。
每次叠代基礎模型和控制模型的輸入是前一個步驟生成的圖像。控制模型還接收一個控制圖像。
問題在于,在編碼器階段這兩個模型都獨立運行,而控制模型的反饋隻在基礎模型的解碼階段輸入。
總之,結果就是一個延遲的校正 / 控制機制。
也就是說 ControlNet 必須執行兩項任務:一邊校正 / 控制,一邊還要提前預測基本模型的編碼器将犯哪些 " 錯誤 "。
通過暗示圖像生成和控制需要相似的模型容量,自然而然地可以用基礎模型的權重初始化 ControlNet 的權重,然後進行微調。
而對于 ControlNet-XS,研究人員表示從設計上就與基礎模型不同,是從零開始訓練 ControlNet-XS 權重,解決了延遲反饋的問題。
如上圖所示,方法是從基礎模型的編碼器添加連接到控制編碼器(A),這樣校正過程可以更快地适應基礎模型的生成過程。但這并不能完全消除延遲,因爲基礎模型的編碼器仍然沒有受到引導。
因此,研究人員從 ControlNet-XS 添加額外的連接到基礎模型編碼器,直接影響整個生成過程(B)。
此外,他們還評估了在 ControlNet 設置中使用鏡像解碼架構是否有用(C)。
最終,研究人員在 COCO2017 驗證集上,針對 Canny 邊緣引導的三種不同變體(A、B、C)與原始的 ControlNet 進行了 FID 分數性能評估。
結果所有變體都有了顯著提升,同時僅使用了原始 ControlNet 參數的一小部分。
研究人員又拿出了變體 B,分别使用 Canny 邊緣圖和深度圖引導,針對 StableDiffusion2.1 和 StableDiffusion-XL 分别訓練了三種不同大小的模型。
所以下一步就等相關論文、代碼以及預訓練模型公布啦~
項目地址:https://vislearn.github.io/ControlNet-XS/