Stable Diffusion中的embedding

flydean發表於2024-04-25

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

相關文章