Stable Diffusion 教學 : 15分鐘完全把你教會!

Stable Diffusion webui 是甚麼

封面圖片例1
封面圖片例2

15分鐘完全詳細實戰安裝!,快來生成你的動漫角色! Stable Diffusion 最開始是一種AI繪圖擴散模型,本身就是生成輸出圖像使用,github上大神寫的Stable Diffusion webui程式,讓我們可以輕鬆用人性化的介面使用自己的顯示卡生成圖像

有關Stable Diffusion教學,可以查閱這篇wikipedia文章


Stable Diffusion web UI的特色

Stable Diffusion是一個功能強大的AI繪圖軟體,具有許多獨特的特色,讓用戶可以輕鬆進行各種圖像處理和生成。特點包括:

  1. Original txt2img和img2img模式:支援文字到圖像和圖像到圖像的處理模式,讓用戶能夠進行各種圖像生成和編輯。
  2. 一鍵安裝和運行腳本:提供了便捷的安裝和啟動腳本,但用戶仍需安裝Python和Git。
  3. Outpainting和Inpainting:支持AI繪圖圖像的補充和修復功能。
  4. Color Sketch:提供彩色素描功能,讓用戶能夠輕鬆創建有趣的彩色素描圖像。
  5. Prompt Matrix:支持通過指定部分文字來控制生成圖像,使得生成結果更加符合用戶需求。
  6. Stable Diffusion Upscale:提供穩定的AI繪圖放大功能,讓用戶能夠輕鬆將圖像放大至更高的解析度。
  7. 多種附加工具:包括AI繪圖常用GFPGAN、CodeFormer、RealESRGAN等多種神經網絡工具,用於修復、提升圖像質量。
  8. 可定制的界面和功能:支持拖放操作、自定義生成參數、批量處理等功能,讓用戶能夠根據需求進行個性化設置。

說了這麼多好處,馬上來試試看吧


第一步,下載python (已下載則可跳過)

點擊連結下載 Python 3.10.6

點擊適合下載的版本

滑動到底下載適合電腦的版本
請一定要確定你的作業系統與bit數


32位元和64位元的電腦應用程式之所以不能相互通用,主要是由於它們在處理資料和記憶體位址方面的不同:

  1. 32位元和64位元系統在處理資料的方式上有所不同。32位元系統一次能處理32位元的資料,而64位元系統一次能處理64位元的資料。當程式被編譯成特定位元的時候,它的指令和資料大小都被固定下來,因此無法在不同位元的系統上執行。
  2. 64位元系統擁有更大的記憶體位址空間,可以處理比32位元系統更多的記憶體。換句話說,64位元系統能夠處理比32位元系統更大的程式和資料集。因此,如果一個程式是針對64位元系統編譯的,它可能會使用到64位元系統所提供的大記憶體位址空間,而這在32位元系統上是無法實現的。

程式的位元數是在編譯時確定的,而這個位元數確定了程式如何處理資料和記憶體位址,因此無法跨不同位元的系統相互通用。

立刻下載

出現install python頁面
選擇install now 及 add python 3.10 to PATH
別不小心錯過了add python 3.10 to PATH

按下結束

看到setup was successful之後我們關掉(close)它,接著下載git


第二步 ,下載git (已下載則可跳過)

Git 是一個版本控制系統,它的主要目的是追蹤文件的更改,使得多人協作、版本管理和追蹤變更變得更加容易和有效。當你從 Git 下載檔案時,你實際上執行了「clone」或「pull」操作,具體用途如下:

  1. 取得專案的完整副本:當你從 Git 下載檔案時,你將會得到該專案的完整副本。這意味著你可以在本地環境中工作,而不需要依賴於外部伺服器。這在離線工作或是網路連接不佳的情況下特別有用。
  2. 更新你的本地副本:如果其他人對專案進行了更改,你可以使用 Git 下載這些變更,使你的本地副本保持最新。這種操作通常被稱為「pull」。
  3. 分支管理:當你下載專案時,你可以選擇性地下載特定的分支。這允許你對專案進行不同版本或功能的實驗,而不影響主要的程式碼庫。
  4. 協作和共享:透過 Git 下載檔案,你可以與其他人共享專案並進行協作。你可以將你的更改推送回主要的程式碼庫,進而與其他人分享你的工作。

