Textual Inversion:三五張圖讓StableDiffusion換畫風(fēng)

參考:How to use embeddings in Stable Diffusion

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

為了得到新概念s*的embedding v*,需要使用了 3~5 張具有不同的背景或姿態(tài)的圖像,通過最小化圖像重建損失進行優(yōu)化(類似Latent Diffusion Model的訓(xùn)練)。
L_{LDM} := \mathbb{E}_{z\sim\mathcal{E}(x), y, \epsilon \sim \mathcal{N}(0, 1), t }\Big[ \Vert \epsilon - \epsilon_\theta(z_{t},t, c_\theta(y)) \Vert_{2}^{2}\Big]

2. 到哪里找現(xiàn)成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)格的圖了。
    注意
    1. prompt中的關(guān)鍵字錯一個字符就會讓Embedding失效
    2. SD v1和v2的Embedding是不互通的
    3. 可以用(keyword:weight)的形式控制關(guān)鍵詞強度(詳見各種prompt技巧),關(guān)鍵詞強度可以是負值(等同于方括號[unwated objects])。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容