stable diffusion打造自己專屬的LORA模型

通過Lora小模型可以控制很多特定場景的內容生成。

但是那些模型是別人訓練好的,你肯定很好奇,我也想訓練一個自己的專屬模型(也叫煉丹~_~)。

甚至可以訓練一個專屬家庭版的模型(family model),非常有意思。

將自己的訓練好的Lora模型放到stableDiffusion lora 目錄中,同時配上美麗的封面圖。

lora

(plen_me、plen_vivi,這兩個是我訓練的和家裏人的模型~_~)

這樣就可以將你的Lora模型和其他Lora模型融合使用了。

再配上Controlnet基本可以,將自己的pose+特徵融入到其他任何lora模型中。

【1】
下面我們看下如何訓練自己的模型。

(我的煉丹爐配置,win10+i7F+4080 )

首先,Lora模型可以通過lora-scripts 腳本進行訓練。

倉庫地址:https://github.com/Akegarasu/lora-scripts

找個目錄拉下來,先安裝sd-scripts子項目,然後安裝lora-scripts項目。

(敲黑板)重點看下sd-scripts 子項目:
https://github.com/kohya-ss/sd-scripts/tree/b5c60d7d62d6bb4a174ac09327dc517fc4446523

要嚴格按照作者給的步驟安裝。(要不然會有很多奇怪的問題)

如果順利的話大概安裝需要30min左右。(需要kexue上網應該就不用多介紹了)

【2】
接下來準備需要訓練的圖片。

根據最後的生成效果,要找頭像清晰的,臉部輪廓清楚的,背景最好是白色的。

然後就需要我們將圖片進行預處理。

先將圖片放在一個文件夾裏,然後定一個預處理之後的文件夾名字。

然後在stablediffusion中找到【訓練】【圖像預處理】模塊

lora

按照說明,填入預處理圖片路徑和目標目錄,然後選擇【Deepbooru生成標籤】。然後點擊【Preprocess】,等處理完成。

到目標目錄下,看下生成的標籤信息。

lora

lora

這些標籤就是訓練模型的圖片特徵了,基本上生成出來的標籤還是要check下。

如果某個重要的標籤丟失,或者識別錯誤(girl識別成boy ~_~)會直接影響煉丹質量。

【3】
將預處理目標文件夾複製到lora-scripts腳本的主目錄的train目錄中。(如果沒有就創建一個)

如果你有多個訓練集合可以在train中創建一個目錄,然後放到這個目錄中。

訓練自己的專屬模型,需要依賴一個主模型。真人特徵的模型貌似用 chilloutmix_NiPrunedFp32Fix 比較流行(這個模型很強大,你懂的!)。

模型地址:
https://huggingface.co/naonovn/chilloutmix_NiPrunedFp32Fix/tree/main

將下好的模型文件複製到lora-scripts->sd-models文件夾中。

【4】

準備工作差不多了,我們編輯下訓練腳本。

lora-scripts目錄中的train.ps1 腳本文件。

# Train data path | 設置訓練用模型、圖片
$pretrained_model = "./sd-models/chilloutmix_NiPrunedFp32Fix.safetensors" # base model path | 底模路徑
$train_data_dir = "./train/test" # train dataset path | 訓練數據集路徑

$pretrained_model:就是我們下載的訓練模型的基礎模型,把名字換掉。
$train_data_dir:訓練數據目錄。

    # Train related params | 訓練相關參數
    $resolution = "512,512" # image resolution w,h. 圖片分辨率,寬,高。支持非正方形,但必須是 64 倍數。
    $batch_size = 2 # batch size
    $max_train_epoches = 20 # max train epoches | 最大訓練 epoch
    $save_every_n_epochs = 2 # save every n epochs | 每 N 個 epoch 保存一次

$resolution:如果你的圖片預處理的時候沒有調整過,這裏就保持默認。
$batch_size、$max_train_epoches:如果你的卡不是很強,這裏的參數可以小一點。(這兩個參數主要控制訓練的次數和顯存加載的張量數據集)。

    # Output settings | 輸出設置
    $output_name = "meoutput" # output model name | 模型保存名稱

$output_name:用默認的也行,最好自定義一個名字,避免重複生成覆蓋原來模型。

保存,然後右鍵 【使用PowerShell運行】。

(這裏還是要祈禱下,不一定能一次成功。~_~)

腳本在運行過程中會出現一些'triton'加載失敗的錯誤。

lora

lora

但是其實不影響模型的訓練(我查了下好像是windows電腦就不支持這個模塊)。

這裏的錯誤如果不能正常執行,大概率是前面敲黑板的地方你沒有仔細看。

等模型訓練完。(我15張圖,大概跑了10min左右。)

我們看下output目錄輸出的模型文件。

lora

這裏的模型文件保存的個數,是train.ps1腳本文件裏設置的。

最後我們要通過驗證這些模型準確度,選用哪一個。

【5】

將這些模型文件全部複製到

E:\stable-diffusion-webui\extensions\sd-webui-additional-networks\models\lora

對應的擴展忙碌下。
如果還沒有安裝 sd-webui-additional-networks 擴展,記得先到擴展中安裝。

也可以直接用git地址安裝(有時候這個擴展查詢有點問題)
https://github.com/kohya-ss/sd-webui-additional-networks.git

然後我們測試下這幾個模型哪一個不錯。

順利安裝插件之後,就可以在界面上看到 【Additional Networks】功能菜單。

lora

要測試自己的模型,基礎模型還是要選用我們訓練的 chilloutmix_NiPrunedFp32Fix 模型。

prompt可以用自己提取的標籤作爲測試。

批次可以適當多點,到時候可以選擇。

lora

lora

這個過程大概需要個20min左右。(可以喝點茶等待創作了~_~)。

來一起見證AI的創作吧 ~~!

lora

圖片的上方是每一個模型名稱,左邊是特徵權重,組成的一個二維表格。

lora

有點那個意思 hhh。

下面這些就有點辣眼睛了 。

lora

lora

根據自己的眼光,我們挑選一個相對比較不錯的模型。

整體覺得這個模型不錯,我們記下模型的名字。

lora

將這個模型複製到 E:\stable-diffusion-webui\models\Lora 目錄中。

lora

可以給你的模型配上一個封面,只要文件名和模型名一樣就可以了。

【6】

有了自己的專屬模型,就可以結合其他lora模型一起使用了。
我們試下水墨風格。

下載lora模型:Moxin_10
下載基礎模型:dalcefoPainting_3rd.safetensors

(有些基礎模型在C站沒有,可以到huggingface上找找,再不行github上肯定有)

lora

點開這個紅色的收縮面板。

lora

刷新一下,讓lora模型文件重新加載下。

然後選擇我們保存的lora文件,此時這個模型的prompt設置會在文本框裏。

lora

然後再選擇水墨風模型 Moxin。

調整下每一個模型的權重,此時可以將我們自己的模型特徵調大些。

如果沒啥問題,我們就去C站找這個lora比較好的prompt拿過來用。

lora

lora

lora
這張雖然有點辣眼睛,但是特徵是有了。

lora
這一張比較像我女兒 ~_~。

最後,stablediffusion+lora等AIGC屬於開掛技術,我們還是要遵紀守法做一個好同志!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章