Stable Diffusion中的embedding

Stable Diffusion中的embedding

嵌入,也稱爲文本反轉,是在 Stable Diffusion 中控制圖像樣式的另一種方法。在這篇文章中,我們將學習什麼是嵌入,在哪裏可以找到它們,以及如何使用它們。

什麼是嵌入embedding?

嵌入(Embedding)是一種在機器學習和人工智能領域中常用的技術,特別是在圖像生成和風格遷移等任務中。文本反轉(Textual Inversion)則是一種特定於圖像生成領域的方法,它允許用戶在不直接修改預訓練模型的情況下,通過定義新的關鍵字來引入新的樣式或對象。

這種方法之所以受到關注,主要是因爲它提供了一種高效且靈活的方式來擴展和定製AI模型的能力。尤其是在樣本圖像數量有限的情況下(例如只有3到5個樣本),文本反轉能夠顯著提高模型的適應性和創造力。通過這種方式,模型能夠學習並模仿特定的風格或特徵,並將其應用到新的圖像生成過程中。

文本反轉是如何工作的?

文本反轉的核心思想是將特定的文本描述與圖像特徵相關聯。這個過程通常包括以下幾個步驟:

  1. 樣本收集:首先,收集一組具有相似風格或包含特定對象的樣本圖像。
  2. 文本描述:爲每個樣本圖像創建一個文本描述,這個描述應該捕捉到圖像的關鍵特徵或風格。
  3. 嵌入訓練:使用這些文本描述和對應的樣本圖像來訓練一個嵌入模型。這個模型將學習如何將文本描述映射到圖像特徵上。
  4. 應用嵌入:一旦嵌入模型訓練完成,就可以將其應用於新的圖像生成任務中。當模型接收到一個與訓練時相似的文本描述時,它能夠生成具有相應特徵或風格的圖像。

嵌入的優勢

嵌入技術的優勢在於其靈活性和高效性。通過文本反轉,用戶可以在不改變原有模型結構的前提下,快速地引入新的風格或對象。這種方法特別適用於以下場景:

  • 快速原型設計:設計師和藝術家可以迅速嘗試不同的風格和概念,而無需從頭開始訓練複雜的模型。
  • 個性化定製:用戶可以根據自己的喜好和需求,定製獨特的圖像風格或對象。
  • 數據稀缺情況:即使在樣本數量有限的情況下,也能夠有效地訓練模型,使其學習到新的樣式或特徵。

總的來說,嵌入和文本反轉爲圖像生成領域提供了一種創新的方法,使得AI模型更加靈活和易於使用。通過這種方式,我們可以更好地利用現有的AI資源,創造出更加多樣化和個性化的視覺內容。

下面轉載的原始研究文章中的圖表說明了它是如何工作的。

嵌入如何工作

在使用穩定擴散AI模型進行圖像生成時,引入新的對象或樣式是一個常見的需求。爲了實現這一點,文本反轉(Textual Inversion)提供了一種有效的方法,允許我們在不修改模型本身的情況下,通過定義新的關鍵字來實現這一目標。下面是詳細的步驟說明:

定義新的關鍵字

  1. 選擇或創建新關鍵字:首先,你需要爲想要添加到模型中的新對象或樣式選擇或創造一個獨特的關鍵字。這個關鍵字應該是描述性的,能夠清晰地表達你想要引入的新元素。
  2. 標記化:在模型中,所有的文本提示都是通過標記化(Tokenization)過程被轉換成數字形式的。這個過程將文本中的每個單詞或符號轉換成對應的數字標記。對於你定義的新關鍵字,它也會被轉換成一個唯一的數字標記。

生成嵌入向量

  1. 嵌入向量生成:每個標記(包括新關鍵字的標記)都會被進一步轉換爲嵌入向量。嵌入向量是高維空間中的點,它能夠捕捉和表示文本的語義信息。在這個過程中,新關鍵字會被賦予一個獨特的嵌入向量。
  2. 文本反轉過程:文本反轉技術的核心在於,它允許我們通過嵌入向量來查找和表示新關鍵字,而無需更改模型的任何其他部分。這意味着,即使模型在訓練時沒有直接接觸過新關鍵字,它也能夠通過嵌入向量來理解和生成與新關鍵字相關的圖像內容。

