Stable Diffusion -- 訓練LoRA(三)

更新於 發佈於 閱讀時間約 11 分鐘

前言

raw-image


自從上次我在這篇這篇文章介紹了如何訓練LoRA之後,線上訓練LoRA的Colab頁面又改版了,改變了一些設置,引進了一些模組,所以某些設定不再適用。加上我找到了該Colab的作者寫的,專門討論如何使用他的工具來訓練LoRA的頁面,以及在各個論壇討論如何精確訓練LoRA的文章,我決定把我近來訓練的方法更新在新文章中。讓大家有個參考。


問題

之前使用的方法,的確可以快速產出你要的LoRA,而且不需要任何高強的顯卡,但是這個方法有一些問題:

  • 將訓練圖的提示詞抓出來,依舊需要用本機的Automatic1111來做,而有些時候Automatic1111會出問題,怎麼抓提示詞都是錯的,尤其是deepbooru,我的本機沒成功過。迫使我只能用CLIP來做,在動漫類角色LoRA上問題很大。
  • 常常訓練出過擬合(Overfitting)的LoRA,這種LoRA不只是影響你的角色,它還會影響圖片的整體畫風,迫使你必須將權重放得很低,否則只要一高起來,不管你使用什麼模型,出來的圖都會扭曲,甚至破圖。而你將權重放得過低,產生出來的角色又會變得不像,使得你在出圖時必須反覆調整權重,找出能生出相像的角色,但是又不會嚴重影響畫風的設定,有如在走鋼索。
  • 不知道怎麼檢定產生的LoRA到底品質好不好,如果前前後後產生了好幾個LoRA,要怎樣決定哪個版本更好,在不同模型下要使用什麼權重。

這幾個問題,基本上訓練LoRA的Colab的作者都有在他的專案頁面上講到:

[Guide] Make your own Loras, easy and free

本篇與下一篇就要來討論我如何依照他給的解釋,整合進我自己的人物類LoRA訓練流程。


首先,第一個問題是從訓練圖抓取提示詞的問題,除了使用Automatic1111來抓詞,並且自己進去文字檔一個一個修改之外,holostrawberry大大給了我們一個專門的Colab頁面來處理這個問題,本文稍後會使用到。

第二個問題,過擬合通常有兩個因素,一個是訓練回數太多太久,使得LoRA的權重產生嚴重偏見,讓它可以在訓練時取得良好分數,另一個原因是因為我們沒有提供規範圖(regulation images)。無法在LoRA訓練想取巧時教訓它。

至於什麼是規範圖,我請ChatGPT來回答他的定義:

在圖像生成式AI的訓練中,regulation images的功能是將一些無關的圖像加入到訓練數據中,以增加模型的泛化能力,防止過度擬合。這些無關圖像可能是與訓練數據中的圖像非常相似,但實際上不屬於目標類別的圖像,或是隨機產生的噪聲圖像。
加入regulation images會對模型的品質產生積極影響。如果模型只在訓練數據中學習,那麼它很可能會過度擬合訓練數據,導致在新數據上的表現不佳。然而,當使用regulation images時,模型被迫學習一些與目標類別不完全相關的特徵,這可以幫助模型更好地泛化到新數據上,並且可以減少過度擬合的風險。因此,regulation images可以提高模型的品質和穩健性。

目前看不懂沒關係,我們馬上就要來自己生產規範圖,讓我們從範例中搞懂這是什麼東西。

上傳訓練圖

在這一版的流程中,我們一樣要準備並裁切訓練用的素材圖,請依照我在

Stable Diffusion -- 訓練LoRA(一) 之中的「準備」與「裁切」來料理素材圖。

本次我以訓練一個猛男戰士為目標,準備了他的素材圖:

raw-image

並且幫他指名了啟動詞XingBar。原本我使用的詞是Xing,但我發現這個詞已經被Stable Diffusion使用了,是一個東方女子的提示詞,所以若是沒有改名,會在使用時衝突,出現的人物會變來變去,甚至出現陰陽人。所以在取名啟動詞之前,最好用https://lexica.art/ 等網站查詢一下自己的啟動詞會不會叫出一個固定的角色。

素材圖準備好之後,我們不用在這時提煉提示詞,請直接將所有的素材圖上傳到Google雲端硬碟上,由於Colab的作者更新了設定,我們要將它放置在新的路徑格式上:

我的雲端硬碟 -> Loras -> <專案名稱> -> dataset

以我這次的範例,我的目錄位置是:

我的雲端硬碟 -> Loras -> XingBar30 -> dataset

接下來,我們要來生產規範圖。

產生與上傳規範圖

我問了ChatGPT關於規範圖的挑選標準,我覺得很準確:

選擇好的regulation images是非常重要的,因為這將直接影響模型訓練的品質。以下是一些挑選好的regulation images的方法:
1. 選擇高質量的圖像:確保你選擇的圖像是高質量的,可以清晰地顯示出你想要的特徵。
2. 多樣性:選擇多樣的圖像,包括不同的風格、色彩和紋理,這有助於提高生成模型的多樣性。
3. 詳細:選擇能夠呈現你想要特定特徵的圖像。例如,如果你想訓練一個生成寫實風格的模型,那麼你需要選擇那些能夠呈現真實細節的圖像。
4. 數量:通常情況下,regulation images的數量越多越好,因為這能夠提高訓練的品質和多樣性。但是,選擇過多的圖像可能會增加訓練的時間和計算成本。

也就是說,規範圖需要的是一大批跟素材圖同類別,但是又不會太相似,也不會太過不相似的圖

所謂的同類別,例如我的目標是猛男戰士,那同類別就會是男性,男戰士,男野蠻人這種東西。而我上一個訓練的LoRA是銀髮年輕女性,同類別的圖就是女性,女孩等類別。

但我們在挑選規範圖時盡量避免列入太過相似的圖,免得訓練時讓AI困惑。同時也要避免太過不相像,例如你的素材圖是動漫系男性戰士,但你的規範圖是畢卡索或梵谷畫中的男性,甚至是男性玩具士兵的圖片,這樣可能讓整個訓練過程的Loss數值降不下來。或是讓AI將你的啟動詞歸類到不要的類別裡。

產生規範圖的方法有兩種,第一種就是Google搜尋該類別的圖片,找個100張,再裁切成512x512的圖片,然後上傳到Google雲端硬碟。第二種則是自行使用Automatic1111的X/Y/Z plot來大批量生產圖片:

Stable Diffusion進階 -- X/Y/Z plot

在這邊我以生產男性圖片為例,使用這樣的設置:

raw-image

然後產生大約150張圖片,挑選其中100張符合條件的圖片上傳雲端硬碟,放在這樣的資料夾下:

我的雲端硬碟 -> Loras -> Man -> dataset

在Google雲端硬碟上,會看起來像這樣:

raw-image

產生提示詞

接下來,我們就要使用Colab來幫助我們快速產生訓練與規範圖的提示詞。請打開這個Colab頁面:

https://colab.research.google.com/github/hollowstrawberry/kohya-colab/blob/main/Dataset_Maker.ipynb

這個頁面提供了從頭產生素材圖輯的整個流程,但我們已經有素材圖了,所以只需要用到它的提示詞產生功能。

規範圖的提示詞

首先我們從簡單的規範圖提示詞開始,在第一步的project_name填入我們的規範圖資料夾Man,而folder_structure則保持不變,使用作者提供的新架構:

raw-image

按下執行後,它會要求存取你的Google雲端硬碟,授權之後接著跳到第四步(Tag your images)。

在這邊什麼都不用改,直接執行即可,程式會使用Waifu Diffusion的文字圖像對應模型,替你的圖產生提示詞。

(順帶一提,Waifu Diffusion就是當初轟動的維多利亞女僕AI圖使用的模型)

raw-image

只要確認程式找到圖,並且產生文件檔之後,我們就來處理比較複雜的素材圖的提示詞。

素材圖的提示詞

