本文主要介紹Stable Diffusion WebUI的實際操作方法,涵蓋prompt推導、lora模型、vae模型和controlNet應用等內容,并給出了可操作的文生圖、圖生圖實戰示例。適合對Stable Diffusion感興趣,但又對Stable Diffusion WebUI使用感到困惑的同學,希望通過本文能夠降低大家對Stable Diffusion WebUI的學習成本,更快速的體驗到AIGC圖像生成的魅力。
引言
Stable Diffusion (簡稱sd)是一個深度學習的文本到圖像生成模型, Stable Diffusion WebUI是對Stable Diffusion模型進行封裝,提供可操作界面的工具軟件。Stable Diffusion WebUI上加載的模型,是在Stable Diffusion 基座模型基礎上,為了獲得在某種風格上的更高質量的生成效果,而進行再次訓練后產生的模型。目前 Stable Diffusion ?1.5版本是社區內最盛行的基座模型。
???安裝
sd web-ui的安裝請參考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-NVidia-GPUs
sd web-ui使用了gradio組件包,gradio在配置share=True時,會創建frpc隧道并鏈接到aws,詳情可參考(https://www.gradio.app/guides/sharing-your-app),因此在sd web-ui應用啟動時,請根據自身安全生產或隱私保護要求,考慮是否禁止開啟share=True配置,或刪除frpc客戶端。
???模型
https://civitai.com/是一個開源的sd模型社區,提供了豐富的模型免費下載和使用。在此簡述一下模型的分類,有助于提高對sd web-ui的使用。sd模型訓練方法主要分為四類:Dreambooth, LoRA,Textual Inversion,Hypernetwork。
Dreambooth:在sd基座模型的基礎上,通過 Dreambooth 訓練方式得到的大模型, 是一個完整的新模型,訓練速度較慢,生成模型文件較大,一般幾個G,模型文件格式為 safetensors 或 ckpt。特點是出圖效果好,在某些藝術風格上有明顯的提升。如下圖所示,sd web-ui中該類模型可以在這里進行選擇。
LoRA: 一種輕量化的模型微調訓練方法,在原有大模型的基礎上對該模型進行微調,用于輸出固定特征的人或事物。特點是對于特定風格的圖產出效果好,訓練速度快,模型文件小,一般幾十到一百多 MB,不能獨立使用,需要搭配原有大模型一起使用。sd web-ui提供了lora模型插件,以及使用lora模型的方式,具體操作可見本文的 "操作流程->lora模型" 。
Textual Inversion:一種使用文本提示和對應的風格圖片來微調訓練模型的方法,文本提示一般為特殊的單詞,模型訓練完成后,可以在text prompts中使用這些單詞,來實現對模型生成圖片風格和細節的控制,需要搭配原有的大模型一起使用。
Hypernetwork:與LoRA類似的微調訓練大模型的方法,需要搭配原有的大模型一起使用。
操作流程
???prompt推導
在sd中上傳一張圖片
反向推導關鍵詞,有兩個模型CLIP和DeepBooru,以圖1為例:
圖1: iphone 14 pro max 原相機拍攝的高清照片
使用CLIP進行prompt反推的結果:
a baby is laying on a blanket surrounded by balloons and balls in the air and a cake with a name on it, Bian Jingzhao, phuoc quan, a colorized photo, dada
使用DeepBooru進行prompt反推的結果:
1boy, ball, balloon, bubble_blowing, chewing_gum, hat, holding_balloon, male_focus, military, military_uniform, open_mouth, orb, solo, uniform, yin_yang
CLIP反推結果是一個句子,DeepBooru的反推結果是關鍵詞。
可以修改正向prompt,也可以添加反向prompt,反向prompt用于限制模型在生產圖片時不添加反向prompt中出現的元素。反向prompt不是必須的,可以不填。
???lora模型
lora模型對大模型生成圖的風格和質量有很強的干預或增強作用,但是lora模型需要與配套的大模型一起使用,不能單獨使用。在sd-webui中使用lora模型的方式主要有兩種:
方法一
安裝additional-network插件,插件的github地址:https://github.com/kohya-ss/sd-webui-additional-networks,在sd-webui上可以在擴展中直接下載安裝。該插件僅支持使用sd-script腳本訓練的lora模型,目前https://civitai.com/上絕大多數的開源lora模型都是基于此腳本訓練的,因此該插件支持絕大多數的lora模型。下載的lora模型需要放到
*/stable-diffusion-webui/extensions/sd-webui-additional-networks/models/lora
路徑下, 新增模型需要重啟sd-webui,插件和模型正確加載后,會在webui操作界面的左下角中出現“可選附加網絡(LoRA插件)” 。在生成圖片時觸發lora,需要在插件中選中lora模型,并在正向提示詞中加入Trigger Words。下圖中選中的lora模型為blinndbox_v1_mix, trigger words為full body,chibi, 每個lora模型有自己獨有的Trigger Words,在模型的簡介中會注明。
如果插件在點擊安裝后沒有反應,或者提示因為Flag引起的錯誤,是因為webui啟動時允許擴展插件的設置配置為禁止,需要在webui啟動時添加啟動參數:--enable-insecure-extension-access
./webui.sh --xformers --enable-insecure-extension-access
方法二
不使用additional-network插件,使用sd-webui默認支持的lora模型使用方式,需要將lora模型放到
*/stable-diffusion-webui/models/Lora
目錄下,重新啟動sd-webui即可自動載入模型。
在正向提示詞中加入lora模型啟用語句,生產圖片時即可觸發lora模型:
web-ui提供了自動填充lora提示語句的功能,點擊如圖所示的圖標,可以打開lora模型列表,然后點擊模型區域,語句會自動填充到正向提示詞區域:
以上兩種方式,選用其中任意一種均能使lora模型在內容生產中生效,兩種方式同時使用也不會引起問題。
???ControlNet
controlNet通過支持額外的輸入條件,試圖控制預訓練的大模型,如Stable Diffusion。單純的文本控制方式令內容的生產就像碰運氣抽卡,結果無法控制且不容易達到預期效果,controlNet的出現使stable diffusion大模型的內容生成進入可控時期,讓創作變得可控使得AIGC在工業應用上更進一步。
安裝controlNet
在sd-webui上,點擊擴展,進入插件安裝頁面,找到controlNet插件,點擊install即可完成插件安裝。
下載開源的controlnet模型
下載地址:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
一個模型由兩個文件組成: .pth 和 .yaml,需要同時下載。文件名中"V11"后面的字母,p:表示可以使用,e:表示還在試驗中,u:表示未完成。下載好的模型放在如下目錄,重啟sd-webui 即可完成controlnet模型加載。
*\stable-diffusion-webui\extensions\sd-webui-controlnet\models
???圖生圖示例
模型選擇
1、stable diffusion大模型選用:revAnimated_v11 (https://civitai.com/models/7371?modelVersionId=46846)
2、lora模型選用blind_box_v1_mix (https://civitai.com/models/25995?modelVersionId=32988)
3、采樣方法Euler a
4、源圖片使用 圖1,使用DeepBooru模型進行正向prompts生成, 添加revAnimated_v11的特定prompts, 刪除一些正向prompts,添加反向prompts,最后使用的prompt如下所示。
正向:
(masterpiece),(best quality), (full body:1.2), (beautiful detailed eyes), 1boy, hat, male, open_mouth, smile, cloud, solo, full body, chibi, military_uniform, <lora:blindbox_v1_mix:1>
反向:
(low quality:1.3), (worst quality:1.3)
生成的圖片為:
圖1:原圖片
圖2:sd生成圖片
5、保持生成圖片的條件不變,添加ControlNet模型,選擇Openpose,control mode選擇 balance ,生成的圖片如下所示,生成的人物動作因為Openpose的作用被約束了,與原圖像保持的更為相似。
圖3:sd生成圖片(添加openpose)
圖4: openpose生成的圖片
???文生圖示例
模型選擇
stable diffusion大模型選用:revAnimated_v11 (https://civitai.com/models/7371?modelVersionId=46846)
lora模型選用blind_box_v1_mix (https://civitai.com/models/25995?modelVersionId=32988)
采樣方法Euler a
示例1
提示詞
正向:
(masterpiece),(best quality),(ultra-detailed), (full body:1.2), 1girl, youth, dynamic, smile, palace,tang dynasty, shirt, long hair, blurry, black hair, blush stickers, black hair, (beautiful detailed face), (beautiful detailed eyes), <lora:blindbox_v1_mix:1>, full body, chibi
反向:
(low quality:1.3), (worst quality:1.3)
生成的圖片為:
圖5: 文生圖實例1
示例2
提示詞
正向:
(masterpiece),(best quality),(ultra-detailed), (full body:1.2), 1girl,chibi,sex, smile, open mouth, flower, outdoors, beret, jk, blush, tree, :3, shirt, short hair, cherry blossoms, blurry, brown hair, blush stickers, long sleeves, bangs, black hair, pink flower, (beautiful detailed face), (beautiful detailed eyes), <lora:blindbox_v1_mix:1>,
反向:
(low quality:1.3), (worst quality:1.3)
生成圖片為:
圖6: 文生圖實例2
提示詞解析
(masterpiece),(best quality),(ultra-detailed), (full body:1.2), (beautiful detailed face), (beautiful detailed eyes) 這些帶()的詞為revAnimated_v11 模型配套prompts,用于提高圖片的生成質量。
<lora:blindbox_v1_mix:1> 是觸發 blind_box_v1_mix 模型的 prompt。
full body, chibi 為 blind_box_v1_mix 模型的 trigger words。
剩下的prompts為圖片內容的描述。
revAnimated_v11 模型對prompt的順序是敏感的,排在前面的提示詞比排在后面的prompt對結果的影響更大。
???VAE
在sd的實際使用中,vae模型起到濾鏡和微調的作用,有些sd模型是自帶vae的,并不需要單獨掛載vae。與模型配套的vae的模型,通常會在模型的發布頁面會附帶vae的下載鏈接。
模型的安裝
下載vae模型到sd web-ui的如下目錄,重啟sd web-ui,即可自動完成vae模型加載。
/stable-diffusion-webui/models/VAE
如下圖所示,在sd web-ui上可以切換vae模型。
如果we-ui上看不到此選擇框,則到設置-> 用戶界面-> 快捷設置列表 添加配置 "sd_vae",如下所示:
效果
在保持圖6生成條件不變的基礎上,附加Blessed2(https://huggingface.co/NoCrypt/blessed_vae/blob/main/blessed2.vae.pt)模型,圖片的顏色和對比度有了明顯的變化。
圖7: 添加vae模型前
圖8:添加vae模型后圖片的飽和度和對比度都有提升
結束語
sd web-ui的學習曲線比較陡峭,具有一定的圖像處理領域知識能夠幫助用戶更好的選擇和組合模型。
零基礎小白用戶容易出現隨便選擇模型,胡亂組合,對著sd web-ui界面進行一系列操作后,出圖效果和預期完全不符的情況,建議先了解每個模型的特點后再根據實際目標進行選擇。
sd是開源的,sd web-ui是一個工具箱,不是一個商業產品,社區中有很多效果很棒的模型,出圖的上限很高,但下限也很低,開源不代表沒有成本,因為sd we-ui部署要求較高的硬件配置。要節省學習成本,較為穩定的出圖效果,簡單便捷的用戶體驗,沒有硬件配置要求,midjourney 是當前的首選,但需要支付訂閱費。
團隊介紹
我們是大淘寶FC技術智能策略團隊,負責手機天貓搜索、推薦、拍立享等業務研發和技術平臺建設,綜合運用搜推算法、機器視覺、AIGC等前沿技術,致力于依靠技術的進步支持場景的提效和產品的創新,為用戶帶來更好的購物體驗。
¤?拓展閱讀?¤
3DXR技術?|?終端技術?|?音視頻技術
服務端技術?|?技術質量?|?數據算法