應用新關鍵字

  1. 在提示中使用新關鍵字:在生成圖像時,你可以在文本提示中包含新關鍵字。由於新關鍵字已經被標記化並轉換成了嵌入向量,模型能夠識別並將其作爲生成圖像的依據。
  2. 生成圖像:當模型接收到包含新關鍵字的提示時,它會查找與該關鍵字對應的嵌入向量,並使用這個向量來生成圖像。這個過程就像是在語言模型中引入了一種新的語言元素,使得模型能夠理解和創造出新的概念。

通過這種方式,文本反轉爲我們提供了一種強大的工具,使得我們能夠在不改變模型結構的前提下,靈活地引入新的對象或樣式,極大地擴展了圖像生成的可能性。這種方法不僅提高了模型的適應性和靈活性,也爲藝術家和設計師提供了更多的創作自由。

在哪裏可以找到embedding

下載embedding的首選位置是 Civitai

我們在C站的右上角可以有一個filter選項:

image-20240410202950803

在filter中選擇model types= embedding就可以找到對應的embedding了。

如何使用embedding

在 AUTOMATIC1111 中使用embedding很容易。

首先,從 Civitai 網站下載好embedding文件。下載下來的embedding文件通常是bin或者pt結尾的。

你需要把這些embedding文件放到Stable diffusion webUI根目錄下面的embeddings文件夾,然後重啓Stable diffusion webUI即可。

image-20240410203444596

在webUI界面,你可以在Textual Inversion中找到你安裝好的embedding。

要使用他,只需要點擊對應的embedding, webUI會自動把對應的embedding添加到提示詞中去。比如:

a girl,0lg4kury,

這裏0lg4kury就是我安裝的第一個embedding的名字。點擊生成,看看效果:

image-20240410203743127

可以看到人物還是很相似的。

這裏我用了多種採樣方法來進行最終圖片的對比。

調整embedding的強度

之前聽過我的prompt文章的朋友應該知道我們可以調整提示詞強度的。

因爲embedding同樣也是提示詞的一部分,所以我們也可以用同樣的方式來調整embedding的強度。

image-20240410204235359

neg embedding

有了正面的embedding,同樣也有負面的embedding,下面是幾個常用的負面embedding:

image-20240410204615881image-20240410204630100image-20240410204648089

embedding、dreambooth 和hypernetwork的區別

文本反轉(Textual Inversion)、Dreambooth 和超網絡 是三種不同的技術,它們都可以用於微調Stable Diffusion模型,但各自有不同的特點和應用場景。

  1. 文本反轉(Textual Inversion)
    • 文本反轉是一種通過少量樣本圖像來訓練模型的方法,它允許用戶定義新的關鍵字來描述特定的對象或風格。
    • 這種方法不需要更改模型的結構,而是通過嵌入向量來實現新關鍵字的添加。
    • 嵌入向量存儲在相對較小的文件中(通常小於100 kB),這使得它們易於存儲和傳輸。
    • 文本反轉適合於快速添加新概念到模型中,但可能不如其他方法那樣靈活或強大。
  2. Dreambooth
    • Dreambooth是一種基於深度學習的圖像風格轉換技術,它使用少量圖像來訓練模型。
    • 它特別適合於生成高質量藝術作品,而無需用戶具備專業藝術技能。
    • Dreambooth通過微調模型的權重來實現特定主題的生成,這可能導致模型過度擬合訓練數據。
    • 它生成的模型文件相對較大(2-4GB),並且在使用時需要加載模型。
  3. 超網絡(Hypernetwork)
    • 超網絡是一種使用神經網絡來生成模型參數的方法。
    • 它通過在原有模型的基礎上添加一個附加網絡來實現微調,這個附加網絡可以學習新的生成特徵。
    • 超網絡生成的模型文件大小介於文本反轉和Dreambooth之間(大約幾十MB),這使得它在存儲和傳輸方面比較平衡。
    • 超網絡適合於生成近似內容圖像,如果訓練數據與目標風格高度相關,那麼超網絡是一個不錯的選擇。

總的來說,文本反轉、Dreambooth和超網絡各有優勢和適用場景。文本反轉適合快速添加新概念,Dreambooth適合個性化的高質量圖像生成,而超網絡則提供了一種在保留原有模型結構的同時進行微調的中間方案。用戶可以根據自己的需求和資源限制來選擇最合適的方法。

點我查看更多精彩內容:www.flydean.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章