Git 下載檔案的主要目的是讓你能夠有效地管理、追蹤和共享程式碼,從而實現更好的協作和版本控制

扯遠了,我們回來下載,git下載連結: git

點擊下載

點擊最上面的連結即可(Click here to download)

按下安裝

按install

按下結束

下載完成後點擊Launch Git Bash,按下finish,應該會有一個小黑框跳出來


git命令視窗

當你使用 Git 下載完成後,可能會看到一個小小的黑色命令行介面窗口(在 Windows 上可能是命令提示字元或 PowerShell 等)。這個視窗是用來執行 Git 命令的介面,你可以在這裡進行各種 Git 操作,如提交更改、拉取最新的程式碼、建立分支等等。

Git 的命令行介面提供了許多功能:

  1. git clone:用來複製遠端程式碼庫到本地。
  2. git pull:用來從遠端程式碼庫拉取最新的更改。
  3. git commit:用來提交更改到本地程式碼庫。
  4. git push:用來將本地的更改推送到遠端程式碼庫。
  5. git branch:用來管理分支。

透過這個命令行介面,你可以有效地控制你的專案,執行各種 Git 命令,並查看相關的執行結果和錯誤訊息。

打開提示字元

這時候我們輸入指令

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

等待一段時間後,會發現電腦中Git下會出現這樣的資料夾,代表我們已經快完成了!

設定webui-user.bat

點擊webui-user批次檔

點進去找到webui-user.bat檔,用右鍵使用筆記本打開

更改內容

其中一定要修改的是 COMMANDLINE_ARGS= 這一行依使用的顯卡VRAM大小設定如下:

大於8G:
set COMMANDLINE_ARGS= --xformers --deepdanbooru --precision full --no-half
6G~8G:
set COMMANDLINE_ARGS= --medvram --xformers --deepdanbooru --precision full --no-half
4G:
set COMMANDLINE_ARGS= --lowvram --xformers --deepdanbooru 

點擊打開

最後,連續點擊兩下webui-user就可以打開囉!

打開後範例

會出現如上的畫面,接著就可以自由的生成圖片咯~


開始AI繪圖:在prompt輸入想要的提示詞: 如child, kawaii, chibi, solo…還有如下例

  • Manga style,
  • Cute animals,
  • Anime characters,
  • Desserts,
  • Magic,
  • Rainbows,
  • Stars,
  • Dreamy,
  • Adorable,
  • Cartoon classics,
  • Childhood memories,
  • Mood diary,
  • Hand-drawn illustrations,
  • Pure nature,
  • Fantasy adventure

在negative prompt輸入想要避免的提示詞,如extra arms, distorted arms, malformed arms 還有如下例

  • Deformed,
  • Discolored,
  • Mutated,
  • Ugly,
  • Discordant,
  • Quirky,
  • Chaotic,
  • Unnatural,
  • Monstrous,
  • Weird,
  • Unrecognizable…在AI繪圖中,應用好適當的提示詞式生成圖片的關鍵…
生成圖片例1

這篇文章的上半部教學了AI繪圖程式: Stable Diffusion webUI從安裝到使用的基本設定,進階的使用會在下一篇文章提到,包含下載模型、Lora的使用等等


Stable Diffusion直接操作與介面

接下來的文章是Stable diffusion教學的進階,上面一篇文章我們已經教會了大家如何安裝Stable Diffusion webui用AI繪圖了,如果安裝遇到相關問題,都可以在下方留言

一旦你打開webui的介面,你應該會看到下面的幾樣視窗和工具:

