Embedding指的是Textual Inversion(TI)的結(jié)果,能用于讓Stable Diffusion(SD)繪制新物體,或是新畫風(fēng)(畫風(fēng)相較于HyperNetwork學(xué)習(xí)能力較差。
1. Embedding是什么
Embedding指的是TI的結(jié)果。TI能在不修改模型的情況下給模型定義新的關(guān)鍵詞。它吸引人的點在于:只用三五張圖片就能夠給模型“注入”新風(fēng)格、新物體。
1.1 Textual Inversion為什么有效
讓SD畫出新物體或者新風(fēng)格,這其他微調(diào)方法也能做到。TI的驚人之處在于它在不修改模型的情況下做到這點。論文中對TI的工作流程圖示如下。

通過textual inversion為新token S*找到新embedding
給新物體/畫風(fēng)定義模型中沒出現(xiàn)過的新關(guān)鍵詞。就像prompt中的其他關(guān)鍵字一樣,這個新關(guān)鍵字會被轉(zhuǎn)化為token(數(shù)值)。每個token會被轉(zhuǎn)換為唯一的embedding,以用于圖像生成。
TI能用已知的詞匯貼切地描述一個新概念,找到最能代表新關(guān)鍵字的embedding,而無需更改模型的任何部分。
1.2 Embedding的舉例:
告訴模型什么是“toy cat”

利用已知的boat、backpack等概念描述toy cat
1.3 怎么得到新Embedding(還沒看完)
詳見paper。
為了得到新概念的embedding
,需要使用了 3~5 張具有不同的背景或姿態(tài)的圖像,通過最小化圖像重建損失進行優(yōu)化(類似Latent Diffusion Model的訓(xùn)練)。
2. 到哪里找現(xiàn)成Embedding
- HuggingFace的Stable Diffusion Concept Library中有大量自定義關(guān)鍵詞的Embedding。
- Civtai上搜textual inversion也能找到Embedding。
3. 如何使用Embedding
-
在線接口
Stable Diffusion Conceptualizer :無需下載,就能試用Embedding
(這里的Embedding不能在別的模型上用) -
在stable-diffusion-webui中使用
從 Concept Library下載Embedding并重命名為關(guān)鍵字(例如,marc_allante一種畫風(fēng)),放在stable-diffusion-webui/embeddings文件夾。
重啟會看到Loaded a total of 1 textual inversion embeddings.
prompt中添上(marc_allante:1.2)就能繪制該風(fēng)格的圖了。
注意:- prompt中的關(guān)鍵字錯一個字符就會讓Embedding失效
- SD v1和v2的Embedding是不互通的
- 可以用
(keyword:weight)的形式控制關(guān)鍵詞強度(詳見各種prompt技巧),關(guān)鍵詞強度可以是負值(等同于方括號[unwated objects])。