給畫畫 AI 加個 buff,畫起圖像就像開了挂。
加個人體骨骼綁定 buff,Stable Diffusion 直接快進到生成 3D動漫:
加個抽象到爆的草圖buff,AI 變着風格生成 " 完全一緻 " 的狗子:
就連号稱 "AI 殺手 " 的手部細節,也能在控制之下畫得惟妙惟肖:
這個名叫 ControlNet 的新 AI 插件,可以說是給畫畫 AI 來了最後的 " 臨門一腳 " ——
原本 AI 無法控制的手部細節、整體架構,有了它之後,加上 Stable Diffusion 這樣的擴散模型,足以生成任何人們想要的圖像。
發出不到兩天,ControlNet 就在 GitHub 上火了,目前已經狂攬 4.6k 星:
△" 讓我們控制擴散模型 "
各種效果圖更是在推特上爆火,試玩過的網友直呼:
遊戲結束!
所以,這個 ControlNet 究竟給擴散模型加了什麽 buff?
給 AI 畫畫模型加 buff
ControlNet 的原理,本質上是給預訓練擴散模型增加一個額外的輸入,控制它生成的細節。
這裏可以是各種類型的輸入,作者給出來的有 8 種,包括草圖、邊緣圖像、語義分割圖像、人體關鍵點特征、霍夫變換檢測直線、深度圖、人體骨骼等。
那麽,讓大模型學會 " 按輸入條件生成圖片 " 的原理是什麽呢?
ControlNet 整體思路和架構分工如下:
具體來說,ControlNet 先複制一遍擴散模型的權重,得到一個 " 可訓練副本 "(trainable copy)。
相比之下,原擴散模型經過幾十億張圖片的預訓練,因此參數是被 " 鎖定 " 的。而這個 " 可訓練副本 " 隻需要在特定任務的小數據集上訓練,就能學會條件控制。
據作者表示,即使數據量很少(不超過 5 萬張圖片),模型經過訓練後條件控制生成的效果也很好。
" 鎖定模型 " 和 " 可訓練副本 " 通過一個 1 × 1 的卷積層連接,名叫 "0 卷積層 "。
0 卷積層的權重和偏置初始化爲 0,這樣在訓練時速度會非常快,接近微調擴散模型的速度,甚至在個人設備上訓練也可以。
例如一塊英偉達 RTX 3090TI,用 20 萬張圖像數據訓練的話隻需要不到一個星期:
作者基于當前大火的 Stable Diffusion 進行了具體實現,主要架構如下:
針對不同的輸入,作者也給出了對應不同的模型,生成效果也都不錯。
例如這是采用 Canny 邊緣檢測算法檢測出的邊緣,用于生成圖像:
這是基于霍夫變換的直線檢測算法生成的直線草圖,用于生成各種風格的室内設計:
當然,自己作畫也可以,例如這是基于用戶草圖生成的小龜:
提取深度圖,并讓 AI 生成一幅相似的圖像,直接舉一反五:
語義分割下的遊泳池圖像,不僅水裏有倒影細節,建築也變化多樣:
不過目前來看,最受歡迎的還是基于人體姿态估計算法,控制動漫人物的動作生成:
看到這裏,是不是已經有了大膽的想法?(手動狗頭)
曾開發爆火 AI 上色插件
這個項目的作者 Lvmin Zhang,2021 年本科畢業于東吳大學,目前在斯坦福大學讀博。
他最出名的項目之一,是 2017 年開發的 AI 上色插件 style2paints,目前 GitHub 上已經有 15.9k 星。
style2paints 也經過了好幾次叠代,目前即将更新到第五版。
這是第四版的效果,隻需要線稿,AI 就能自動給你的圖像完成上色:
除了這個項目以外,他也是 CV 頂會的常客了。
One More Thing
值得一提的是,現在已經有基于 ControlNet 的國内産品上線了。
這個産品名叫稿定 AI,包含照片轉插畫、插畫線稿上色、插畫優化翻新等功能,正是基于 ControlNet 打造。
作畫效果大概是醬嬸的:
感興趣的小夥伴們可以去試玩一波了 ~
項目地址:
https://github.com/lllyasviel/ControlNet
參考鏈接:
[ 1 ] https://lllyasviel.github.io/Style2PaintsResearch/
[ 2 ] https://twitter.com/search?q=controlnet&src=typed_query
[ 3 ] https://www.gaoding.com/ai