生成圖片例2

我們這篇教學接著會介紹幾個,但不會全部講完(這可能需要好幾篇文章),所以我們來提一下幾個常用的工具就好


Stable Diffusion其中的常用模型下載

Stable Diffusion教學 : 模型選擇

首先最重要的當然是模型,他決定了你的圖片生成的大致樣態,像是真人或動漫,各種風格的模型需要你去發掘。在這個Stable Diffusion教學中如果你還不會訓練模型,可以到 civitai 這個網站去下載別人訓練好的模型(不過要記得查看使用規範),接著映入眼簾的就會是好幾種模型的選擇


1.Checkpoint

網站示例1

第一個也是最主要的模型類別checkpoint,他是我們的大模型,掌握著圖片的主軸,當然你也可以用來做:

  • 模型微調(Fine-tuning):你可以使用預訓練的checkpoint檔案,將模型應用在新的任務上,通常是在相似的領域中。這樣可以節省大量的時間和資源,因為你可以在預訓練的基礎上進行微調,而不是從頭開始訓練。
  • 模型擴展(Model Ensembling):你可以使用多個checkpoint檔案來建立一個更強大的模型。這可以通過組合多個模型的預測來提高準確性和響應能力。
  • 轉換到不同的框架:如果你想在不同的深度學習框架之間移植模型,checkpoint檔案可以幫助你在不同的框架之間轉換模型。
  • 模型分析和視覺化:你可以使用checkpoint檔案來分析模型的架構、權重分佈和梯度變化等,這有助於理解模型的運作方式,並進行相應的調整和優化。
  • 模型壓縮和優化:你可以使用checkpoint檔案來進行模型的壓縮和優化,以減少模型的大小和計算量,從而在部署到資源有限的設備上時提高效率。