一樣打開同一份Colab文件,這次在第一步project_name填入放置素材圖的專案名稱XingBar30,然後執行。一樣跳到第四步,直接執行,確認所有的素材圖都有相對應的文件檔產生,而且Colab會給你一個提示詞與提示詞出現次數的分佈名單:

raw-image

之後需要到第五步(Curate your tags)置換你的啟動詞與要融合的詞。

這個步驟,官方的說明是:

編輯你的提示詞:這個步驟對於動畫提示詞來說是可選的,但非常有用。在這裡,你可以為你的 LoRA定義啟動詞。如果你正在訓練風格,你可能不想要任何啟動詞,這樣 LoRA就會一直生效。如果你正在訓練角色,我個人傾向於刪除(修剪)與角色內在特徵有關的常見提示詞,例如身體特徵和頭髮/眼睛顏色。這會導致它們被啟動詞吸收。

在我們的例子中,啟動詞global_activation_tag是XingBar,而remove_tags則是你在第四步的提示詞分佈名單上看到的,想要融合進角色的提示詞,對我的角色而言,就是跟男性、眼睛顏色、髮型、肌肉等相關的提示詞:

brown eyes, long hair, male focus, mature male, muscular, blonde hair, pectorals, muscular male, manly, large pectorals
raw-image

其他欄位保持不變,按下執行之後,Colab會將每個文件檔的開頭放進啟動詞,並且將remove_tags列進去的提示詞都移除掉。這樣我們就完成所有的準備步驟了!

驗證提示詞

在Colab頁面最下端的Extras區域,有一個工具Analyze Tags可以檢查剩下的提示詞:

raw-image

確認了提示詞已經成功整理乾淨,我們就可以在下一篇來訓練,並驗證LoRA的品質!

Stable Diffusion -- 訓練LoRA(四)

參照



LoRA目錄:



