文字的力量
我們在提示中使用的詞語稱為標記(tokens)。每個標記都有其自身的力量,這取決於它在用於訓練AI的數據集中的出現頻率。我們稍後會深入技術細節,但首先我們將專注於如何實際思考標記。
讓我們看一個例子:我提示了“1girl wearing white oversized coat with >< and outstretched arms”。如果每個詞都是一個標記,我們有11個標記。
(當在BetterWaifu中輸入此提示時,您會注意到標記計數顯示13。這是因為<start>和<end>標記是由AI在背後添加的。更多內容在下一部分。)
像“with”、“for”、“at”、“in”這樣的介詞,以及像“and”、“a”、“to”這樣的助詞都算作標記。因此,它們也有力量並影響圖像。
讓我們試試同樣的提示,但不使用任何助詞或介詞:“1girl, white oversized coat, ><, outstretched arms”。逗號也算作標記,因此我們仍然有11個標記,加上開始和結束標記則為13。結果非常不同:
我更喜歡這個結果,因為看起來對外套的注意力更多。逗號標記用來區分不同的概念。
現在,雖然使用逗號分隔的標籤是我在BetterWaifu上提示的推薦方法,但這並不意味著去掉所有介詞和助詞總是會使結果更好。有時,使用介詞來指示相對位置是很重要的。
這裡有一個簡單的例子,說明了介詞如何改變結果:
1girl, airplane, white oversized coat, ><, outstretched arms
1girl inside airplane, white oversized coat, ><, outstretched arms
除了標記的固有力量之外,它在提示中的位置也有權重。開頭的標記比結尾的標記權重更大。理解這一點很重要,因為在提示結尾的弱標記可能對圖像沒有影響。相反,開頭的強標記可以完全決定結果。
要控制標記的力量,您可以使用構造(token:1.0),其中數字表示標記的力量。0 - 無影響,1 - 正常權重。我通常不會超過1.5。嘗試不同的力量值可以幫助您微調對提示中標記的控制水平。
技術解釋
標記化是處理AI生成文本數據的常見方法。我們用它將文本轉換為數字並通過神經網絡進行處理。
穩定擴散(Stable Diffusion)將文本提示標記化為一系列標記。例如,它將文本提示“可愛且迷人的兔子”拆分為標記a、cute、and、adorable和bunny。然後穩定擴散在標記的開頭和結尾添加<start>和<end>標記。
上述示例的結果標記序列將是<start>、a、cute、and、adorable、bunny和<end>(7個標記)。
為了便於計算,穩定擴散保持任何文本提示的標記序列長度為77,通過填充或截斷來實現。如果輸入提示少於77個標記,則在背後會添加<end>標記,直到序列達到77個標記。
77的長度是為了平衡性能和計算效率。如果使用超過77個標記,不同的軟件會有不同的行為:
- 保留前77個標記,其餘標記被刪除。
- 整個提示被分成75個標記的塊,添加開始和結束標記,然後按順序處理每個塊。這是BetterWaifu使用的方法。