Stable-diffusion 詞組寫法
生成參數(shù)
生成圖像時輸入?yún)?shù)的名稱因接口而異,但它們通常做同樣的事情。以下是參數(shù)作用的簡要說明:
提示:您要生成的內(nèi)容的文本描述。
負面提示:對圖像中不想要的東西的文字描述。
采樣步驟:擴散模型通過從隨機高斯噪聲到適合提示的圖像進行小步驟來工作。這是應該完成多少個這樣的步驟。更多的步驟意味著從噪聲到圖像的更小、更精確的步驟。增加這個會直接增加生成圖像所需的時間。收益遞減,取決于采樣器。
采樣方法:使用哪個采樣器。Euler a(祖先的縮寫)以較少的步數(shù)產(chǎn)生多種變化,但很難進行小的調(diào)整。隨著步數(shù)的增加,非祖先采樣器都會產(chǎn)生大部分相同的圖像,如果您不確定,請使用 LMS。
ddim_eta:使用 DDIM 時的隨機數(shù)。
Batch count/n_iter:生成一組圖像的頻率。
批量大?。和瑫r生成多少張圖片。增加此值可以提高性能,但您還需要更多 VRAM。圖像總數(shù)乘以批數(shù)。
CFG Scale(無分類指導量表):圖像與您的提示匹配的程度。增加此值將導致圖像更接近您的提示(根據(jù)模型),但在某個點之后也會降低圖像質(zhì)量??梢酝ㄟ^更多的采樣步驟來抵消。
寬度:單個圖像的寬度(以像素為單位)。要增加此值,您需要更多 VRAM。隨著分辨率的增加,大尺度上的圖像連貫性(模型在 512x512 上訓練)變得更糟。非常小的值(例如 256 像素)也會降低圖像質(zhì)量。
高度:與寬度相同,但用于單個圖像高度。
種子:RNG 的起點。保持相同以多次生成相同(或幾乎相同)的圖像。沒有種子天生就比其他種子更好,但是如果您改變輸入?yún)?shù),只需稍微改變之前產(chǎn)生良好結果的種子可能仍會產(chǎn)生良好結果。
創(chuàng)建更好的提示并獲得更好的結果的指南。

