name_en: Adding Conditional Control to Text-to-Image Diffusion Models
name_ch: 向文本到圖像的擴(kuò)散模型添加條件控制
paper_addr: http://arxiv.org/abs/2302.05543
date_read: 2023-08-17
date_publish: 2023-02-10
tags: [‘圖形圖像’,‘大模型’,‘多模態(tài)’]
author: Lvmin Zhang
code: https://github.com/lllyasviel/ControlNet
讀后感
ControlNet 幾乎是 Stable Diffusion 中最重要的功能插件,利用它可對(duì)畫面內(nèi)容進(jìn)入精準(zhǔn)控制。本文介紹了 ControlNet 的原理和具體功能。
ControlNet 是一種對(duì)文本生成圖像的優(yōu)化方法。比如:生成 AI 畫作時(shí),畫面中人體的形態(tài),面部表情都難以精準(zhǔn)控制,ControlNet 基于圖生圖的操作方式,從另一圖中提取對(duì)應(yīng)元素,用于新圖像的生成,大幅提升了人對(duì)大模型的控制力。
具體方法是調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),基于預(yù)訓(xùn)練的擴(kuò)散模型,根據(jù)新輸入的描述和指定任務(wù)對(duì)應(yīng)的條件進(jìn)一步訓(xùn)練模型。使模型既可以在小數(shù)據(jù)量(<50K)時(shí)在個(gè)人設(shè)備上訓(xùn)練,也可以在大數(shù)據(jù)量時(shí)在集群中訓(xùn)練。
其核心技術(shù)是在原大網(wǎng)絡(luò)參數(shù)不變的情況下,疊加一個(gè)小型網(wǎng)絡(luò),以實(shí)現(xiàn)最終的調(diào)參。
背景知識(shí)
對(duì)于文本生成圖片的大模型,往往需要考慮以下因素:
- 數(shù)據(jù)問題:在訓(xùn)練數(shù)據(jù)量不夠大的情況下,解決過擬合/泛化問題。
- 資源問題:解決訓(xùn)練時(shí)間和內(nèi)存問題,使模型在個(gè)人電腦上也能訓(xùn)練。
- 形式問題:支持各種圖像處理問題具有不同形式的問題定義、用戶控件或圖像注釋。
方法
ControlNet是一種網(wǎng)絡(luò)結(jié)構(gòu)。如圖所示:
原始網(wǎng)絡(luò)結(jié)構(gòu)如圖 2-a 所示,輸入為x,輸出為y,theta為網(wǎng)絡(luò)參數(shù);
y
=
F
(
x
;
θ
)
y=F(x;\theta)
y=F(x;θ)
加入了ControlNet的網(wǎng)絡(luò)如圖 2-b 所示,它將大模型的權(quán)重復(fù)制為“可訓(xùn)練副本”和“鎖定副本”:鎖定副本用于保留原網(wǎng)絡(luò)能力,被鎖定不參與調(diào)參;可訓(xùn)練副本在特定任務(wù)的數(shù)據(jù)集上根據(jù)條件c進(jìn)行訓(xùn)練,以學(xué)習(xí)有條件控制;網(wǎng)絡(luò)輸出 y 為“可訓(xùn)練副本”和“鎖定副本”兩部分疊加的結(jié)果。
其中還加入了兩個(gè)"零卷積"層 zero convolution(公式中的 Z),它是1x1且初始值為0的卷積層。
y
c
=
F
(
x
;
θ
)
+
Z
(
F
(
x
+
Z
(
c
;
θ
z
1
)
;
θ
c
)
;
θ
z
2
)
y_c = F(x;\theta)+Z(F(x + Z(c;\theta_{z1});\theta_c);\theta_{z2})
yc?=F(x;θ)+Z(F(x+Z(c;θz1?);θc?);θz2?)
可想見,開始調(diào)參時(shí),由于Z網(wǎng)絡(luò)初值是0,y值只有等式左邊部分,即保留了原始網(wǎng)絡(luò);后面逐步調(diào)參后,等式右邊部分開始變化。
將該結(jié)構(gòu)應(yīng)用到擴(kuò)散模型,如圖-3所示:
左側(cè)是基礎(chǔ)網(wǎng)絡(luò),權(quán)重被鎖定,右側(cè)為 ControlNet 部分,只對(duì)其 Encoder 部分進(jìn)行了調(diào)整,使模型訓(xùn)練僅需要增加約 23% 的 GPU 內(nèi)存和 34% 的時(shí)間;同時(shí)由于左側(cè)的原始網(wǎng)絡(luò)參數(shù)不變,又使用了零卷積的方法,有效避免了直接在網(wǎng)絡(luò)上調(diào)參帶偏網(wǎng)絡(luò)的問題,同時(shí)還可以使 ControlNet 的影響可調(diào)節(jié)。
其它
文章的 3.5 節(jié)及附錄部分列出了幾種常見的 ControlNet 控制方法,包含:控制人物表情和動(dòng)作,控制場景深度,控制畫面中的線條等,并展示了相應(yīng)的效果圖??梢曌鞴δ芙榻B和效果展示。文章來源:http://www.zghlxwxcb.cn/news/detail-663321.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-663321.html
到了這里,關(guān)于論文閱讀_條件控制_ControlNet的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!