Stable Diffusion WebUI 從零基礎到入門

143e5c0474fcc925328b46b7cfcb1c32.gif

本文主要介紹Stable Diffusion WebUI的實際操作方法,涵蓋prompt推導、lora模型、vae模型和controlNet應用等內容,并給出了可操作的文生圖、圖生圖實戰示例。適合對Stable Diffusion感興趣,但又對Stable Diffusion WebUI使用感到困惑的同學,希望通過本文能夠降低大家對Stable Diffusion WebUI的學習成本,更快速的體驗到AIGC圖像生成的魅力。

eeb0e23c36195e6f924f089776f96950.png

引言

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。

  1. Dreambooth:在sd基座模型的基礎上,通過 Dreambooth 訓練方式得到的大模型, 是一個完整的新模型,訓練速度較慢,生成模型文件較大,一般幾個G,模型文件格式為 safetensors 或 ckpt。特點是出圖效果好,在某些藝術風格上有明顯的提升。如下圖所示,sd web-ui中該類模型可以在這里進行選擇。

    72b9c1b72375ee586d1b36f87057806b.png

  2. LoRA: 一種輕量化的模型微調訓練方法,在原有大模型的基礎上對該模型進行微調,用于輸出固定特征的人或事物。特點是對于特定風格的圖產出效果好,訓練速度快,模型文件小,一般幾十到一百多 MB,不能獨立使用,需要搭配原有大模型一起使用。sd web-ui提供了lora模型插件,以及使用lora模型的方式,具體操作可見本文的 "操作流程->lora模型" 。

  3. Textual Inversion:一種使用文本提示和對應的風格圖片來微調訓練模型的方法,文本提示一般為特殊的單詞,模型訓練完成后,可以在text prompts中使用這些單詞,來實現對模型生成圖片風格和細節的控制,需要搭配原有的大模型一起使用。

  4. Hypernetwork:與LoRA類似的微調訓練大模型的方法,需要搭配原有的大模型一起使用。

28ae693cb6d310b5cf8bfde911ca0819.png

操作流程

???prompt推導

  1. 在sd中上傳一張圖片

  2. 反向推導關鍵詞,有兩個模型CLIP和DeepBooru,以圖1為例:

8f15663cb0b8f1532aec6e80caee7c06.png

圖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,在模型的簡介中會注明。

fc3c26d16ed4d53f49d542426b3e728e.png

如果插件在點擊安裝后沒有反應,或者提示因為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模型:

e42f73a1d0927302588104b5eed8e56d.png

web-ui提供了自動填充lora提示語句的功能,點擊如圖所示的圖標,可以打開lora模型列表,然后點擊模型區域,語句會自動填充到正向提示詞區域:

92604da6ff2598d11821cbd5d7c24f62.png

以上兩種方式,選用其中任意一種均能使lora模型在內容生產中生效,兩種方式同時使用也不會引起問題。

???ControlNet

controlNet通過支持額外的輸入條件,試圖控制預訓練的大模型,如Stable Diffusion。單純的文本控制方式令內容的生產就像碰運氣抽卡,結果無法控制且不容易達到預期效果,controlNet的出現使stable diffusion大模型的內容生成進入可控時期,讓創作變得可控使得AIGC在工業應用上更進一步。

  • 安裝controlNet

在sd-webui上,點擊擴展,進入插件安裝頁面,找到controlNet插件,點擊install即可完成插件安裝。

6185919ac3f16d18fb478030ceb71d72.png

下載開源的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)

生成的圖片為:

29fdaaac3b31b46d313fbc8e9a216691.jpeg

圖1:原圖片

2fa3bc952baf7942005f065423565af4.png

圖2:sd生成圖片

5、保持生成圖片的條件不變,添加ControlNet模型,選擇Openpose,control mode選擇 balance ,生成的圖片如下所示,生成的人物動作因為Openpose的作用被約束了,與原圖像保持的更為相似。

559911c06acb9684d04793ef5b06d5ac.png

圖3:sd生成圖片(添加openpose)

dd831f5c06f8afa377a3f145162f7105.png

圖4: openpose生成的圖片

???文生圖示例

  • 模型選擇

  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

示例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)

生成的圖片為:

69d0db04c873ed88181305fe921b658c.png

圖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)

生成圖片為:

cac55344623ebfa70e034cb50a6c2abe.png

圖6: 文生圖實例2

提示詞解析

  1. (masterpiece),(best quality),(ultra-detailed), (full body:1.2), (beautiful detailed face), (beautiful detailed eyes) 這些帶()的詞為revAnimated_v11 模型配套prompts,用于提高圖片的生成質量。

  2. <lora:blindbox_v1_mix:1> 是觸發 blind_box_v1_mix 模型的 prompt。

  3. full body, chibi 為 blind_box_v1_mix 模型的 trigger words。

  4. 剩下的prompts為圖片內容的描述。

  5. 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模型。

374c1eebf411e9888fdb8a37e792bd82.png

如果we-ui上看不到此選擇框,則到設置-> 用戶界面-> 快捷設置列表 添加配置 "sd_vae",如下所示:

93f1d6142c091ce4525a9b8f9f8d677d.png

  • 效果

在保持圖6生成條件不變的基礎上,附加Blessed2(https://huggingface.co/NoCrypt/blessed_vae/blob/main/blessed2.vae.pt)模型,圖片的顏色和對比度有了明顯的變化。

224788fa718edebbc871737318bba789.png

圖7: 添加vae模型前

e28713ed9ee3f3a1ea54aa775a3c4a2c.png

圖8:添加vae模型后圖片的飽和度和對比度都有提升

f28929f2d7d40123980923cc8766ec08.png

結束語

  1. sd web-ui的學習曲線比較陡峭,具有一定的圖像處理領域知識能夠幫助用戶更好的選擇和組合模型。

  2. 零基礎小白用戶容易出現隨便選擇模型,胡亂組合,對著sd web-ui界面進行一系列操作后,出圖效果和預期完全不符的情況,建議先了解每個模型的特點后再根據實際目標進行選擇。

  3. sd是開源的,sd web-ui是一個工具箱,不是一個商業產品,社區中有很多效果很棒的模型,出圖的上限很高,但下限也很低,開源不代表沒有成本,因為sd we-ui部署要求較高的硬件配置。要節省學習成本,較為穩定的出圖效果,簡單便捷的用戶體驗,沒有硬件配置要求,midjourney 是當前的首選,但需要支付訂閱費。

0ee2460d5265df6083f5e18eb8f1896d.png

團隊介紹

我們是大淘寶FC技術智能策略團隊,負責手機天貓搜索、推薦、拍立享等業務研發和技術平臺建設,綜合運用搜推算法、機器視覺、AIGC等前沿技術,致力于依靠技術的進步支持場景的提效和產品的創新,為用戶帶來更好的購物體驗。

¤?拓展閱讀?¤

3DXR技術?|?終端技術?|?音視頻技術

服務端技術?|?技術質量?|?數據算法

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39171.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39171.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39171.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS變形與動畫(二):perspctive透視效果 與 preserve-3d 3d效果(奧運五環例子)

文章目錄 perspective 3d透視效果preserve-3d 3d嵌套效果例子 奧運五環 backface-visibility 背面效果 perspective 3d透視效果 perspective 指定了觀察者與 z0 平面的距離&#xff0c;使具有三維位置變換的元素產生透視效果。z>0 的三維元素比正常大&#xff0c;而 z<0 …

試崗第一天問題

1、公司的一個項目拉下來 &#xff0c;npm i 不管用顯示 后面百度 使用了一個方法 雖然解決 但是在增加別的依賴不行&#xff0c;后面發現是node版本過高&#xff0c;更換node版本解決。 2、使用插件動態的使數字從0到100&#xff08;vue-animate-number插件&#xff09; 第一…

ChatGPT or BingChat

你相信我們對大模型也存在「迷信權威」嗎&#xff1f; ChatGPT 的 GPT-4 名聲在外&#xff0c;我們就不自覺地更相信它&#xff0c;優先使用它。但我用 ChatALL 比較 AI 大模型們這么久&#xff0c;得到的結論是&#xff1a; ChatGPT GPT-4 在大多數情況下確實是最強&#xf…

插入、希爾、歸并、快速排序(java實現)

目錄 插入排序 希爾排序 歸并排序 快速排序 插入排序 排序原理&#xff1a; 1.把所有元素分為兩組&#xff0c;第一組是有序已經排好的&#xff0c;第二組是亂序未排序。 2.將未排序一組的第一個元素作為插入元素&#xff0c;倒序與有序組比較。 3.在有序組中找到比插入…

Linux 內核內存管理 page_address 函數

文章目錄 一、page_address1.1 page_address1.2 page_to_pfn1.3 PFN_PHYS1.4 __va(x)1.5 總結1.6 page_to_virt 二、使用demo 一、page_address 1.1 page_address 內核用 struct page 結構體來表示系統中的每個物理頁面&#xff0c;該結構體用來跟蹤和管理這些物理頁面的使用…

MySQL面試題一

MySQL 索引使用有哪些注意事項呢&#xff1f; 可以從兩個維度回答這個問題&#xff1a; 索引哪些情況會失效&#xff0c;索引不適合哪些場景 索引哪些情況會失效 查詢條件包含or&#xff0c;會導致索引失效。隱式類型轉換&#xff0c;會導致索引失效&#xff0c; 例如age字…

Idea的基本使用帶案例---詳細易懂

一.idea是什么 有專業人士說&#xff0c;idea是天生適合做微軟&#xff0c;當時我還想肯定是夸大其詞了&#xff0c;但當你用起來的時候確實很爽&#xff0c;&#x1f60a;&#x1f60a; ntelliJ IDEA是一種集成開發環境&#xff08;IDE&#xff09;&#xff0c;由JetBrains開發…

后仿知識總結

基本詞語的概念&#xff1a; &#xff08;1&#xff09;Place&Routing pr&#xff0c;布局布線 sdf基礎概念&#xff1a; 靜態時序分析圣經翻譯計劃——附錄B&#xff1a;SDF&#xff08;上&#xff09; - 知乎 (zhihu.com) 靜態時序分析圣經翻譯計劃——附錄B&#x…

繼承和多態C++

這里寫目錄標題 繼承public、protected、private 修飾類的成員public、protected、private 指定繼承方式改變訪問權限 C繼承時的名字遮蔽問題基類成員函數和派生類成員函數不構成重載C基類和派生類的構造函數構造函數的調用順序基類構造函數調用規則 C基類和派生類的析構函數C多…

MTK Android隱藏NavigationBar

安卓MTK屏蔽NavigationBar, 在SDK中通過搜索關鍵字修改&#xff0c;可適用大部分MTK及安卓版本&#xff0e; 方法介紹 搜索device/mediatek與device/mediateksample下的.xml把config_showNavigationBar值置為false 如下為搜索指令 find device/mediatek -name “*.xml” | xa…

系統架構師---開發方法---敏捷開發

目錄 前言 極限編程 四大價值觀 溝通 簡單 反饋 勇氣 尊重&#xff1a; 十二個最佳實踐 計劃游戲 小型發布 隱喻 簡單設計 測試先行 重構 結對編程 集體代碼所所有制 持續集成 每周工作40小時 現場客戶 編碼標準 前言 2001年2月&#xff0c;在美國的猶他州…

Grafana展示k8s中pod的jvm監控面板/actuator/prometheus

場景 為保障java服務正常運行&#xff0c;對服務的jvm進行監控&#xff0c;通過使用actuator組件監控jvm情況&#xff0c;使用prometheus對數據進行采集&#xff0c;并在Grafana展現。 基于k8s場景 prometheus數據收集 配置service的lable&#xff0c;便于prometheus使用labl…

LVS負載均衡集群

目錄 集群 什么是集群 (含義) 集群的分類 LVS 負載均衡器的集群架構 負載均衡器的群集工作模式 LVS負載均衡器的調度算法 LVS組成作用 組成 作用 LVS群集創建與管理 創建步驟 ipvsadm工具 LVS-NAT部署實戰 1、部署共享存儲 2、配置節點服務器&#xff08;后端服…

JetPack Compose 學習筆記(持續整理中...)

1.為什么要學&#xff1f; 1.命令式和聲明式 UI大戰,個人認為命令式UI自定義程度較高,能更深入到性能,內存優化方面,而申明式UI 是現在主流的設計,比如React,React Native,Flutter,Swift UI等等,現在性能也逐漸在變得更好 2.還有一個原因compose 是KMM 是完整跨平臺的UI基礎 3.…

kafka使用心得(一)

kafka入門 一種分布式的、基于發布/訂閱的消息系統&#xff0c;scala編寫&#xff0c;具備快速、可擴展、可持久化的特點。 基本概念 topic 主題 partition 分區&#xff0c;一個topic下可以有多個partition&#xff0c;消息是分散到多個partition里存儲的&#xff0c;part…

劍指Offer48.最長不含重復字符的子字符串 C++

1、題目描述 請從字符串中找出一個最長的不包含重復字符的子字符串&#xff0c;計算該最長子字符串的長度。 示例 1: 輸入: “abcabcbb” 輸出: 3 解釋: 因為無重復字符的最長子串是 “abc”&#xff0c;所以其長度為 3。 示例 2: 輸入: “bbbbb” 輸出: 1 解釋: 因為無重復字…

圖像處理技巧形態學濾波之膨脹操作

1. 引言 歡迎回來&#xff0c;我的圖像處理愛好者們&#xff01;今天&#xff0c;讓我們繼續研究圖像處理領域中的形態學計算。在本篇中&#xff0c;我們將重點介紹腐蝕操作的反向效果膨脹操作。 閑話少說&#xff0c;我們直接開始吧&#xff01; 2. 膨脹操作原理 膨脹操作…

macOS CLion 使用 bits/stdc++.h

macOS 下 CLion 使用 bits/stdc.h 頭文件 terminal運行 brew install gccCLion里配置 -D CMAKE_CXX_COMPILER/usr/local/bin/g-11

Visual Studio 2022 中解決使用scanf報錯的方法(一勞永逸)

目錄 【前言】 一、scanf報錯示例 二、解決使用scanf報錯的方法 解決方法1&#xff08;不推薦&#xff09; 解決方法2&#xff08;不推薦&#xff09; 解決方法3&#xff08;強烈推薦&#xff09; 第一步 第二步 第三步 三、效果演示&#xff08;方法三&#xff09; …

根據一棵樹的兩種遍歷構造二叉樹

題目 給定兩個整數數組 preorder 和 inorder &#xff0c;其中 preorder 是二叉樹的先序遍歷&#xff0c; inorder 是同一棵樹的中序遍歷&#xff0c;請構造二叉樹并返回其根節點。 示例 1: 輸入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 輸出: [3,9,20,null,null,…