提示條件
提示條件是把你打出的字句變成擴散模型可用之控制訊號的整條流程。它比交叉注意力(注入機制)更寬廣——它從你寫下提示詞那一刻就開始,涵蓋文字如何被切成 token、編碼成嵌入並送入模型,再加上「寫出能得到你想要的東西之提示詞」這門實用技藝。條件正是把一個無條件的「生成任何合理影像」模型,轉變成一個可控的「生成這個特定東西」模型的關鍵。
機制上,提示詞被切成 token(子詞片段),並通過一個凍結的文字編碼器——Stable Diffusion 1.x 中是 CLIP 的文字 Transformer,SD2 中是 OpenCLIP,SDXL 中常是兩個編碼器,而在 Imagen 等系統中則是像 T5 這樣的大型語言模型。編碼器輸出一串嵌入向量(例如對應 CLIP 固定脈絡長度的 77 個向量),用以總結提示詞的語意。這些嵌入為去雜訊器提供條件,通常透過交叉注意力。由於模型被訓練去把字幕與影像關聯起來,未見過之提示詞的嵌入能有意義地組合——這就是為什麼「一個由玻璃水母做成的茶壺」這類新穎組合可能成功。
一個關鍵且廣泛使用的延伸是負面提示(negative prompt):第二段描述你「不要」什麼的提示詞,被接入無分類器引導的無條件分支,取代空嵌入。引導於是一邊推離負面提示、一邊推向正面提示——例如用「模糊、多餘的手指、浮水印」作為負面提示來抑制常見瑕疵。把提示設計當成一門技藝(語序、強調權重、風格 token、負面提示)之所以存在,是因為條件雖強大卻很鈍:模型關注的是嵌入中顯著的部分,所以你強調什麼、如何措辭,會實質地改變結果。
兩個陷阱。第一,固定長度的編碼器(CLIP 的 77 個 token)會無聲地截斷過長的提示詞,超出上限的字就被忽略——把重要的東西放在前面。第二,負面提示只有在無分類器引導開啟時(w > 1)才有效;在引導強度為 1 時,沒有可供推離的無條件分支,因此負面提示毫無作用。