煒哥的AI學(xué)習(xí)筆記——One Button Prompt 插件學(xué)習(xí)
在實(shí)際業(yè)務(wù)過程中,經(jīng)常會(huì)用到一些 SD 的插件,這里做一個(gè)收集記錄。
會(huì)持續(xù)更新,首發(fā) xuweinan.com 和 bilibili。
One Button Prompt
簡(jiǎn)介
用于模型煉制收尾階段,測(cè)試模型是否能在訓(xùn)練集之外的類型圖片中獲得較好的泛化效果。
官方說明
One Button Prompt is a tool/script for automatic1111 for beginners who have problems writing a good prompt, or advanced users who want to get inspired.
It generates an entire prompt from scratch. It is random, but controlled. You simply load up the script and press generate, and let it surprise you.

簡(jiǎn)單來說這就是一個(gè)隨機(jī) Prompt 生成工具,但是提供了一些精細(xì)化的選項(xiàng)方便用戶去控制 Prompt 的生成。
界面介紹
通過底部的 Script 啟用。
啟用后界面效果如下:

Main 標(biāo)簽
Main 標(biāo)簽集成了主要功能
基礎(chǔ)部分
1. Prompt complexity
決定了生成的 Prompt 的復(fù)雜程度和隨機(jī)程度,作者在他的例子中設(shè)置為了 5 。
2. Subject Types
生成物體的類型,比如 humanoid 就是指生成人類或人形的圖片。
3. Artists
作者從 CivitAI 中選擇了一系列受歡迎的藝術(shù)家風(fēng)格,可以選擇和生成圖片目標(biāo)相近的風(fēng)格。
當(dāng)然我這里因?yàn)樾枰?yàn)證我訓(xùn)練的畫風(fēng) Lora ,不想 Prompt 對(duì)生成圖像的畫風(fēng)污染,所以選擇了 none
4. type of image
這里選擇生成圖片的類型,例如 Photograph、Digital Art、Painting。有助于生成的圖像更接近于真實(shí)的效果。
同樣的,我的畫風(fēng) Lora 更接近于繪畫效果,因此選擇了 Painting
覆寫選項(xiàng)
作者在說明文檔中也提到了這是 "是體驗(yàn)這個(gè)插件的最強(qiáng)大的方式"。
This will allow you to explore infinite variants of a subject of your own choice.
This also creates the option of adding a subject that requires a LoRA.
5. Overwrite Subject
最好先在之前的 Subject Types 中設(shè)置需要生成的物體類別,然后再在這里設(shè)置新的物體,這樣根據(jù) Subject Types 生成一系列 Prompts 時(shí)會(huì)優(yōu)先生成設(shè)置好的物體。
6. Smart Subject
默認(rèn)是勾選的,會(huì)嘗試?yán)斫饽銊偛旁O(shè)置的 subject ,然后調(diào)整自動(dòng)生成的其他 Prompt。
作者舉了一個(gè)例子,比如將 subject 設(shè)置成“Obese man wearing a kimono”,那么在這個(gè)選項(xiàng)勾選后,比如對(duì)于 Obese 這個(gè)詞語,插件理解它是一個(gè)體型相關(guān)的關(guān)鍵詞,就不會(huì)再生成生成其他和體型相關(guān)的關(guān)鍵詞了。所以作者推薦一定打開。
7. Overwrite type of image
和 Overwrite Subject 差不多,不過這次是為了覆寫圖片的類型。
官方文檔中作者舉了一些非常詳盡的例子用于解釋這幾個(gè)選項(xiàng)的作用。這個(gè)功能設(shè)置可以用于和特定的 Lora 配合。如果看完此處的介紹仍然有困惑建議查詢官方文檔。
Prompt 字段處理
這塊理解起來就更簡(jiǎn)單了,就是對(duì)于生成的 Prompt 的進(jìn)一步處理。
8. Place this in front of generated prompt (prefix)
在生成的 Prompts 前面加上什么。
9. Place this in front of generated prompt (suffix)
在生成的 Prompts 后面加上什么。
10. Use this negative prompt
加上統(tǒng)一的負(fù)面提示詞
后續(xù)在具體的使用中我有一些疑問,例如如果是 Lora 的觸發(fā)詞,應(yīng)該寫在 Overwrite Subject 中還是字段處理的 prefix 中。后來看到官方文檔中有一個(gè)例子很好的解答了我的疑問。
官方例子是一個(gè)星際迷航的人物 Lora ,gul dukat。觸發(fā)詞是“sdn”,然后 Overwrite Subject 是 “gul dukat wearing cardassian uniform“ 。因?yàn)橛|發(fā)詞是自己造的詞語,因此插件無法理解,所以寫在 Overwrite Subject 實(shí)際上沒有意義。當(dāng)然如果觸發(fā)詞包含一些常見的詞語,比如我們假設(shè)觸發(fā)詞是 ”sdn a handsome man“,這樣最好還是寫在 Overwrite Subject 中,因?yàn)?Smart Subject 會(huì)自動(dòng)排除掉 handsome\man 同類型的詞語。
如果理解不了的話就老老實(shí)實(shí)照官方例子來,在 Overwrite Subject 中描述想要的特定畫面內(nèi)容,prefix 中寫關(guān)鍵詞,suffix 中寫 lora 以及其他的一些東西.
附加選項(xiàng)
11. 不想要的詞語
在自動(dòng)生成的 Prompt 中不希望出現(xiàn)的詞語。可以在\OneButtonPrompt\userfiles\插件目錄下新增一個(gè) antilist.csv 文件來永久保存這些詞語。
Workflow assist 標(biāo)簽
插件提供了一個(gè) Workflow mode,通過這個(gè)標(biāo)簽啟用。啟用后停止自動(dòng) Prompt 生成圖片的功能,轉(zhuǎn)而使用 Wrrkflow prompt 輸入框中的 Prompt 進(jìn)行圖片生成。

簡(jiǎn)單來說就是根據(jù) Main 標(biāo)簽中設(shè)置的規(guī)則,自動(dòng)生成五條 Prompt ,可以先看效果,適當(dāng)調(diào)整,然后使用”Send prompt up“快速把 Prompt 發(fā)送到上面的 Workflow prompt 中進(jìn)行生成。方便對(duì)比不同 Prompt 的效果。
Advanced 標(biāo)簽
一般來說是創(chuàng)建一組隨機(jī)提示,通過調(diào)整 Prompt 數(shù)值,可以生成多組提示并合并在一起。

作者是建議可以試試 2。
同時(shí)還可以設(shè)置不同組之間的分隔方式,默認(rèn)是逗號(hào)。
后面的 Prompt seperator mode 選項(xiàng)是搭配另一個(gè)插件 Latent Couple 用的,暫時(shí)不展開了,后面如果用到那個(gè)插件再深入講。
One Button Run and Upscale 標(biāo)簽

先看官方介紹:

粗略看了一下,這個(gè)功能是在 WebUI API 啟動(dòng)的情況下才使用到的,用來提升現(xiàn)有圖片的質(zhì)量。因?yàn)闀簳r(shí)用不到就不詳細(xì)了解了。
參考資料
My first generation: https://github.com/AIrjen/OneButtonPrompt/blob/main/user_guides/my_first_generation.md
Override subject and how to create infinite variations of a set subject: https://github.com/AIrjen/OneButtonPrompt/blob/main/user_guides/override_subject_and_infinite_variations.md
One Button Run and Upscale: https://github.com/AIrjen/OneButtonPrompt/blob/main/user_guides/one_button_run_and_upscale.md#one-button-run-and-upscale