105826.jpg

Leader Three

【基礎知識】SD、SD-Webui及Extension拓展插件簡介

目錄
+++0.SD
+++1.SD-Webui
+++2.Checkpoint
+++3.CLIP、U-Net、VAE
+++4.Textual Inversion Embedding
+++5.Hypernetwork
+++6.Aesthetic Gradient
+++7.LoRA
+++8.LyCORIS (LoCon|LoHa)
+++9.Controlnet
+++10.Wildcards

0.SD
首先,什麽是SD SD是什麽?
SD即Stable Diffusion的簡稱,直譯穩定擴散。
SD是一個模型。但,也不單是一個模型。


說ta不是一個,是因爲,經過SD1.4 SD1.5 SD2.0 SD2.1等等,ta確實不是一個了。
説ta不是模型,因爲別的模型也是按ta的方法和標準來訓練的,此時ta又成了一種方法、標準、模式。
SD不僅是一個模型,ta的概念已經比一個模型更大。即上面的,是又不是。
--比喻--
所以簡單通俗地説,可以把SD比喻成一整套系統。

References參考:
維基:https://en.wikipedia.org/wiki/Stable_Diffusion
Stability AI官網:https://stability.ai/
Stability AI推特:https://twitter.com/stabilityai
Stability AI的Github:https://github.com/Stability-AI/
Stability AI的Huggingface:https://huggingface.co/stabilityai
CompVis官網:https://ommer-lab.com/
CompVis的Github:https://github.com/CompVis
CompVis的Huggingface:https://huggingface.co/CompVis



CompVis-LMU-team
LMU
Ludwig Maximilian University of Munich | 慕尼黑的路德維希馬尅西米連大學
CompVis
Computer Vision & Learning Group | 電腦視覺&學習小組

0.1.SD的優勢
問:爲什麽SD火?
答:因爲開源。



1.SD-Webui
SD上面已解釋。
Webui完整詞形為Web User Interface,也就是網頁用戶界面。
--比喻--
如果以系統來比喻,SD就是Dos,那麽更進一步,SD-Webui就是Windows。
相比於Dos,Windows更直觀,更方便新手使用,你可以用鼠標操作了。(當然,可能還有更直觀的,如ComfyUI等等)
再精確點説:SD是内核,SD-Webui是一層外殼。
你用SD-Webui這個外殼去調用、操作SD這個内核。
這就是經常説的殼與核的概念。

SD-Webui作者的Github:
https://github.com/AUTOMATIC1111

1.1.豆知識-AUTOMATIC1111
AUTOMATIC1111是SD-Webui的作者。
有人叫他1111,有人叫他Automatic。
還有人叫他「胡志明」,因爲他的頭像是胡志明。。。




2.Checkpoint

一開始Checkpoint文件後綴為ckpt,全稱PyTorch Lightning Checkpoint。
取Checkpoint的CK,取PyTorch的PT,合起來就是ckpt。當然PT可能是PyTorch的簡稱,也有可能是PickleTensor的簡稱。
我們可以把Checkpoint直譯為【檢查點】。
或者叫他一開始的後綴名ckpt。
因爲,SD是模型,ckpt也是模型,難免出現歧義。。。要不叫用於模型的模型?我們到底在説啥?
所以我還是傾向於叫英文原名。
也不會混。。。
也有叫主模型、大模型的。
--比喻--
上面以系統來比喻,到這就可以用游戲來比喻了。
如果説SD是Dos,SD-Webui是Windows,那麽就可以認爲Checkpoint是你裝的程序、游戲本體了。
就像你打游戲,你要先裝好系統,再裝游戲,如果感覺游戲還不滿足,還缺點什麽,               可以再裝一些mod。。。。。。

你光有mod不行,你要有游戲本體。
你光有游戲不行,你要有系統。
你光有系統不行,你要有電腦。
你光有電腦不行,你要有電源。
你光有電源不行,你要有電。

2.1.文件格式:PickleTensor和SafeTensor
上面説到了後綴,再另外提一嘴。
也許,有人會問一個問題:爲什麽一開始的後綴都是*.ckpt或*.pt的,現在都是SafeTensor了?
答:因爲PickleTensor不安全。
pt文件格式出過事,運行起來可以做一些超出它能力範圍的事,不安全,作者也不喜歡被嘴、被潑髒水。
所以現在基本上文件都改爲SafeTensor封裝了。
負責任的作者也都上傳了自己以前老作品的SafeTensor版本。

References參考,安全事件:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/4930



3. CLIP、U-Net、VAE(Checkpoint 組成)

3.0.Checkpoint内部主要由3大部件組成:CLIP、U-Net、VAE。
這些組件在融合過程中都可能損壞。
前兩個損壞一點也許無傷大雅,但VAE影響比較大。
可以看到一開始基本上是單獨弄個VAE出來,你自己選擇或者webui自動。如今大部分Checkpoint也都自帶了。  雖然不一定好。
總之,這3大件合起來,就能相對完整生成圖像。

3.1.CLIP (Contrastive Language–Image Pre-training) | 對比語言圖像預訓練。
這個CLIP基於OpenAI的GPT,關連AI文字。
https://openai.com/research/clip
CLIP是一種TE(Text Encoder)文本編碼解碼器。也有其他的。但SD内部常用的就是這個。
通俗的說,這個用來解釋自然語言,翻成機器語言,使AI以ta的方式理解,然後對比到圖像。
CLIP Skip。
簡單解釋就是跳過文本層,跳的越多,生成結果和你輸入的文本提示詞Prompt關係越小。

3.2.U-Net
Convolutional Networks for Biomedical Image Segmentation | 捲積網絡,用於生物醫學圖像分割。
這個確實醫學上早就用了。
Wiki:https://en.wikipedia.org/wiki/U-Net
論文:https://arxiv.org/abs/1505.04597


圖像分割。圖像之間的區別與關係。以及縮小(編碼)放大(解碼)。
再直白點,誰是誰?使AI區分花草樹木,分出來才能放大縮小不至於失真。
U形取自上圖中縮小-放大的過程。

3.3.VAE
Variational AutoEncoder | 變分自動編碼器
wiki:https://en.wikipedia.org/wiki/Variational_autoencoder
這更不好解釋,比喻的話,就是圖像、視頻、音頻的編碼解碼器。
雖然經常有人説vae是顔色。
其實不是。
有光影、紋理、細節,甚至於,如果vae差別大,整個構造形狀都變了。
原理:原圖 → VAE(編碼) → 噪點(高斯噪音)  → VAE(解碼|去噪) → 生成圖。
再比喻,就是拍照。
要先用照相機拍下,再去照相館洗。
真實世界就是原圖,底片就是噪點,洗相片就是解碼,最後給你的照片是生成圖。
我們看SD官方CompVis的例子:
Huggingface:
https://huggingface.co/stabilityai/sd-vae-ft-ema-original
Github:
https://github.com/CompVis/latent-diffusion#pretrained-autoencoding-models



ft-EMA (left), ft-MSE (middle), original (right)。
ft-EMA (左), ft-MSE (中), kl-f8 (右)。
可以看出來,文字的區別很大。
右的老版kl-f8,斷裂、模糊。左的ema不斷裂,但還是模糊。中的mse則比較連貫、清晰。

我個人比較喜歡清晰一點的。保留原味。





下面介紹附加組件,以游戲來比喻,就是mod:
油土鱉 Koiboi:
https://www.youtube.com/watch?v=dVjMiJsuR5o

4.Textual Inversion Embedding
文本嵌入。
Automatic1111的解釋:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Textual-Inversion


很多負面TI用的多。比如EasyNegative、bad-hand-v4 | v5等等。用來修手。
文本嵌入作用於語義層。
直白點解釋:單純在文本上雕花,不加入新的圖像。
比如:一個人已經見過大象和魚了,你給他解釋,海象=大象+魚,他並沒有見過真正的海象,只能把大象+魚縫合在一起。最後出來的也不是現實的海象,只是縫合怪。
對於Checkpoint之中不存在的新概念,效果不是很好。
但對Checkpoint之中已有的概念,刪除或者縫合都可以做到。
所以,可以看到通常情況下,TI文件容量都很小。
因爲TI只在文本上下功夫,用到的都是Checkpoint中已有的概念,且一般只適用於本Checkpoint,到了另一個可能就不好使了。
這也是爲什麽在反向、負面時,TI用的多。
因爲畸形的手、畸形的Jio,畸形的身子,對於大部分模型都是已有的共同的普遍存在的缺點,而我們要的就是AI別再輸出這些。
            


