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