怎麼使用Stable diffusion中的models

flydean發表於2024-05-28

Stable diffusion中的models

Stable diffusion model也可以叫做checkpoint model,是預先訓練好的Stable diffusion權重,用於生成特定風格的影像。模型生成的影像型別取決於訓練影像。

如果訓練資料中從未出現過貓的影像,模型就無法生成貓的影像。同樣,如果只用貓的影像來訓練模型,它也只會生成貓的影像。

這裡我們將介紹什麼是模型,一些流行的模型,以及如何安裝、使用和合並它們。

微調模型Fine-tuned models

在計算機視覺和自然語言處理領域,微調模型是指使用預訓練模型,並在特定任務上進行進一步的訓練,以使其適應特定的資料集或問題。透過微調,模型可以更好地理解和處理特定領域的資訊,從而提高其效能和準確性。

微調的步驟

  1. 選擇預訓練模型:首先選擇一個在大規模資料集上進行了預訓練的模型,如BERT、ResNet等。
  2. 凍結部分層:通常情況下,我們會凍結模型的一部分層,以保留其在預訓練資料集上學到的特徵。
  3. 新增新層:根據特定任務的需求,我們會向模型中新增新的層或調整現有層的結構。
  4. 微調模型:利用特定任務的資料集,對模型進行進一步訓練,以使其在該任務上表現更好。

微調的應用

微調模型在各種領域都有廣泛的應用,包括情感分析、影像分類、語義分割等。透過微調,模型可以適應不同領域的特定資料分佈,從而提高其泛化能力和適應性。

微調模型是一種有效的方法,可以幫助我們利用預訓練模型的知識,快速構建並最佳化適用於特定任務的模型。透過合理的微調策略,我們可以更好地利用現有的模型和資料,從而取得更好的效果。

為什麼人們要微調Stable diffusion模型?

Stable diffusion base模型非常出色,但並不是萬能的。例如,它可以生成帶有“動漫”關鍵詞的動漫風格圖片。然而,它可能很難生成特定子型別的動漫圖片。

所以,透過微調可以生成不同風格的stable diffusion模型。下面是我們使用相同的提示詞和設定,但是用不同模型生成的圖片。

提示詞如下:

a girl,0lg4kury,

其中0lg4kury是一個embedding。

我們分別使用了AnythingV5,dreamshaper_8和majicmixRealistic_v7這三個checkpoint來生成最終的圖片。

大家可以看到,同樣的提示詞最後的圖片效果是不同的。

其中AnythingV5是卡通風格,dreamshaper是真實繪畫風格,而majicmixRealistic是真實照片風格。

image-20240410222018151

使用模型是實現特定風格的簡單方式。

模型是如何建立的?

checkpoint模型是一種透過額外訓練和Dreambooth技術建立的模型,它們基於穩定擴散v1.5或XL等基礎模型進行改進。這些方法允許使用者根據自己的特定需求和興趣來定製AI模型,從而生成更加個性化和專業化的影像內容。

額外訓練: 額外訓練是指使用特定的資料集對基礎模型進行進一步的訓練。這種方法可以讓你專注於某個特定的主題或領域,例如cat。透過使用相關的資料集,你可以調整模型的輸出,使其更傾向於生成具有cat特徵的影像。這種方法的關鍵在於選擇合適的資料集,並確保其與你的生成目標相匹配。

Dreambooth: Dreambooth是由谷歌開發的一種技術,它允許使用者透過少量的自定義圖片(通常是3-5張)將特定的主題或物件注入到文字到影像模型中。例如,如果你想要在生成的影像中包含自己的形象,你可以拍攝幾張照片,並透過Dreambooth將這些圖片與模型結合。這樣,當你在生成影像時使用特定的關鍵詞,模型就會根據這些圖片生成包含你形象的影像。Dreambooth訓練的模型依賴於這個關鍵詞來觸發特定的生成效果。