5.Hypernetwork
超網絡。


和LoRA差不多。
區別是,先有一個超網絡模型,再輸出到checkpoint。
沒有LoRA那麽直接。
詳情見下面的LoRA。


6.Aesthetic Gradient
美學梯度。
一種意境。
風格風味。
單從這方面來比,Aesthetic Gradient對比LoRA有優勢,這個更快更小。
Aesthetic Gradient是全面全圖的影響,不是微調。
影響大到能把本身三次元的模型變成二刺螈風味。
效果怎麽樣另説。
對比:

50步。

 0步。
可以看到整個風格都不一樣。
Github:
https://github.com/vicgalle/stable-diffusion-aesthetic-gradients
https://github.com/AUTOMATIC1111/stable-diffusion-webui-aesthetic-gradients
https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/2585
論文:
https://arxiv.org/abs/2209.12330


7.LoRA
蘿拉。


全文Low-Rank Adaptation of Large Language Models,大語言模型的低等級適應。簡稱取自Low-Rank Adaptation。
便於理解的解釋就是:微調。
有時,你並不想改動整個Checkpoint,你只是想微調,加一件衣服,加一個概念,黑色乳頭或者噴奶,其他都不變。
此時,單訓練一個LoRA是省時省力省空間的。
上面已説到TI,和TI不同的是,TI作用於文本,加强AI對於文本之間縫合、文本到圖像的理解。
而LoRA是加入嶄新的東西。
沒見過的東西,很難解釋還原。
比如:如果一個智能本來沒有大象的概念,甚至都沒有動物的概念。那麽解釋起來很費勁,要用已有的概念拼裝縫合。
更簡單直接的方法是:看大象,不論真的親身觀看還是看照片。
LoRA就是做這個的,原來沒有的,新加入進去,做個額外補充。

一開始這是AI文字的拓展,SD沒這個,現在基本上也都是了。
LoRA的另一大優勢就是對顯卡要求低。
Huggingface:
https://huggingface.co/blog/lora
論文:
https://arxiv.org/abs/2106.09685



8.LyCORIS (LoCon|LoHa)
莉可莉絲 ( 蘿康 | 蘿蛤 )。
LyCORIS - Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion.
二刺螈百合厨弄的:
https://github.com/KohakuBlueleaf/LyCORIS
便於理解的解釋就是:LoRA的魔改版。


      不要在乎她的名字了。
      有的歪果仁看了都一頭霧水,一臉懵逼。
      我們二刺螈是這樣的。

用的時候,直接用LoCon這個拓展就行了:
https://github.com/KohakuBlueleaf/a1111-sd-webui-locon


9.Controlnet
控制網絡。
Pose姿勢。
Controlnet和Pose放一起。
直白說,就是玩弄火柴小人,用骨架生成想要人物動作姿勢。



10.Wildcards
野性卡牌×
通配符。
固定一些詞組,給定一個範圍,然後在範圍内選取隨機生成。
====
累了摸了歇了,略過的以後再説

none.gif

f3be67ef

好整理
希望以后DL CV作业中出现LyCORIS

none.gif

对接叠合板fjbd

干货,谢谢好兄弟!打算这次拿AI绘图去参加一下高校设计比赛,正愁不知道从哪里了解入手呢

none.gif

237efe3e

大佬NB~
也谢谢前两天回答的我的疑问贴~

8.gif

c301d025

B4F  2023-04-21 14:20
(啥也不懂的新战士。)
   几句话说明白了 需要这样的技术英雄和技术贴!

none.gif

d72421f9

真强,这么好的普及贴

3a141810


eroskss44


none.gif

63f7dd2b

条理很清晰,技术贴赛高