留言
avatar-img
留言分享你的想法!
子不語-avatar-img
發文者
2023/05/24
Stable Diffusion -- 訓練LoRA(五)提及了這篇文章,趕快過去看看吧!
子不語-avatar-img
發文者
2023/05/02
Stable Diffusion -- 訓練LoRA(四)提及了這篇文章,趕快過去看看吧!
avatar-img
子不語怪・力・亂・神
30.4K會員
435內容數
寫奇幻小說,畫圖,心得,各式各樣作品的故鄉。
2023/06/26
這篇討論的是LoRA訓練裡面,可能是最重要的一步,就是選圖的標準,以及提示詞的選取策略。 最近在詳細研究到底要如何練出優質穩定的LoRA,參考了幾個Youtuber,以及Reddit上的影片跟文字分享,把一些訣竅整理條列在下面。
Thumbnail
2023/06/26
這篇討論的是LoRA訓練裡面,可能是最重要的一步,就是選圖的標準,以及提示詞的選取策略。 最近在詳細研究到底要如何練出優質穩定的LoRA,參考了幾個Youtuber,以及Reddit上的影片跟文字分享,把一些訣竅整理條列在下面。
Thumbnail
2023/05/24
這篇要來討論,我們是否能靠著一張圖,就能鍛鍊出LoRA。
Thumbnail
2023/05/24
這篇要來討論,我們是否能靠著一張圖,就能鍛鍊出LoRA。
Thumbnail
2023/05/02
接續上一篇,我們開始用準備好的訓練素材圖跟規範圖來烘焙我們的高品質LoRA。
Thumbnail
2023/05/02
接續上一篇,我們開始用準備好的訓練素材圖跟規範圖來烘焙我們的高品質LoRA。
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
本篇文章介紹如何使用PyTorch構建和訓練圖神經網絡(GNN),並使用Cora資料集進行節點分類任務。通過模型架構的逐步優化,包括引入批量標準化和獨立的消息傳遞層,調整Dropout和聚合函數,顯著提高了模型的分類準確率。實驗結果表明,經過優化的GNN模型在處理圖結構數據具有強大的性能和應用潛力。
Thumbnail
本篇文章介紹如何使用PyTorch構建和訓練圖神經網絡(GNN),並使用Cora資料集進行節點分類任務。通過模型架構的逐步優化,包括引入批量標準化和獨立的消息傳遞層,調整Dropout和聚合函數,顯著提高了模型的分類準確率。實驗結果表明,經過優化的GNN模型在處理圖結構數據具有強大的性能和應用潛力。
Thumbnail
關於 SORA 技術原理的圖像式解說,內容從通用型人工智慧到生成運算的原理以及相關的技術研究成果。 提供了使用生成運算方式的 Diffusion Transformer 介紹和進階閱讀的指路。分享 AI 研究領域的開放性和合作精神,以及對視覺產業可能帶來的影響。
Thumbnail
關於 SORA 技術原理的圖像式解說,內容從通用型人工智慧到生成運算的原理以及相關的技術研究成果。 提供了使用生成運算方式的 Diffusion Transformer 介紹和進階閱讀的指路。分享 AI 研究領域的開放性和合作精神,以及對視覺產業可能帶來的影響。
Thumbnail
未來不管是Diffuser還是LLM的微調,都離不開LoRA這項技術,充分理解LoRA的本質是甚麼,CP值特別高。這項技術的理念其實在人工智慧領域行之有年,只是普遍沒有響亮的名字與非常痛的應用場合,在大模型參數量暴增的時刻,重要性被大幅凸顯出來。
Thumbnail
未來不管是Diffuser還是LLM的微調,都離不開LoRA這項技術,充分理解LoRA的本質是甚麼,CP值特別高。這項技術的理念其實在人工智慧領域行之有年,只是普遍沒有響亮的名字與非常痛的應用場合,在大模型參數量暴增的時刻,重要性被大幅凸顯出來。
Thumbnail
前面完成了運行Stable Diffusion圖像模型的繪圖/溝通介面(WebUi)的安裝,在正式進入實際操作前,這邊我們先來分類釐清一下常見的模型有哪些種類以及它的主要功能作用。
Thumbnail
前面完成了運行Stable Diffusion圖像模型的繪圖/溝通介面(WebUi)的安裝,在正式進入實際操作前,這邊我們先來分類釐清一下常見的模型有哪些種類以及它的主要功能作用。
Thumbnail
LoRA 是什麼?為何在 Stable Diffusion 社群討論中常常出現?Prompt 有時看到很奇怪的文字是什麼?本文一次解答上述問題,並用白話文簡介 LoRA 原理,讓大家在操作時更有感覺!
Thumbnail
LoRA 是什麼?為何在 Stable Diffusion 社群討論中常常出現?Prompt 有時看到很奇怪的文字是什麼?本文一次解答上述問題,並用白話文簡介 LoRA 原理,讓大家在操作時更有感覺!
Thumbnail
接續上一篇,我們開始用準備好的訓練素材圖跟規範圖來烘焙我們的高品質LoRA。
Thumbnail
接續上一篇,我們開始用準備好的訓練素材圖跟規範圖來烘焙我們的高品質LoRA。
Thumbnail
如何完全靠雲端運算,簡單產生高品質,穩定的角色LoRA,讓AI繪圖能在不同模型下產生一致的人物。上集。
Thumbnail
如何完全靠雲端運算,簡單產生高品質,穩定的角色LoRA,讓AI繪圖能在不同模型下產生一致的人物。上集。
Thumbnail
這個方法主要是借用Google Colab的威力。 這次要介紹的LoRA訓練法,特別適用於下列對象: nVidia顯卡不夠高級,跑不動訓練程序 根本不是nVidia顯卡的使用者,Stable Diffusion的訓練程序不支援 不想花錢花電力花顯卡時間訓練
Thumbnail
這個方法主要是借用Google Colab的威力。 這次要介紹的LoRA訓練法,特別適用於下列對象: nVidia顯卡不夠高級,跑不動訓練程序 根本不是nVidia顯卡的使用者,Stable Diffusion的訓練程序不支援 不想花錢花電力花顯卡時間訓練
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News