除了checkpoint模型,還有其他的模型型別,如embedding、LoRA、LyCORIS和超網路,它們各自有不同的特點和應用場景。文字反演透過定義新的關鍵字來描述特定的物件或風格,而LoRA和LyCORIS則提供了更快速和靈活的訓練選項。超網路則是一種在原有模型基礎上新增附加網路的方法,用於學習新的生成特徵。

在本文中,我們將重點關注checkpoint模型。

熱門的stable diffussion模型

你可以在C站上找到成千上萬的模型,這裡我來列舉幾個比較常用的模型,供大家參考:

Stable diffusion v1.4

這是Stability AI於2022年8月釋出的v1.4版本, 是首個公開可用的穩定擴散模型。

這是一個通用模型,能夠產生各種風格的作品,但是現在已經很少有人使用了,現在大多數人已經轉向了v1.5模型。

Stable diffusion v1.5

stable diffusion v1.5 是由 Stability AI 的合作伙伴 Runway ML 於 2022 年 10 月釋出。該模型基於 v1.2 並進行了進一步的訓練。

模型頁面未提及改進之處。與 v1.4 相比,它產生了稍微不同的結果,但尚不清楚它們是否更好。

與 v1.4 一樣,您可以將 v1.5 視為通用模型。根據我的經驗,v1.5 是作為初始模型的不錯選擇,並且可以與 v1.4 互換使用。

Realistic Vision

Realistic Vision 非常適合生成任何逼真的內容,無論是人物、物體還是場景。

DreamShaper

DreamShaper模型經過微調,適用於介於照片逼真和計算機圖形之間的肖像插畫風格。

majicMIX realistic

majicMIX是一個很棒的寫實模型。

SDXL模型

SDXL模型是備受讚譽的v1.5和被遺忘的v2模型的升級版本。

使用SDXL模型的好處包括:

  • 更高的原生解析度- 1024畫素,而v1.5只有512畫素

  • 更高的影像質量(與v1.5基礎模型相比)

  • 能夠生成可讀的文字

  • 更容易生成較暗的影像

Anything

Anything 是一個專門訓練的模型,用於生成高質量的動漫風格圖片。它對於將名人形象轉換為動漫風格非常有用,然後可以與插畫元素無縫融合。

當然還有其他的一些非常不錯的模型,大家可以多逛逛C站,那裡有你所要的一切。

其他不錯的模型

Deliberate v2

Deliberate v2 是可以呈現逼真的插圖。其結果可能會出乎意料地好。每當你有一個好的提示時,切換到這個模型,你會得到驚喜的結果。

F222

F222模型在生成具有正確身體部位關係的美麗女性肖像方面非常棒。

ChilloutMix

ChilloutMix是一個專門用於生成亞洲女性照片模型。它就像是F222的亞洲版。

在Stable Diffusion webUI中安裝和使用models

要在web GUI中安裝模型,可以從C站或者其他的網站上下載對應的模型,並將checkpoint模型檔案放在以下資料夾中:

stable-diffusion-webui/models/Stable-diffusion/

然後點選左側頂部checkpoint下拉框旁邊的重新整理按鈕。

image-20240410231240848

在這個下拉選單中,你可以看到剛剛下載並安裝好的模型。

還有一種方法,就是在txt2img或img2img頁面中,選擇Checkpoints標籤頁,也可以看到對應的模型。

image-20240410231308104

CLIP Skip

什麼是CLIP Skip?

CLIP Skip是Stable Diffusion中用於影像生成的CLIP文字嵌入網路的一項功能,它表示跳過最後的幾層。

CLIP是Stable Diffusion v1.5模型中使用的語言模型,它將提示中的文字標記轉換為embedding。它是一個包含許多層的深度神經網路模型。CLIP Skip指的是要跳過多少個最後的層。在AUTOMATIC1111和許多Stable Diffusion軟體中,CLIP Skip為1時不跳過任何層。CLIP Skip為2時跳過最後一層,依此類推。

為什麼要跳過一些CLIP層?因為神經網路在透過層時會總結資訊。層越早,包含的資訊就越豐富。

跳過CLIP層對影像可能會產生顯著影響。許多動漫模型都是用CLIP Skip為2進行訓練的。

