LoRA大模型微調的利器

flydean發表於2024-09-04

LoRA模型是小型的Stable Diffusion模型,它們對checkpoint模型進行微小的調整。它們的體積通常是檢查點模型的10到100分之一。因為體積小,效果好,所以lora模型的使用程度比較高。

這是一篇面向從未使用過LoRA模型的初學者的教程。你將瞭解LoRA模型是什麼,在哪裡找到它們,以及如何在AUTOMATIC1111 GUI中使用它們。然後,你將在文章末尾找到一些LoRA模型的演示。

LoRA模型是什麼?

LoRA(Low-Rank Adaptation)是一種微調Stable Diffusion模型的訓練技術。

雖然我們已經有像Dreambooth和文字反轉這樣的訓練技術。那麼LoRA有什麼用呢?

LoRA實際上可以看做是Dreambooth和文字反轉embeddings的折中方案。Dreambooth功能雖然強大,但模型檔案會比較大(2-7 GB)。文字反轉非常小(約100 KB),但能做的事情比較少。

LoRA介於兩者之間。它的檔案大小更容易管理(2-200 MB),並且訓練能力相當不錯。

因為checkpoint比較大,所以硬碟空間儲存會是一個問題。而LoRA是解決儲存問題的優秀方案。

像文字反轉一樣,你不能單獨使用LoRA模型。它必須與模型檢查點檔案一起使用。LoRA透過對配套的模型檔案進行小的修改來改變風格。

LoRA是定製AI藝術模型的絕佳方式,而不會佔用太多本地儲存空間。

LoRA如何工作?

LoRA對Stable Diffusion模型中最關鍵的部分進行小的修改:交叉注意力層。研究人員發現,微調這部分模型就足以實現良好的訓練。交叉注意力層是下面Stable Diffusion模型架構中的黃色部分。

交叉注意力層

交叉注意力層的權重以矩陣的形式排列。矩陣只是按列和行排列的一堆數字,就像Excel電子表格上一樣。LoRA模型透過將自己的權重加到這些矩陣上來微調模型。

如果LoRA模型需要儲存相同數量的權重,它們的檔案怎麼會更小呢?LoRA的技巧是將矩陣分解成兩個更小的(低秩)矩陣。透過這樣做,它可以儲存更少的數字。讓我們透過以下示例來說明。

假設模型有一個100行100列的矩陣。那是10000個數字(100x 100)需要儲存在模型檔案中。LoRA將矩陣分解成一個1000x2矩陣和一個2x100矩陣。那只有400個數字(100 x 2 + 2 x 100,如果矩陣夠更大的話,LoRA模型會減少的更多。這就是為什麼LoRA檔案要小得多的原因。

image-20240703105705024

在這個例子中,矩陣的是2。它比原始尺寸低得多,所以它們被稱為低秩矩陣。秩可以低至1。

這種操作必定會帶來資料上的缺失,但是在交叉注意力層來說,這些損失是無傷大雅的。所以Lora這種做法是可行的。

在哪裡找到LoRA模型?

Civitai

image-20240703110017448

尋找LoRA的首選地點是Civitai。該網站託管了大量LoRA模型的集合。應用LORA過濾器以僅檢視LoRA模型。不過裡面的大多數模型都是:女性肖像,動漫,現實主義插圖風格等。

Hugging Face

image-20240703110326192

Hugging Face是另一個LoRA庫的好來源。你會發現更多種類的LoRA模型。但那裡的LoRA模型可能沒有C站多,並且也不太直觀。因為沒有圖片預覽。

如何使用LoRA?

這裡,我將介紹如何在AUTOMATIC1111 Stable Diffusion GUI中使用LoRA模型。

AUTOMATIC1111原生支援LoRA。你不需要安裝任何擴充套件。

第1步:安裝LoRA模型

要在AUTOMATIC1111 webui中安裝LoRA模型,請將模型檔案放入以下資料夾。

stable-diffusion-webui/models/Lora

第2步:在提示中使用LoRA

要在AUTOMATIC1111 Stable Diffusion WebUI中新增帶權重的LoRA,請在提示或否定提示中使用以下語法:

<lora: name: weight>

name是LoRA模型的名稱。它可以與檔名不同。weight是應用於LoRA模型的權重。預設值為1。將其設定為0將禁用模型。

那麼怎麼知道lora的名字是什麼呢?

其實我們並不需要手動輸入lora的名字,我們只需要點選下面的lora標籤:

image-20240703111227834

你應該看到一個已安裝的LoRA模型列表。單擊你想要使用的模型。

LoRA短語將被插入到提示中。

就是這樣!

使用LoRA的注意事項

你可以調整乘數以增強或調整效果。將乘數設定為0將禁用LoRA模型。你可以在0和1之間調整風格效果。

一些LoRA模型是使用Dreambooth訓練的。你需要包括一個觸發關鍵詞才能使用LoRA模型。你可以在模型頁面上找到觸發關鍵詞。

類似於嵌入,你可以同時使用多個LoRA模型。你也可以將它們與嵌入一起使用。

在AUTOMATIC1111中,LoRA短語不是提示的一部分。在應用LoRA模型後,它將被刪除。這意味著你不能使用像[keyword1:keyword2: 0.8]這樣的提示語法來使用他們。

實用的LoRA模型

這裡介紹一些在實際應用中比較實用的Lora。

add_detail

image-20240703112744179

誰不想要AI影像中更多的細節?細節調整器允許你增加或減少影像中的細節。現在,你可以調整你想要的細節量。

使用正LoRA權重來增加細節,使用負權重來減少細節。

add_saturation

這個lora可以給圖片新增一些飽和度,效果如下:

image-20240703113008727

add_brightness

這個lora可以用來控制圖片的亮度:

image-20240703134833039

總結

LoRA模型是checkpoint模型的小型修改器。你可以透過在提示中包含一個短語輕鬆地在AUTOMATIC1111中使用它們。

我將在以後的文章中告訴你如何自己來訓練一個LoRA模型。

點我檢視更多精彩內容:www.flydean.com

相關文章