提示設計/一般提示
期待什么
即使您做對了所有事情,您生成的圖像也不會完美。關于人們在互聯(lián)網(wǎng)上發(fā)布的圖像,要記住的重要一點是,您看不到圖像的處理過程。很多時候,人們只是為給定的提示生成數(shù)百張圖片,然后只發(fā)布最好的圖片;當你可以讓你的電腦在你睡覺的時候生成一堆圖像時,你為什么不呢?
人們在互聯(lián)網(wǎng)上發(fā)布的圖像也可能經(jīng)過編輯以修復缺陷。這可以使用 Stable Diffusion img2img 工具或傳統(tǒng)的圖像編輯軟件(如 GIMP 或 Photoshop)來完成。在任何一種情況下,都需要一些手動努力和技巧才能獲得良好的結果。
寫什么
寫下可能伴隨您想要的圖像的文字。通常這意味著文本應該簡單地描述圖像。但這只是過程的一半,因為描述不僅取決于圖像,還取決于編寫描述的人。
想象一下,你是中國人,不得不描述一個人的形象。您選擇的詞可能不再是“人”,因為您的母語是中文,而這不是您用中文描述一個人的方式。您甚至不會使用拉丁字符來描述圖像,因為中文書寫系統(tǒng)完全不同。同時,您可能會看到的人的圖像將完全不同;如果您是中國人,您將主要看到其他中國人的圖像。通過這種方式,語言,說某事的方式,與圖像的內(nèi)容相關聯(lián)。理論上描述同一事物的兩個術語可能與非常不同的圖像相關聯(lián),并且在這些圖像上訓練的任何模型都將隱含地學習這些關聯(lián)。這是非常典型的自然語言,其中有許多具有非常不同細微差別的同義詞;只需考慮“糞便”和“糞便”是非常不同的術語,即使它們在技術上描述的是同一件事。
TLDR:在選擇提示時,不僅要考慮圖像中的內(nèi)容,還要考慮誰會說這樣的話。
提示長度
具有描述性。如果你給它更長、更詳細的描述你想要的東西,這個模型會做得更好。對您關心的提示部分使用冗余描述。
但是請注意,提示的長度存在硬性限制。某個點之后的所有內(nèi)容 - 75 或 76 個 CLIP 代幣,取決于您的計數(shù)方式 - 都被簡單地切斷了。因此,最好使用簡明扼要地描述您想要的內(nèi)容的關鍵字,并避免使用與您想要的圖像無關的關鍵字。使用 unicode 字符(例如日文字符)的單詞比使用 ASCII 字符的單詞需要更多的標記。
標點
用它。用逗號、句點甚至空字符 ("\0") 分隔關鍵字可以提高圖像質(zhì)量。目前尚不清楚哪種標點符號或哪種組合最有效——如果有疑問,只需以使提示對您更具可讀性的方式進行即可。
注意/重點
注意力有很多混淆,這意味著增加或減少提示特定部分的權重的方法。有人斷言,將關鍵字放在圓括號中會增加效果,而將關鍵字放在方括號中會降低效果;據(jù)說使用更多的括號會導致更大的變化。但是,其他人經(jīng)常無法在自己的提示中重現(xiàn)這種效果。
事實證明,差異的原因是不同的腳本處理括號的方式不同。?例如,這個webui的 fork 顯式處理括號,而?這個 fork只會獲得模型從訓練數(shù)據(jù)中隱式學習的括號的效果(而是使用不同的語法)。出于這個原因:確保檢查您從其他人那里復制的提示的語法是否與您使用的腳本的語法相匹配。?在定量分析中,方括號沒有一致的效果,除非明確處理。
無論正在使用的特定腳本如何,重復某個關鍵字似乎都會增加其效果。
特異性
該模型本質(zhì)上已經(jīng)學習了以特定提示為條件的圖像分布。對于神經(jīng)網(wǎng)絡的訓練,特征的質(zhì)量很重要:輸入和輸出之間的連接越強,神經(jīng)網(wǎng)絡就越容易學習連接。換句話說,如果關鍵字具有非常具體的含義,那么學習它如何連接到圖像要比關鍵字具有非常廣泛的含義要容易得多。這樣,即使是很少使用的關鍵字,如“Zettai Ryouiki”,也可以產(chǎn)生非常好的結果,因為它只在非常特定的情況下使用。另一方面,“動漫”雖然是一個相對常見的詞,但并沒有產(chǎn)生很好的效果,大概是因為即使沒有文字動漫,它也被用于許多不同的情況。
如果您想控制圖像的內(nèi)容,選擇特定的關鍵字尤其重要。另外:你的措辭越不抽象越好。如果可能的話,避免使用留下解釋空間或需要“理解”不屬于圖像一部分的內(nèi)容的措辭。甚至像“大”或“小”這樣的概念也是有問題的,因為它們與靠近或遠離相機的物體無法區(qū)分。理想情況下,使用很可能逐字出現(xiàn)在您想要的圖像標題上的措辭。
運動和姿勢
如果可能,請選擇僅與少量姿勢相關聯(lián)的提示。在這種情況下,姿勢意味著某物的物理配置:圖像主體相對于相機的位置和旋轉(zhuǎn)、人/機器人關節(jié)的角度、果凍塊被壓縮的方式等。方差越小在您嘗試指定的東西中,模型學習起來越容易。因為根據(jù)其定義,運動涉及主體姿勢的巨大變化,與運動相關的提示經(jīng)常導致身體恐懼,如重復的肢體。還因為人類的四肢,尤其是人類的手和腳有很多關節(jié),它們可以呈現(xiàn)許多不同的復雜姿勢。這使得它們的可視化特別難以學習,對于人類和神經(jīng)網(wǎng)絡來說都是如此。
TLDR:人站/坐的好形象很容易,人跳/跑的好形象很難。
高度和寬度/截止頭
默認分辨率為 512x512 的提示“跑道模型”的非精選樣本。頭部大多不在框架內(nèi)。
提示“跑道模型”的非精選樣本,分辨率為 448x832(7:13 縱橫比)。頭部大多在框架中。
使用穩(wěn)定擴散生成的人類圖像經(jīng)常會出現(xiàn)對象的頭部超出框架的問題。原因是訓練數(shù)據(jù)被裁剪成方形圖像;如果圖像高度大于圖像寬度,這通常會切斷人的頭部和腳部。極其簡單的提示“跑道模型”就是一個很好的例子。與此提示相關的圖像幾乎都是人像模式,由專業(yè)攝影師拍攝。作為專業(yè)人士,攝影師知道如何正確地構圖他們的主題,使主題在框架中,但不會在頂部和底部浪費太多空間 - 這正是為什么始終切斷此類照片的頂部和底部的原因去除頭和腳。
一個解決頭部截斷的方法是改變生成圖像的縱橫比:如果圖像高度增加,圖像會延伸到它們的典型邊界之外,并且更有可能生成頭部和腳部。請注意“可能”一詞的用法:因為圖像在底部或頂部延伸基本上是隨機的,因此您最終可能會得到頭部仍然被切斷但在主體腳下有很多空間的圖像。
提示“跑道模型”的一些細節(jié)(記住有限的樣本量):
對象的頭部寬度為 448 像素,大部分位于框架中,高度為 704 像素。圖像連貫性在 896 像素的高度開始下降。
對象的頭部寬度為 512 像素,大部分位于框架中,高度為 768 像素。圖像連貫性在 832 像素的高度開始下降。
與僅增加兩者之一相比,同時增加圖像寬度和高度會大大降低圖像的連貫性。
各種各樣的
Unicode 字符(例如日文字符)有效。
大小寫無關緊要。
至少一些作為拉丁字符替代版本的 Unicode 字符被映射到常規(guī)拉丁字符。確認在日語中使用的全角拉丁字符(例如 ABC)已被轉(zhuǎn)換。法語口音(例如 é 和 è)和德語變音符號(例如 ? 和 ?)沒有映射到它們的常規(guī)對應物。
提示符開頭和結尾的多余空格將被簡單地丟棄。單詞之間的額外空格也會被丟棄。
下劃線(“_”)不會轉(zhuǎn)換為空格。
Waifu Diffusion
用于演示 Danbooru 配方的示例提示的非精選樣本。
Waifu Diffusion 微調(diào)是在Danbooru圖像上訓練的。構建提示的最佳方法尚不清楚,但一個好的起點是使用與微調(diào)訓練數(shù)據(jù)相同的方法:
選擇一個或多個版權標簽,即指定圖像主題來自哪個動漫/漫畫/游戲的標簽。對原創(chuàng)內(nèi)容使用“原創(chuàng)”。
如果適用,選擇字符標簽,意思是指定 SD 應生成的字符的標簽。
選擇一般標簽,即描述圖像內(nèi)容和風格的常規(guī)標簽。不要使用諸如“highres”之類的元標記,因為這些沒有在訓練中使用。
選擇藝術家標簽,意思是指定要模仿的藝術家風格的標簽。
按字母順序?qū)ι鲜雒總€類別中的標簽進行排序(字母前的數(shù)字,與 Danbooru 上的順序相同)。
用下劃線替換標簽內(nèi)的空格。
通過附加每個類別的標簽來構建提示,用空格分隔(沒有逗號或句點)。首先放置版權標簽,然后是角色標簽,然后是一般標簽,然后是藝術家標簽。
基于此圖的示例提示:
kono_subarashii_sekai_ni_shukufuku_wo! megumin 1girl ^_^ backlighting blush brown_hair cape closed_eyes collar facing_viewer fingerless_gloves flat_chest gloves hat lens_flare short_hair short_hair_with_long_locks smile solo staff sunset witch_hat dacchi