在C站上,有些模型會專門標出對應的clip skip是多少,比如這個hellokid2d模型,他的clip skip就是2:

image-20240410231844070

我們用這個模型為例,來嘗試一下不同clip skip的效果:

image-20240410232053809

在web UI中設定clip Skip

正常情況下在文生圖或者圖生圖介面上是看不到clip Skip選項的。 你需要去到 Settings > User Interface > User Interface頁面, 在Quicksettings list中新增 CLIP_stop_at_last_layer. 然後點選 Apply Settings 最後 Reload UI.

image-20240410232713648

clip skip 滑動按鈕就會顯示在webUI介面上了。

image-20240410232753394

合併兩個models

在webUI中合併兩個models是非常簡單的事情,我們導航到checkpoint Merger頁面,選擇好對應的兩個模型,並調整乘數(M)以調整兩個模型的相對權重。將其設定為0.5將以相等的權重合並兩個模型。

按下Run後,就會把兩個模型合併成一個新的模型。

你可以根據自己的愛好來嘗試合併不同的模型,透過調整對應的權重,你可以得到意想不到的結果。

Stable Diffusions model的檔案格式

在模型下載頁面上,您可能會看到幾種模型檔案格式。

  • 剪枝 (Pruned)
  • 完整 (Full)
  • 僅EMA (EMA-only)
  • FP16
  • FP32
  • .pt
  • .safetensor

這很令人困惑!您應該下載哪一個?

Pruned vs Full vs EMA-only

一些 Stable Diffusion checkpoint模型由兩組權重組成:最後訓練步驟後的權重和過去幾個訓練步驟的平均權重,稱為 EMA(指數移動平均)。

如果您只對使用模型感興趣,可以下載 EMA-only。這些是您在使用模型時使用的權重。它們有時被稱為 Pruned模型

如果您想要用額外的訓練對模型進行微調,那麼只需要 Full模型(即由兩組權重組成的檢查點檔案)。

因此,如果您想要用它來生成影像,請下載 PrunedEMA-only。這可以節省一些磁碟空間,哦,不對,是非常多非常多的空間。

Fp16 和 fp32 模型

FP 代表浮點。它是計算機儲存十進位制數的方式。這裡的十進位制數是模型權重。FP16 每個數字佔用 16 位,稱為半精度。FP32 佔用 32 位,稱為全精度。

深度學習模型(如 Stable Diffusion)的訓練資料非常嘈雜。您很少需要全精度模型。額外的精度只是儲存噪音!

因此,如果有可用的話,請下載 FP16 模型。它們大約是大小的一半。這可以節省幾個 GB 的空間!

Safetensor 模型

原始的 pytorch 模型格式是 .pt。這種格式的缺點是不安全。如果有人在其中打包惡意程式碼。當您使用模型時,惡意程式碼就可以在您的計算機上執行。

Safetensors 是 PT 模型格式的改進版本。它執行與儲存權重相同的功能,但不會執行任何程式碼。因此,如果可能的話,請下載 safetensors 版本。如果沒有這個版本,那麼請從可信賴的來源下載 PT 檔案。

其他模型型別

在stable diffusion中,有四種主要型別的檔案可以稱為“模型”。

Checkpoint 模型 是真正的 Stable Diffusion 模型。它們包含生成影像所需的所有內容。不需要額外的檔案。它們很大,通常為 2 - 7 GB。

文字反轉(也稱為embedding)是定義生成新物件或樣式的新關鍵詞的小檔案。它們很小,通常為 10 - 100 KB。必須與 Checkpoint 模型一起使用。

LoRA 模型是用於修改樣式的 Checkpoint 模型的小補丁檔案。它們通常為 10-200 MB。必須與 Checkpoint 模型一起使用。

超網路是新增到 Checkpoint 模型的附加網路模組。它們通常為 5 - 300 MB。必須與 Checkpoint 模型一起使用。

總結

在這篇文章,我介紹了 Stable Diffusion 模型,它們是如何製作的,一些常見的模型以及如何合併它們。歡迎大家自行嘗試。

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

相關文章