話說回來,下載方式就是點擊進去你喜歡的模型後按download,接著慢慢等下載(通常checkpoint都很大,要注意儲存空間


網站示例2

下載完成以後,回到stable-diffusion-webui的資料夾,將檔案移到

...stable-diffusion-webui\models\Stable-diffusion

底下,按藍色的refresh按鈕就可以了


2.LoRA

網站示例3

LoRA全名(Low-Rank Adaptation,低秩調整)其應用可以針對不同的角色、物品、風格對模型做收束,也就是說可以創作你喜愛的角色,或者風格在大模型(checkpoint)的前提下改變圖像

一樣的步驟安裝,不過安裝地點如下

...stable-diffusion-webui\models\Lora

啟用方式也很簡單,下圖中最右邊的點下去,refresh後就會出現了


3.embedding

網站示例4

最後,embedding就有點像提示詞的打包,可以快速調整到你要的風格/角色,當然也可以混用LoRA,但效果需要自己嘗試

在原始生成圖像的任務中,embedding還有多種用途。首先,當我們使用生成對抗網絡(GAN)或變分自編碼器(VAE)等模型生成圖像時,embedding可以被用來表示潛在空間中的特徵。這些潛在空間的向量可以通過對應的生成器網絡轉換為圖像,當然不是很理解也不重要

一樣的步驟安裝,安裝地點如下

...stable-diffusion-webui\embeddings


Stable Diffusion : General Settings

general settings介面

當我們把模型都安裝完成以後,我們只要再做最後的設定就可以開始生成圖片了,我們開始由左上開始介紹

sampling method

這個我個人一直都用Euler a,效率比較高,有關多個模型的訓練方式的比較,可以參考 這個網站 ,基本上我感覺差異不大

sampling step

接著是訓練次數,原則上越高的訓練次數會越精細,但這需要經驗去自行調試,因為過高的訓練次數除了造成訓練緩慢,也可能會出現反人類的圖像,一般的設定在20~80之間

Hires, fix

這個功能可以幫助你提高原圖的解析度,並更加精細化,但是!! 原有的畫風可能會跑掉,其實他就是放了upscale和img2img而已,所以如果你喜歡原來的風格,作者建議一個可以不用改變畫風的方法,就是upscale就好。首先我們先生成一張較低解析度的圖片,接著點擊主頁面,按Extras,將圖片上傳進去

upscaler範例

接著可以如我上圖的設定,放大4倍並設定好upscaler,對於動漫圖片來說,不僅幾乎不會改變畫風,還可以修飾+精細化,是作者非常喜歡的功能,除此之外,其他不清楚的動漫圖片通通可以拿來做成4K甚至8K以上的圖片,想想就非常香

Refiner

可以幫助你兩步驟切換訓練方式,不過作者不常用,讀者可以自行探索

Width, Heigth

顧名思義就是長寬,以像素為單位,不建議拉到1000以上,因為大多數模型不太適配,會導致生出多個頭,多個角色的狀況,建議用上面提到的方式upscale圖片

batch count, batch size

簡單來說就是一次同時生成幾個圖片(batch size), 和一次連續生成幾個圖片(batch count)

seed

-1表示隨機生成,如果想生成完全相同的圖片需要相同的種子

CFG scale

Classifier Free Guidance scale 又稱CFG scale。CFG scale是一個參數,它會控制圖像生成中應該多「嚴格」地遵從提示輸入的提示詞(prompt)。較低的CFG尺度讓人工智能更有創意的自由度,而較高的數值則強迫它更貼近提示詞(prompt)

通常使用0~15之間,11以上就算嚴格了,再往上畫面會過度銳利

generate

如果按下右鍵可以選擇一直生成和停止一直生成(連續出水的概念)


儲存圖片

儲存圖片例

在上圖中,在最左邊有一個檔案夾的圖示,點開以後會自己打開圖片儲存的位置,也就是說,會自己儲存的喔!

資料夾內容

可以看到,生成的圖片都會一併出現,所以如果幾張手部不好看,就生成幾百幾千張就好了嘛~

此外,這張圖片的提示詞如下

parameters masterpiece, best quality, very_long_hair, 1girl, solo, looking_at_viewer, smile, bangs, skirt, shirt, long_sleeves, hat, bow, holding, closed_mouth, flower, frills, hair_flower, petals, bouquet, holding_flower, holding_bouquet, flower field, flower field, colorful, vivid color, blue sky, lens flare, depth of field, dutch angle , chibi, child, kawaii, round_face 2_kyoka, ultra detail,(1girl),water,butterfly
Negative prompt: EasyNegative, badhandv4
Steps: 60, Sampler: Euler a, CFG scale: 7, Seed: 1816388252, Size: 512x768, Model hash: 58f37f4736, Model: kawaiimixNijiV5Cute_v10, Clip skip: 2, Lora hashes: "KAWAII STYLE: 773c267d555b", Version: 1.6.0


Stable Diffusion常用手部調整工具及簡易提示詞

接下來這個段落會介紹常用的兩個工具,一個是EasyNegative一個是badhandv4,這兩個都是常用embedding負面提示詞工具,也就是說雖然是embedding,但是是放在Negative prompt裡的喔,功能如其名,快速地去除一些常見的AI繪圖問題,像畸形,多手多腳多手指,不平衡等等

EasyNegative

easynegative 下載連結

網站下載例5

和以前下載embedding的時候一樣方式安裝,不過操作略有不同,如果你忘記,我把放置位置放在下面

...stable-diffusion-webui\embeddings

點擊下方安裝
再次點擊

使用時先點擊Negative prompt(不然會增加到一般prompt裡,相信我你不會想看到這樣生成的圖片),再點擊Textual inversion就好了


Textual inversion vs embedding?

其實它們基本上還是有點不一樣,原理上:

  1. Textual Inversion:
    • 原理:Textual inversion 是一種從文本描述直接推斷圖像內容的方法。它嘗試通過逆向圖像生成過程來生成與給定文本描述相對應的圖像。
    • 過程:該方法通常涉及使用生成對抗網絡(GANs)或變分自編碼器(VAEs)等模型,將文本描述作為輸入,並通過反向優化過程來生成與描述相匹配的圖像。
    • 優點:直接利用文本描述生成圖像,可以更準確地捕捉描述中的細節和語義。
    • 缺點:由於圖像生成是一個高度複雜和多義的問題,Textual inversion 方法可能受限於文本描述的限制,導致生成的圖像可能與期望有所偏差。
  2. Embedding:
    • 原理:Embedding 方法將文本描述嵌入到一個低維向量空間中,然後將這個嵌入向量與圖像的嵌入向量進行匹配,以生成與文本描述相對應的圖像。
    • 過程:通常,這種方法使用類似於文本嵌入技術(如Word2Vec、BERT等)的模型將文本描述轉換為連續向量表示。然後,利用圖像嵌入模型或神經網絡將這些向量與圖像的嵌入向量進行匹配,生成與描述相對應的圖像。
    • 優點:Embedding 方法將文本和圖像都映射到了一個共享的低維向量空間中,可以更好地處理文本和圖像之間的關係。
    • 缺點:可能需要對文本和圖像的嵌入模型進行繁瑣的訓練,且匹配過程可能相對複雜。

badhandv4

下載連結

基本上就和上面的做法一樣,不再贅述~

Stable Diffusion常用提示詞產生器

如果你不太知道提示詞怎麼適當加入,沒關係!,有人已經幫你想好了,只要給他白話文為敘述,他就會生成prompt!(當然如果你像作者英文不太好,可以先找chatgpt翻譯一下,再丟給Magic prompt)

Magicprompt連結

成功進入之後,我們可以輸入想要生成的內容,例如我輸入的The little girl sitting under the big tree in the forest of elves, taking a rest.(在精靈之森的大樹下坐著休息的小女孩)

生成器圖示

可以看到,他生成了4個版本,我們可以拿喜歡的使用,那我比較喜歡第一個,馬上試看看,加上我很喜歡的Lora "KAWAII STYLE

生成結果

怎麼說呢…效果還可以,但還需要更多調試,這也是AI繪圖有趣的地方


有關Stable Diffusion教學的內容差不多就到此為止,如果你好奇我的封面圖片生成方式的話,下面是參數,可以自己試試看喔~

parameters
christmas_tree, 1girl, solo,hair_ribbon, ribbon, scarf, blush, sky, snowflakes, outdoors, red_ribbon, christmas_ornaments, night_sky, red_scarf, long_sleeves, coat, boots, night, snow, bangs, snowing, open_clothes, christmas, open_mouth, long_hair, two_side_up, cowboy_shot 2_kyoka, very_long_hair, petite, cure lovely, round face, shy
Negative prompt: EasyNegative, nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry
Steps: 30, Sampler: Euler a, CFG scale: 11, Seed: 1876751842, Size: 512x728, Model hash: 35dae95c74, Model: cuteyukimixAdorable_kemiaomiao, Denoising strength: 0.6, Clip skip: 2, ENSD: 31337, Hires upscale: 2, Hires steps: 10, Hires upscaler: ESRGAN_4x, Lora hashes: "KAWAII STYLE: 773c267d555b", Version: 1.6.0 utEXtpostprocessing Postprocess upscale by: 4, Postprocess upscaler: Nearest, Postprocess upscaler 2: R-ESRGAN 4x+ Anime6B mtEXtextras Postprocess upscale by: 4

Back to Blog

在〈Stable Diffusion 教學 : 15分鐘完全把你教會!〉中有 2 則留言

  1. 自動引用通知: [ AI繪圖 ] Stable Diffusion webui 的詳細操作及prompt的選擇 - kodo-ai_interaction

  2. 自動引用通知: OpenCV的影像模糊、馬賽克、魚眼效果實作 - kodo-ai_interaction

留言功能已關閉。

返回頂端