安全驗(yàn)證 - 知乎知乎,中文互聯(lián)網(wǎng)高質(zhì)量的問答社區(qū)和創(chuàng)作者聚集的原創(chuàng)內(nèi)容平臺(tái),于 2011 年 1 月正式上線,以「讓人們更好的分享知識(shí)、經(jīng)驗(yàn)和見解,找到自己的解答」為品牌使命。知乎憑借認(rèn)真、專業(yè)、友善的社區(qū)氛圍、獨(dú)特的產(chǎn)品機(jī)制以及結(jié)構(gòu)化和易獲得的優(yōu)質(zhì)內(nèi)容,聚集了中文互聯(lián)網(wǎng)科技、商業(yè)、影視、時(shí)尚、文化等領(lǐng)域最具創(chuàng)造力的人群,已成為綜合性、全品類、在諸多領(lǐng)域具有關(guān)鍵影響力的知識(shí)分享社區(qū)和創(chuàng)作者聚集的原創(chuàng)內(nèi)容平臺(tái),建立起了以社區(qū)驅(qū)動(dòng)的內(nèi)容變現(xiàn)商業(yè)模式。https://zhuanlan.zhihu.com/p/605761756
ModelScope 魔搭社區(qū)https://modelscope.cn/models/dienstag/cv_controlnet_controllable-image-generation_nine-annotators/summarycontrolnet的核心在于給stable diffusion施加了精準(zhǔn)控圖,stable diffusion生成的圖本質(zhì)上是通過prompt進(jìn)行引導(dǎo)從噪聲中生成的,text是唯一的輸入,controlnet輸入了text之外額外的一個(gè)維度,目前論文支持canny邊緣圖,hough線條,hed邊緣圖,簡(jiǎn)筆圖,pose人體姿態(tài),分割圖,深度圖等。在流程上,依然是輸入圖片和prompt,controlnet會(huì)先從圖片中提取線框圖,再輸入prompt和線框圖即可生成新圖。從技術(shù)上,controlnet對(duì)stable diffusion進(jìn)行微調(diào),核心通過兩個(gè)零卷積對(duì)權(quán)重部分進(jìn)行映射調(diào)整,具體來說,對(duì)于預(yù)訓(xùn)練好的模型(比如作者使用sd1.5-unet里encoder和middlelayer的resenet和transformer層)里的一層結(jié)構(gòu),作者固定其參數(shù),并將該層的輸入額外添加一個(gè)全連接映射后的條件c,輸入到一個(gè)和該層結(jié)構(gòu)一致的復(fù)制網(wǎng)絡(luò)里,再映射一次后重新添加回原結(jié)構(gòu)里的輸出。在訓(xùn)練上,需要成對(duì)的text-線框和原圖這種數(shù)據(jù)對(duì)。此外作者也提出了小規(guī)模訓(xùn)練和大規(guī)模訓(xùn)練,力爭(zhēng)將stable diffusion的微調(diào)平民化。
1.introduction
? ? ? ? 基于提示的大模型是否滿足我們特定的要求?在圖像領(lǐng)域已經(jīng)有明確范式的任務(wù),大模型是否可以應(yīng)用促進(jìn)這些特定任務(wù)?我們應(yīng)該構(gòu)建什么樣的框架來處理大范圍的條件問題和用戶的控制需求?在具體任務(wù)中,大模型能否保留從數(shù)十億張圖像中獲得的優(yōu)勢(shì)和能力?
? ? ? ? 為了回答這些問題,我們的調(diào)查有三個(gè)發(fā)現(xiàn)。1.特定任務(wù)領(lǐng)域中的可用數(shù)據(jù)并不總是像一般圖像-文本領(lǐng)域中那么大。許多特定問題(目標(biāo)形狀/normal,姿態(tài)理解等)的最大數(shù)據(jù)往往在100k以下,laion-B有5b的數(shù)據(jù)對(duì)。2.大型計(jì)算集群并不是誰都有的,預(yù)訓(xùn)練權(quán)重的遷移微調(diào)是可利用的。3.各種圖像處理問題具有不同形式的定義,用戶控制或者圖像注釋。盡管擴(kuò)散算法可以以程序性方式來調(diào)節(jié),這些問題本質(zhì)上需要將原始輸入解釋為對(duì)象級(jí)別或者場(chǎng)景級(jí)別的理解,人工規(guī)則往往行不通,并且很多任務(wù)都是希望端到端進(jìn)行的。
上圖輸入是canny邊緣圖,輸出是符合控制條件的圖。
? ? ? ? 本文介紹controlnet,這是一種端到端的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它控制大型圖像擴(kuò)散模型來學(xué)習(xí)特定任務(wù)的輸入條件。controlnet將大型擴(kuò)散模型權(quán)重克隆為trainable copy(可訓(xùn)練副本)和locked copy(鎖定副本),鎖定副本保留從數(shù)十億圖像中學(xué)習(xí)的能力,而可訓(xùn)練副本在特定任務(wù)的數(shù)據(jù)集上訓(xùn)練,以學(xué)習(xí)條件控制??捎?xùn)練和鎖定的模塊與zero convolution連接,其中卷積權(quán)重以學(xué)習(xí)的方式從零逐漸增長(zhǎng)到優(yōu)化的參數(shù)。由于保留了production-ready weights,因此訓(xùn)練在不同規(guī)模的數(shù)據(jù)集上是穩(wěn)健的。由于零卷積不會(huì)向深層特征添加新的噪聲,因此與從頭開始訓(xùn)練新圖層相比,訓(xùn)練和微調(diào)擴(kuò)散模型一樣快。我們用不同條件的各種數(shù)據(jù)集訓(xùn)練控制王,小數(shù)據(jù)集(50k,甚至1k)效果也不錯(cuò),在rtx3090ti上也可以訓(xùn)練。
2.related work
2.1 hypernetwork and neural network structure
????????hypernetwork用于訓(xùn)練一個(gè)小的遞歸網(wǎng)絡(luò)來影響一個(gè)較大的神經(jīng)網(wǎng)絡(luò)的權(quán)重。controlnet使用一個(gè)特殊的卷積,zero convolution,在擴(kuò)散模型中縮放幾個(gè)卷積層的初始權(quán)重以改善訓(xùn)練的方法。
2.2 diffusion probabilistic model
? ? ? ? 擴(kuò)散模型對(duì)訓(xùn)練和采樣方法進(jìn)行優(yōu)化,采樣方式包括DDPM/DDIM/score-based diffusion。本質(zhì)上使用u-net作為架構(gòu),為了降低訓(xùn)練擴(kuò)散模型所需的計(jì)算能力,提出LDM(潛在擴(kuò)散模型)。
2.3 text-to-image diffusion
? ? ? ? 擴(kuò)散模型可以用于文本到圖像生成,通過使用clip將文本輸入編碼成潛在向量實(shí)現(xiàn)。
2.4 personalization,customization,and control of pretrained diffusion model
? ? ? ? 因?yàn)閳D像擴(kuò)散模型是文本到圖像的方法主導(dǎo)的,所以增強(qiáng)對(duì)擴(kuò)散的控制最直接的方式是文本引導(dǎo),這種類型的控制也可以通過操作剪輯特征實(shí)現(xiàn)。
2.5 image-to-image translation
? ? ? ?盡管controlnet和圖像到圖像的翻譯可能有一些重疊的應(yīng)用,但是他們的動(dòng)機(jī)本質(zhì)是不同的,圖像到圖像的翻譯旨在學(xué)習(xí)不同領(lǐng)域中的圖像之間的映射,而控制網(wǎng)絡(luò)旨在控制具有特定任務(wù)條件的擴(kuò)散模型。
3.method
3.1 controlnet
如上圖所示,我們鎖定中的所有參數(shù)將其克隆到可訓(xùn)練副本中,復(fù)制的副本用外部條件c訓(xùn)練,在本文中,我們將原始參數(shù)和新參數(shù)成為鎖定副本和可訓(xùn)練副本,制作這種副本而不是直接訓(xùn)練原始權(quán)重的動(dòng)機(jī)是為了避免數(shù)據(jù)集較小時(shí)的過擬合,并保持從數(shù)十億張圖像中學(xué)習(xí)的大型模型的production-ready quality。神經(jīng)網(wǎng)絡(luò)塊通過zero convolution的卷積層來連接,其權(quán)重和偏差都用零初始化。在一開始訓(xùn)練時(shí),神經(jīng)網(wǎng)絡(luò)塊中可訓(xùn)練和鎖定副本中所有輸入和輸出都與不存在控制網(wǎng)絡(luò)時(shí)情況一致。換句話說,當(dāng)控制網(wǎng)絡(luò)被應(yīng)用在一些神經(jīng)網(wǎng)絡(luò)塊時(shí),在任何優(yōu)化之前,它不會(huì)對(duì)深層神經(jīng)網(wǎng)絡(luò)的特征造成任何影響,任何神經(jīng)網(wǎng)絡(luò)塊的能力、功能和結(jié)果質(zhì)量都被保留,且任何進(jìn)一步的優(yōu)化將變得與微調(diào)一樣快。
上述公式是零卷積的梯度計(jì)算,雖然對(duì)輸入I的梯度初始為0,但是權(quán)重和偏差都不受影響,只要輸入I不為0,權(quán)重將在第一次梯度下降中被優(yōu)化為非0矩陣。
w※是一次梯度下降之后的,對(duì)輸入I求導(dǎo),獲得非0梯度。以這種方式,零卷積成為一種獨(dú)特類型的連接層,從零逐漸增長(zhǎng)到優(yōu)化的參數(shù)。?
3.2 controlnet in image diffusion model
????????stable diffusion是在數(shù)十億張圖像上訓(xùn)練的大型文本到圖像擴(kuò)散模型。如上所示,本質(zhì)上是一個(gè)u-net,有編碼器、中間模塊和解碼器,中間進(jìn)行跳躍連接,編碼器和解碼器都有12個(gè),包括中間模塊一共有25個(gè)模塊,這些模塊中,8個(gè)是上下采樣的卷積層,17個(gè)主要的模塊,每個(gè)包括4個(gè)resnet層和2個(gè)vision transformer,每個(gè)vit包括幾個(gè)cross-attention或者self-attention。文本采用openai clip編碼,擴(kuò)散時(shí)間步長(zhǎng)采用位置編碼。
? ? ? ? stable diffusion使用和vq-gan相似的預(yù)處理方法,將512x512圖像轉(zhuǎn)成64x64的潛在圖像,controlnet將image-based condition(就是從圖像中獲取線框圖)轉(zhuǎn)成64x64,我們使用4個(gè)4x4核和2x2strides的卷積層(后接relu,通常數(shù)分別是16,32,64,128,Guassian weights)將image-space condition轉(zhuǎn)成特征圖。該網(wǎng)絡(luò)將512x512轉(zhuǎn)成64x64。
? ? ? ? 如上圖所示,使用controlnet來控制u-net的每一層,鎖定權(quán)重是不計(jì)算梯度的,使用controlnet訓(xùn)練大概只增加23%的內(nèi)存和34%的一次迭代時(shí)間。具體來說,使用controlnet來創(chuàng)建stable diffusion的12個(gè)編碼塊和1個(gè)中間層的可訓(xùn)練副本,4個(gè)快采用4中分辨率,每個(gè)塊有三個(gè)。????????
????????作者的安排十分有意思。筆者在做相關(guān)實(shí)驗(yàn)時(shí)會(huì)聯(lián)想到學(xué)術(shù)界已經(jīng)形成的一些共識(shí)來設(shè)計(jì)實(shí)驗(yàn):比如由去年八月份論文prompt to prompt提出后,文生圖里圖片布局幾何關(guān)系很大程度上由cross-attn時(shí)文本對(duì)不同位置的像素點(diǎn)的激活程度所決定。所以筆者初始時(shí)會(huì)思考是否可以直接將text embedding添加融合模塊與sketch info(或其余模態(tài)的信息)交互,微調(diào)整個(gè)模型使其學(xué)會(huì)兼顧新的模態(tài)信息。筆者也會(huì)思考是否直接像GLIGEN的方式直接在attn層附近添加融合模塊會(huì)取得好的效果。但論文作者沒有如此安排。論文作者的思路更加類似于《Plug-and-Play Diffusion Features for Text-Driven Image-to-Image Translation》這篇論文的思路。即對(duì)于一張模型生成的圖片,其UNet的decoder一定已經(jīng)包含了其生成的一些空間信息,語義信息等。直接抽取decoder相關(guān)的特征,添加到當(dāng)前的生成能夠影響當(dāng)前生成的布局語義等。這是筆者覺得非常有意思的一點(diǎn)。
3.3 training
? ? ? ? 在訓(xùn)練過程中,我們隨機(jī)將50%文本提示詞替換為空字符串,這有助于controlnet從輸入條件圖中識(shí)別語義內(nèi)容的能力,如涂鴉和邊緣圖,這主要是因?yàn)楫?dāng)提示對(duì)stable diffusion不可見時(shí),編碼器傾向于從輸入控制映射中學(xué)習(xí)更多的語義作為提示詞的替代。
3.4 implement
? ? ? ? 文本-條件圖-圖像對(duì)。
4.question
如何理解 ControlNet 中的 sudden convergence phenomenon ? - 知乎我覺得大概是因?yàn)閏ontrolnet的訓(xùn)練并不是直接采用額外的loss來約束的,所以網(wǎng)絡(luò)剛開始其實(shí)一直在瞎跑,然…https://www.zhihu.com/question/627033160/answer/3268500462文章來源:http://www.zghlxwxcb.cn/news/detail-461673.html
controlnet沒有自己獨(dú)立的loss,和ldm共用損失。?文章來源地址http://www.zghlxwxcb.cn/news/detail-461673.html
到了這里,關(guān)于Adding Conditional Control to Text-to-Image Diffusion Models的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!