AI 技術(shù)的進(jìn)步為我們的工作帶來(lái)了更多挑戰(zhàn),比如不少人可能就對(duì)新出現(xiàn)的 AI 繪畫軟件應(yīng)用感到不太熟練。而在本篇文章里,作者就針對(duì) Stable Diffusion 這款 AI 繪畫軟件的使用輸出了這份 " 保姆級(jí)教程 ",一起來(lái)看看本文的解讀。
(相關(guān)資料圖)
碼字不易,SD 保姆教程,從原理功能到案例輸出展示,最后簡(jiǎn)述 ControlNet 的使用技巧,圖文約 1 萬(wàn) 5 千字左右,閱讀時(shí)長(zhǎng)約 20 分鐘~
Stable Diffusion 的基本介紹
除了官方給出的解釋。
它和 MJ 有什么區(qū)別?
為了更方便的理解,我們將 Stable Diffusion 與 Midjourney 做一個(gè)對(duì)比:
一、基礎(chǔ)介紹
1. 提示詞
提示詞分為兩個(gè)部分。
1)正向提示詞
i. 生成圖像時(shí),我們可以使用正向提示詞來(lái)指定想要生成的圖像。正向提示詞可以是腦子里想到的圖片或一句話,將其拆分成不同的關(guān)鍵詞,并用逗號(hào)隔開(kāi)作為輸入。
ii. 需要注意的是,相同的指令在不同的模型庫(kù)和參數(shù)下,生成的輸出圖像可能會(huì)不一樣。此外,提示詞的順序也非常重要,因?yàn)樗鼈兊捻樞驎?huì)影響到生成圖像的權(quán)重。通常情況下,越靠前的提示詞權(quán)重越大,越靠后的提示詞權(quán)重越小。
2)排除詞
輸入框內(nèi)輸入的標(biāo)簽內(nèi)容就是你畫面中不想要出現(xiàn)的東西,如:低質(zhì)量的,缺手指,五官不齊等等。
下圖給大家做一個(gè)案例演示。
3)提示詞拆分
對(duì)于使用提示詞生成圖像生成的小伙伴來(lái)說(shuō),當(dāng)看到喜歡的圖像或腦海中想到很多畫面,但卻不知道如何用提示詞準(zhǔn)確描述,現(xiàn)在有三種方法可以幫助大家快速拆分和生成圖像。
i. Stable Diffusion 中自帶反堆功能,可以通過(guò)將想要拆分的圖像拖入反堆,點(diǎn)擊按鈕來(lái)獲得生成該圖像的提示詞。第一次使用可能會(huì)有些慢,需要稍等片刻。
需要注意的是,這些提示詞需要進(jìn)行后期的優(yōu)化,常用的方法是通過(guò)百度翻譯后進(jìn)行增刪改,或者輸入到 GPT 中進(jìn)行優(yōu)化 , 優(yōu)化后將提示詞放入相應(yīng)的框內(nèi)進(jìn)行圖像輸出。
ii. 第二種方法我們可以借助三方網(wǎng)站:https://replicate.com/ 來(lái)進(jìn)行拆分,拆分好后,同第一條一樣,進(jìn)行一個(gè)增刪改,然后我們對(duì)兩種方法進(jìn)行比較,通過(guò)比較后,我們可以進(jìn)行詞匯的篩選與合并。
iii. 利用 gpt 或文心等相關(guān)工具,將想要描述的長(zhǎng)句輸入,最后加一句描述,請(qǐng)將這句話拆分為 Stable Diffusion 的提示詞,如果不滿意可以繼續(xù)恢復(fù)優(yōu)化提示詞,或者換一批相關(guān)描述,然后將轉(zhuǎn)換好的提示詞同 i 一樣增刪改。
2. 符號(hào)的使用
正如前文所述,詞匯在提示中的位置越靠前,其所占的權(quán)重就越大。為了進(jìn)一步調(diào)整提示關(guān)鍵詞的權(quán)重,我們可以通過(guò)以下語(yǔ)法來(lái)設(shè)置關(guān)鍵詞的權(quán)重:在選中關(guān)鍵詞的同時(shí),按下鍵盤上的 Ctrl+ 上下來(lái)快速調(diào)整權(quán)重。每次調(diào)整的權(quán)重值為 0.1,建議將權(quán)重值控制在 0.7-1.4 之間。
簡(jiǎn)單來(lái)說(shuō),將每個(gè)提示詞看作一個(gè)獨(dú)立的個(gè)體,權(quán)重默認(rèn)為 1,而后面的數(shù)值就相當(dāng)于在修改這個(gè)默認(rèn)值。當(dāng)然,我們也可以將權(quán)重調(diào)整為負(fù)數(shù),從而在提示中產(chǎn)生與原意相反的影響。
通過(guò)這種方法,我們可以更加精確地控制提示關(guān)鍵詞的權(quán)重,以達(dá)到更好的提示效果。同時(shí),我們也需要注意保持提示內(nèi)容的流暢性和自然性,避免過(guò)度的修改導(dǎo)致提示內(nèi)容的語(yǔ)義不連貫或不符合實(shí)際情況。
3. 圖像的輸出
畫面的信息量取決于輸出圖片的大小。在全身構(gòu)圖中,一些細(xì)節(jié),例如臉部、飾品和復(fù)雜的紋樣,只有在較大的圖像中才能得到充分的展示空間,如圖像太小,臉部,手部,一些細(xì)節(jié)就會(huì)被壓縮成一團(tuán),無(wú)法得到充分的表現(xiàn),以下圖的風(fēng)景為例,當(dāng)畫幅越大時(shí),展示的內(nèi)容越多。
二、界面部分
1. 采樣迭代步數(shù)
輸出畫面需要的步數(shù),每一次采樣步數(shù)都是在上一次的迭代步驟基礎(chǔ)上繪制生成一個(gè)新的圖片,一般來(lái)說(shuō)采樣迭代步數(shù)保持在 18-30 左右即可,低的采樣步數(shù)會(huì)導(dǎo)致畫面計(jì)算不完整,高的采樣步數(shù)僅在細(xì)節(jié)處進(jìn)行優(yōu)化,對(duì)比輸出速度得不償失。
2. 采樣方法的介紹
常用的有三種,分別是 Euler a,DPM++2S a Karras 和 DDI
Euler a:
i. Euler a 是一種用于控制時(shí)間步長(zhǎng)大小的可調(diào)參數(shù),在 Stable Diffusion 中采用 Euler 時(shí)間步長(zhǎng)采樣方法。適當(dāng)?shù)?Euler a 值能夠捕捉到細(xì)節(jié)和紋理,但如果值太大會(huì)導(dǎo)致過(guò)度擬合,生成圖像出現(xiàn)噪點(diǎn)等不良效果。
ii. 一句話概括:采樣生成速度最快,但是如果說(shuō)在高細(xì)節(jié)圖增加采樣步數(shù)時(shí),會(huì)產(chǎn)生不可控突變(如人物臉扭曲,細(xì)節(jié)扭曲等)。
適合:ICON,二次元圖像,小場(chǎng)景。
下圖為大家展示同提示詞不同步幅。
DPM++2S a Karras :
i. 采用 DPM++2S a Karras 采樣方法生成高質(zhì)量圖像,該方法在每個(gè)時(shí)間步長(zhǎng)中執(zhí)行多次操作,同等分辨率下細(xì)節(jié)會(huì)更多,比如可以在小圖下塞進(jìn)全身,代價(jià)是采樣速度更慢。
ii. 適合:寫實(shí)人像,復(fù)雜場(chǎng)景刻畫。
下圖展示 elura a 同提示詞不同步幅下的輸出圖像,可以看到步幅越高,細(xì)節(jié)刻畫越好。
DDIM
i. DDIM 采樣方法可以快速生成高質(zhì)量的圖像,相比其他采樣方法具有更高的效率,想嘗試超高步數(shù)時(shí)可以使用,隨著步數(shù)增加可以疊加細(xì)節(jié)。
下圖為大家展示 DDIM 同提示詞不同步幅下的輸出圖像,可以看到隨著步幅的提高,細(xì)節(jié)和豐富度逐漸提高。
3. 提示詞相關(guān)性
Stable Diffusion 中的提示詞相關(guān)性指的是輸入提示詞對(duì)生成圖像的影響程度。當(dāng)我們提高提示詞相關(guān)性時(shí),生成的圖像將更符合提示信息的樣子;相反,如果提示詞相關(guān)性較低,對(duì)應(yīng)的權(quán)重也較小,則生成的圖像會(huì)更加隨機(jī)。因此,通過(guò)調(diào)整提示詞相關(guān)性,可以引導(dǎo)模型生成更符合預(yù)期的樣本,從而提高生成的樣本質(zhì)量。
i. 在具體應(yīng)用中,對(duì)于人物類的提示詞,一般將提示詞相關(guān)性控制在 7-15 之間。
ii. 而對(duì)于建筑等大場(chǎng)景類的提示詞,一般控制在 3-7 左右。這樣可以在一定程度上突出隨機(jī)性,同時(shí)又不會(huì)影響生成圖像的可視化效果。因此,提示詞相關(guān)性可以幫助我們通過(guò)引導(dǎo)模型生成更符合預(yù)期的樣本,從而提高生成的樣本質(zhì)量。
4. 隨機(jī)種子
i. 隨機(jī)種子是一個(gè)可以鎖定生成圖像的初始狀態(tài)的值。當(dāng)使用相同的隨機(jī)種子和其他參數(shù),我們可以生成完全相同的圖像。設(shè)置隨機(jī)種子可以增加模型的可比性和可重復(fù)性,同時(shí)也可以用于調(diào)試和優(yōu)化模型,以觀察不同參數(shù)對(duì)圖像的影響。
ii. 在 Stable Diffusion 中,常用的隨機(jī)種子有 -1 和其他數(shù)值。當(dāng)輸入 -1 或點(diǎn)擊旁邊的骰子按鈕時(shí),生成的圖像是完全隨機(jī)的,沒(méi)有任何規(guī)律可言。而當(dāng)輸入其他隨機(jī)數(shù)值時(shí),就相當(dāng)于鎖定了隨機(jī)種子對(duì)畫面的影響,這樣每次生成的圖像只會(huì)有微小的變化。因此,使用隨機(jī)種子可以控制生成圖像的變化程度,從而更好地探索模型的性能和參數(shù)的影響。
在工作產(chǎn)出中,如果細(xì)微調(diào)整,我們將會(huì)固定某個(gè)種子參數(shù)然后進(jìn)行批量生成。
三、Checkpoint,VAE,embedding 和 lora 的使用詳解
1. 安裝路徑自查
2. Checkpoint 的介紹
i. 對(duì)于模型作者而言,訓(xùn)練模型通常指生成 Checkpoint 文件。這些文件包含了模型參數(shù)和優(yōu)化器狀態(tài)等信息,是訓(xùn)練過(guò)程中定期保存的狀態(tài)快照。
ii. 對(duì)于使用者而言,可以將 Checkpoint 文件理解為一種風(fēng)格濾鏡,例如油畫、漫畫、寫實(shí)風(fēng)等。通過(guò)選擇對(duì)應(yīng)的 Checkpoint 文件,您可以將 Stable Diffusion 模型生成的結(jié)果轉(zhuǎn)換為您所選擇的特定風(fēng)格。需要注意的是,一些 Checkpoint 文件可能需要與特定的低碼率編碼器(如 Lora)配合使用,以獲得更好的效果。
iii. 在下載 Checkpoint 文件時(shí),您可以查看相應(yīng)的模型簡(jiǎn)介,通常作者會(huì)提供相應(yīng)的文件和說(shuō)明事項(xiàng),以幫助您更好地使用和理解該文件。
總之,Checkpoint 文件是 Stable Diffusion 模型訓(xùn)練過(guò)程中定期保存的狀態(tài)快照,使用者可以將其理解為一種風(fēng)格濾鏡,用于將模型輸出結(jié)果轉(zhuǎn)換為特定的風(fēng)格。在使用 Checkpoint 文件時(shí),需要注意文件的匹配和相應(yīng)的使用說(shuō)明。
3. VAE 的介紹
i. 可以將 VAE 理解為對(duì)模型的濾鏡加微調(diào),不同的 VAE 可能有一些細(xì)節(jié)上的差異,但不會(huì)影響輸出的效果。
ii. 它可以增強(qiáng)模型的表現(xiàn),有些模型文件已經(jīng)自帶了 VAE 效果,因此不需要盲目地去掛載,可以選擇自動(dòng)模式來(lái)簡(jiǎn)化日常使用。
4. embedding 的介紹
i. 如果你有做過(guò) UI 的經(jīng)驗(yàn),那么你應(yīng)該知道組件的概念。在 Stable Diffusion 中,embedding 技術(shù)就可以被理解為一種組件,它可以將輸入數(shù)據(jù)轉(zhuǎn)換成向量表示,方便模型進(jìn)行處理和生成。
ii. 舉個(gè)例子,如果我們想要生成一個(gè)開(kāi)心的皮卡丘,通常需要輸入很多描述詞,如黃毛、老鼠、長(zhǎng)耳朵、腮紅等等。但是,如果引入皮卡丘的 embedding,我們只需要輸入兩個(gè)詞:皮卡丘和開(kāi)心。皮卡丘的 embedding 打包了所有皮卡丘的特征描述,這樣我們就不用每次輸入很多單詞來(lái)控制生成的畫面了。
iii. 在日常使用中,embedding 技術(shù)通常用于控制人物的動(dòng)作和特征,或者生成特定的畫風(fēng)。相比于其他模型(如 LORA),embedding 的大小只有幾十 KB,而不是幾百兆或幾 GB,除了還原度對(duì)比 lora 差一些但在存儲(chǔ)和使用上更加方便。
iiii. 總之,embedding 技術(shù)將輸入數(shù)據(jù)轉(zhuǎn)換為向量表示,為模型的處理和生成提供了便利。通過(guò)使用 embedding,我們可以更加輕松地生成符合預(yù)期的樣本,而不需要手動(dòng)輸入大量的描述詞匯。
5. LORA 的介紹
LORA 與 embedding 在本質(zhì)上類似,因?yàn)閿y帶著大量的訓(xùn)練數(shù)據(jù),所以 LORA 對(duì)人物和細(xì)節(jié)特征的復(fù)刻更加細(xì)膩。
使用技巧:
i. 通常來(lái)說(shuō),每個(gè) LORA 模型都有對(duì)應(yīng)的底膜和觸發(fā)詞匯。我們可以查看 LORA 作者產(chǎn)出的相關(guān)圖片,從中獲取模型信息,并從中選擇一些提示詞和排除詞來(lái)指定生成圖像的方向。需要注意的是,每個(gè) LORA 模型對(duì)輸出圖像的權(quán)重設(shè)置是非常重要的。權(quán)重設(shè)置越大,對(duì)畫面的影響因素就越淺。通常情況下,權(quán)重應(yīng)該控制在 0.7-1 之間。如果權(quán)重過(guò)高,會(huì)大幅度影響出圖的質(zhì)量。
ii. 為了獲得最佳效果,我們可以根據(jù)不同的 LORA 模型選擇適當(dāng)?shù)奶崾驹~和排除詞,并在設(shè)置權(quán)重時(shí)進(jìn)行調(diào)整。同時(shí),我們還可以參考其他作者的經(jīng)驗(yàn)和技巧,以便更好地利用 LORA 生成圖像。
四、圖生圖下的功能詳解
簡(jiǎn)介:
是一種生成圖像的方法,它可以通過(guò)對(duì)已有的圖像進(jìn)行修改或變形,生成新的圖像。在 Stable Diffusion 中,我們可以將墊圖的圖像看作是一張 " 初始圖像 ",通過(guò)多次迭代,對(duì)其進(jìn)行修改和變形,逐步生成與墊圖風(fēng)格類似想要的圖片。
需注意的是圖生圖相對(duì)于文生圖多出兩個(gè)功能。
重繪幅度:
i. 指的是每次迭代中圖像被重新繪制的程度或幅度,也就是新生成的圖像與上一次迭代生成的圖像之間的差異程度。
ii. 它的取值范圍在 0 到 1 之間。當(dāng) 值等于 0 時(shí),新生成的圖像與上一次迭代生成的圖像完全一致,即沒(méi)有重新繪制;
當(dāng)值等于 1 時(shí),新生成的圖像與上一次迭代生成的圖像完全不同,即完全重新繪制。
需要注意的是,重繪幅度的大小會(huì)影響生成圖像的質(zhì)量和逼真程度。當(dāng)重繪幅度較小時(shí),生成的圖像可能會(huì)比較模糊或粗糙;
當(dāng)重繪幅度較大時(shí),生成的圖像可能會(huì)出現(xiàn)明顯的噪點(diǎn)或瑕疵。
縮放模式:
拉伸:不改變寬高比的前提下將圖片拉伸,寬度高度充滿畫面空間的 100%。
裁剪:保留寬高比的基礎(chǔ)上,然后裁剪掉超出去的部分 , 使用時(shí)我們可以提前調(diào)整好輸出圖片的寬高比例。
填充:它指在縮放圖像時(shí),將原始圖像放置在目標(biāo)尺寸的中心位置,多出去的部分用一定的顏色值(通常為黑色)填充周圍的空白區(qū)域。
直接縮放:
i. 指對(duì)圖像進(jìn)行簡(jiǎn)單的縮放處理,即直接將原始圖像縮放到目標(biāo)尺寸。
ii. 在 Stable Diffusion 中,如果生成的圖像尺寸與原始圖像尺寸不一致,就需要進(jìn)行縮放處理。直接縮放是一種簡(jiǎn)單粗暴的縮放方式,它直接將原始圖像縮放到目標(biāo)尺寸,不進(jìn)行任何額外的處理。這種縮放方式的優(yōu)點(diǎn)是簡(jiǎn)單快速,但缺點(diǎn)是可能會(huì)導(dǎo)致圖像失真或模糊,特別是當(dāng)縮放比例較大時(shí)。
1. 圖生圖
主要用來(lái)做圖片放大和造型背景的變化,或者三次元改二次元時(shí)用的,通常配合著 ControlNet 來(lái)使用。
2. 繪圖
i. 通過(guò)手動(dòng)繪制或修改圖像的局部區(qū)域,來(lái)指導(dǎo)生成器生成更加符合用戶期望的圖像,使用時(shí)可以利用繪圖工具,如筆刷、橡皮擦等,對(duì)圖像的局部區(qū)域進(jìn)行修改。修改后的圖像會(huì)被作為下一次迭代的初始圖像,從而影響后續(xù)的圖像生成過(guò)程。
ii. 通過(guò)繪圖,可以更加精細(xì)地控制生成圖像的細(xì)節(jié)和特征,從而獲得更符合預(yù)期輸出。
3. 局部重繪
i. 也稱為上傳蒙版法,提前在作圖軟件里用畫筆涂抹好需要重新繪制的區(qū)域,黑色區(qū)域表示需要修復(fù)的區(qū)域,白色區(qū)域表示不需要修復(fù)的區(qū)域。
(注意:因此只需要在需要修復(fù)的區(qū)域涂黑色,其他區(qū)域可以涂白或保留原始顏色。上傳蒙版的話也只需在繪圖軟件里把需要修復(fù)的區(qū)域涂黑即可)
ii. 局部重繪的目的是盡可能地保留原始圖像的結(jié)構(gòu)和紋理特征,使修復(fù)后的圖像更加自然和真實(shí)。
4. 批量處理
指使用已有的圖像生成新的圖像。而圖生圖的批量處理是指同時(shí)對(duì)多張輸入圖像進(jìn)行圖生圖操作,生成對(duì)應(yīng)的多張輸出圖像。
五、ControlNet 的使用
1. 一圖搞定插件安裝
權(quán)重:
ControlNet 的權(quán)重與圖生圖權(quán)重的對(duì)比關(guān)系時(shí):
低重繪強(qiáng)度配高權(quán)重,可以鎖定圖片的細(xì)節(jié),更改畫風(fēng)上的展現(xiàn),拓展延伸推薦。
高重回強(qiáng)度配低權(quán)重,修改圖片細(xì)節(jié),定風(fēng)格圖后小修改推薦。
預(yù)處理器與模型的關(guān)系:
i. 使用預(yù)處理器時(shí)要與模型一一對(duì)應(yīng)起來(lái) , 如與處理器選擇 canny,則相對(duì)應(yīng)的模型也要選擇 canny。
ii. 預(yù)處理器和模型在 Stable Diffusion 中是相輔相成的,預(yù)處理器通過(guò)對(duì)輸入圖像進(jìn)行預(yù)處理和數(shù)據(jù)增強(qiáng),為模型提供了更好的輸入,而模型則通過(guò)對(duì)輸入進(jìn)行特征提取和生成高質(zhì)量圖像,為預(yù)處理器提供了更好的反饋。
介入時(shí)機(jī)和退出時(shí)機(jī):
i. 介入時(shí)機(jī):代表第幾步介入對(duì)畫面的影響;退出時(shí)機(jī):代表第幾步退出對(duì)畫面的影響。
ii. 如,現(xiàn)在是一個(gè)生成步幅為 30 步的圖像:
現(xiàn)在介入時(shí)機(jī)為 0.2,則從 30 × 0.2=6,第六步的時(shí)候 ControlNet 開(kāi)始介入
現(xiàn)在退出時(shí)機(jī)為 0.8,則從 30 × 0.8=24,第二十四步的時(shí)候 ControlNet 退出對(duì)輸出的介入
2. Canny 邊緣檢測(cè)
i. Canny 是一種經(jīng)典的邊緣檢測(cè)算法,能夠很好地識(shí)別出圖像中的邊緣信息,對(duì)于圖像生成任務(wù)來(lái)說(shuō),可以幫助模型更好地生成具有清晰邊緣的圖像。
ii. 處理圖片的方式是將圖片專為線稿,對(duì)于畫面細(xì)節(jié)不復(fù)雜的圖像來(lái)說(shuō)很好,但處理復(fù)雜圖像時(shí),主體會(huì)容易被除主題元素以外的元素影響。
iii. 細(xì)節(jié)刻畫上,一種是分辨率越高,線條越清晰,閾值越少,對(duì)應(yīng)的細(xì)節(jié)也越多。
4. Hed 邊緣檢測(cè),細(xì)節(jié)保留
i. 該算法的特點(diǎn)是能夠同時(shí)預(yù)測(cè)多個(gè)尺度的邊緣,從而提高了邊緣檢測(cè)的精度,對(duì)邊緣清晰的圖像生成效果更好。
ii. 當(dāng)用草圖轉(zhuǎn)上色時(shí),可以在繪圖軟件將描邊加粗加深一些,從而能更方便獲取邊緣。
5. MLSD 線性檢測(cè)
i. mlsd 模型,可以進(jìn)行直線檢測(cè),通過(guò)分析圖片的線條結(jié)構(gòu)來(lái)構(gòu)建出建筑外框,適合建筑設(shè)計(jì)的使用。
ii. 可以配合 canny 一起使用,效果更佳。
6. Open pose- 人物擺 pose
判斷主圖的主體動(dòng)作,然后將動(dòng)作附加在主圖上 一般配合著 open pose editer。
7. LeRes 深度信息估算
對(duì)有場(chǎng)景深度的圖片效果更佳,生成的圖像景深更易區(qū)分。
六、結(jié)語(yǔ)
隨著 AI 技術(shù)的快速發(fā)展,圖像生成領(lǐng)域的大型模型正在成為研究的熱點(diǎn),但是由于該領(lǐng)域的相對(duì)新穎和復(fù)雜性,相關(guān)的教程和資源目前還相對(duì)匱乏。希望本文可以幫助各位設(shè)計(jì)師快速入門 Stable Diffusion,并為您提供一些有用的參考資料。
相信在不久的將來(lái),一些真正具有商業(yè)價(jià)值的大模型將會(huì)涌現(xiàn)出來(lái),為設(shè)計(jì)和其他領(lǐng)域帶來(lái)更多的創(chuàng)新和效益,最后,希望大家能不斷探索和學(xué)習(xí),掌握更多的技能和知識(shí),為設(shè)計(jì)賦能!
本文由 @尹承元 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議。
關(guān)鍵詞: