Stable diffusion中的models
Stable diffusion model也可以叫做checkpoint model,是預先訓練好的Stable diffusion權重,用於生成特定風格的影像。模型生成的影像型別取決於訓練影像。
如果訓練資料中從未出現過貓的影像,模型就無法生成貓的影像。同樣,如果只用貓的影像來訓練模型,它也只會生成貓的影像。
這裡我們將介紹什麼是模型,一些流行的模型,以及如何安裝、使用和合並它們。
微調模型Fine-tuned models
在計算機視覺和自然語言處理領域,微調模型是指使用預訓練模型,並在特定任務上進行進一步的訓練,以使其適應特定的資料集或問題。透過微調,模型可以更好地理解和處理特定領域的資訊,從而提高其效能和準確性。
微調的步驟
- 選擇預訓練模型:首先選擇一個在大規模資料集上進行了預訓練的模型,如BERT、ResNet等。
- 凍結部分層:通常情況下,我們會凍結模型的一部分層,以保留其在預訓練資料集上學到的特徵。
- 新增新層:根據特定任務的需求,我們會向模型中新增新的層或調整現有層的結構。
- 微調模型:利用特定任務的資料集,對模型進行進一步訓練,以使其在該任務上表現更好。
微調的應用
微調模型在各種領域都有廣泛的應用,包括情感分析、影像分類、語義分割等。透過微調,模型可以適應不同領域的特定資料分佈,從而提高其泛化能力和適應性。
微調模型是一種有效的方法,可以幫助我們利用預訓練模型的知識,快速構建並最佳化適用於特定任務的模型。透過合理的微調策略,我們可以更好地利用現有的模型和資料,從而取得更好的效果。
為什麼人們要微調Stable diffusion模型?
Stable diffusion base模型非常出色,但並不是萬能的。例如,它可以生成帶有“動漫”關鍵詞的動漫風格圖片。然而,它可能很難生成特定子型別的動漫圖片。
所以,透過微調可以生成不同風格的stable diffusion模型。下面是我們使用相同的提示詞和設定,但是用不同模型生成的圖片。
提示詞如下:
a girl,0lg4kury,
其中0lg4kury是一個embedding。
我們分別使用了AnythingV5,dreamshaper_8和majicmixRealistic_v7這三個checkpoint來生成最終的圖片。
大家可以看到,同樣的提示詞最後的圖片效果是不同的。
其中AnythingV5是卡通風格,dreamshaper是真實繪畫風格,而majicmixRealistic是真實照片風格。
使用模型是實現特定風格的簡單方式。
模型是如何建立的?
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下拉框旁邊的重新整理按鈕。
在這個下拉選單中,你可以看到剛剛下載並安裝好的模型。
還有一種方法,就是在txt2img或img2img頁面中,選擇Checkpoints標籤頁,也可以看到對應的模型。
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:
我們用這個模型為例,來嘗試一下不同clip skip的效果:
在web UI中設定clip Skip
正常情況下在文生圖或者圖生圖介面上是看不到clip Skip選項的。 你需要去到 Settings > User Interface > User Interface頁面, 在Quicksettings list中新增 CLIP_stop_at_last_layer. 然後點選 Apply Settings 最後 Reload UI.
clip skip 滑動按鈕就會顯示在webUI介面上了。
合併兩個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模型(即由兩組權重組成的檢查點檔案)。
因此,如果您想要用它來生成影像,請下載 Pruned 或 EMA-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