国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【AI】Stable-Diffusion-WebUI使用指南

這篇具有很好參考價值的文章主要介紹了【AI】Stable-Diffusion-WebUI使用指南。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

注:csdn對圖片有審核,審核還很奇葩,線稿都能違規(guī),為保證完整的閱讀體驗建議移步至個人博客閱讀

最近AI繪畫實現(xiàn)了真人照片級繪畫水準(zhǔn),導(dǎo)致AI繪畫大火,公司也讓我研究研究,借此機會正好了解一下深度學(xué)習(xí)在AIGC(AI Generated Content)----人工智能自動內(nèi)容生成領(lǐng)域的應(yīng)用。

AI繪畫是AIGC領(lǐng)域的一個方向,AIGC有技術(shù)方向,其中比較火的有Txet-to-Image,Text-to-Video,Text-to-Speech技術(shù),這三種技術(shù)都已經(jīng)有了比較成熟的落地產(chǎn)品,但AIGC對算力的要求極高,一般的消費級顯卡根本玩不起,而Stable-Diffusion模型的出現(xiàn)使Text-to-Image技術(shù)進入消費級顯卡成為了現(xiàn)實,我自己測試過的最低配置是NVIDIA GeForce GTX 1660 Ti 6G + Intel? Core? i7-9750H可以實現(xiàn)512x512圖像分級的出圖速度,即根據(jù)步數(shù)的不同3-5分鐘出一張,測試的最高配置是NVIDIA GeForce RTX 3080 Ti 12G + Gen Intel? Core? i7-12700K可以實現(xiàn)512x512秒級的出圖速度,即根據(jù)步數(shù)的不同2-10秒出一張圖。這已經(jīng)是吊炸天級別的優(yōu)化了。

我們討論的就是基于Stable-Diffusion模型實現(xiàn)的NovelAI,一款開源軟件。

我一直認為要想用好一個工具首先要知道它是怎么工作的,所以我們從AI繪畫原理來入手,當(dāng)然本人在接觸NovelAI之前沒有接觸過AI,所以本文只是一些自己在學(xué)習(xí)的過程中的一些淺顯的理解。

一、AI繪畫原理

這里原理學(xué)習(xí)參考了:

【AI繪畫】大魔導(dǎo)書:AI 是如何繪畫的?Stable Diffusion 原理全解(一);

多模態(tài)預(yù)訓(xùn)練CLIP;

CompVis/穩(wěn)定擴散:潛在的文本到圖像擴散模型;

1.流程預(yù)覽

NovelAI繪畫的流程主要分三個步驟,TextEncoder(Clip),Diffusion(UNet+Scheduler),ImageDecoder(VAE),首先來看一下整體的流程:

【AI】Stable-Diffusion-WebUI使用指南

2.TextEncoder

學(xué)過編程的都知道,機器是無法直接理解自然語言的,而我們輸入的描述tag是自然語言,機器自然無法直接理解,所以首先需要經(jīng)過一次文本編碼,將自然語言編程成機器能夠理解的字節(jié)碼,Stable-Diffusion模型采用了Clip中文本編碼器,Clip(Constastive Language-Image Pretraining)是OpenAI開源的一個深度學(xué)習(xí)模型,由圖像編碼器和文本編碼器組成,基于圖像和文本并行的多模態(tài)模型,通過圖像與文本兩個分支的特征向量的相似度計算來構(gòu)建訓(xùn)練目標(biāo),形成圖像-文本對,以達到Text-to-Image的技術(shù)實現(xiàn)。

Clip將文本轉(zhuǎn)換成的字節(jié)碼在WebUI上的表現(xiàn)形式就是一串?dāng)?shù)字,在我使用的版本的WebUI上有一個詞元分析器(Tokenizer)就是使用Clip的文本編碼器,可以將文本編碼成字節(jié)碼并以數(shù)字的形式顯示在WebUI上,也可以將數(shù)字編碼成文本。這串?dāng)?shù)字是給Clip中的Text Transformer使用的,Text Transfomer會根據(jù)這串?dāng)?shù)字來解析文本對應(yīng)的圖像的生成條件。

通俗來說,Clip干的活就是將文本解析成機器能理解的語言,然后機器根據(jù)自己的理解搜索文本在機器的記憶中對應(yīng)的畫面圖像,然后向Diffusion提供生成圖像的條件。

這個過程中Clip有加入77個嵌入向量,Clip會固定占用兩個,所以Clip所能接收的最大詞元個數(shù)就是75個,這里說的是詞元的數(shù)量,而不是tag的數(shù)量,比如我們在WebUI中輸入3個字母dlg,Clip從中解析出來了兩個詞元,標(biāo)簽也會顯示詞元最大容量和當(dāng)前使用數(shù)量。

【AI】Stable-Diffusion-WebUI使用指南

我們通過詞元分析器也可以分析出dlg對應(yīng)的兩個詞元:

【AI】Stable-Diffusion-WebUI使用指南

3.Diffusion

Stable Diffusion在Diffusion模塊相對于以前的AI繪畫的重大突破就是將擴散模型的核心計算從像素空間(即像素的集合)轉(zhuǎn)換到了潛空間(圖像的壓縮數(shù)據(jù)),當(dāng)模型計算一張512x512的圖時,在潛空間中做核心部分的計算用的是一張更小的經(jīng)過特殊編碼的圖,如64x64的特殊編碼過的圖,這可以使計算任務(wù)最重的核心計算的計算量大大的減小,并且出圖速度提升100倍。

Stable Diffusion是以去噪的形式來繪制一張圖片,在WebUI中的隨機種子(seed)就是用來產(chǎn)生一張隨機噪點圖的,噪點圖包含了大量的無規(guī)則的像素信息,Diffusion出圖的過程就是將隨機噪點圖中按照Clip給出的出圖條件給噪點圖去噪的過程。

對于去噪可以閱讀這邊博客:圖像處理——去噪 - E-Dreamer。

去噪的過程先是通過U-Net模型根據(jù)圖像的生成條件從數(shù)據(jù)集中提取符合要求像素特征,一張圖像的像素特征有很多的維度,如:像素的空間分布,像素顏色特征等,不同類型,不同場景的圖像像素的特征也不一樣,所以像素的特征提取是一項很復(fù)雜的任務(wù),Scheduler就是用來異步處理這些任務(wù)的調(diào)度器。

然后在特征提取完成之后,通過Sampler(采樣器)對特征相關(guān)的圖像數(shù)據(jù)進行采樣,完成一次采樣之后模型就會根據(jù)采樣結(jié)果來調(diào)整像素在噪點圖中分布,經(jīng)過多次采樣調(diào)整的重復(fù),一張符合文本描述的圖片變產(chǎn)生了。

不同步數(shù)對圖像的影響:

【AI】Stable-Diffusion-WebUI使用指南

在WebUI中的采樣方法(Sampler)調(diào)整的采樣的算法,采樣步數(shù)(Sampling steps)調(diào)整的就是采用重復(fù)的次數(shù),提示詞相關(guān)性(CFG Scale)調(diào)整的就采樣的方向,數(shù)字越大就會越嚴(yán)格的按照提示詞采樣,越小則采樣的隨機性越強。

不同CFG Scale對圖像的影響:

【AI】Stable-Diffusion-WebUI使用指南

對于U-Net參考了:用U-Net做Auto-Encoder圖像重建。

4.ImageDecoder

經(jīng)過Diffusion的步驟,一張符合文本描述的圖片實際上已經(jīng)生成了,但是這張圖片是在潛空間中進行計算得出的一張被特殊編碼過的圖片,是沒辦法直接進行觀看的,所以需要ImageDecoder來進行圖片解碼,解碼完成之后就得到了一張正常的圖片了,然后將圖片輸出出來。

二、在本地部署(Win10)

首先AI繪畫有很多的應(yīng)用,比較有名的如:DALL-E 2、Midjourney、Stable Diffusion、Disco Diffusion、NovelAI、盜夢師、文心·一格,有的使用的自己的技術(shù),但大部分都是使用的Stable Diffusion的開源技術(shù),之前我還把NovelAI和Stable Diffusionr當(dāng)成是一個東西了,慚愧。

我們能在自己的電腦上部署AI繪圖首先要感謝Stable-Diffusion的開源。

Stable Diffusion的開源庫:CompVis/stable-diffusion: A latent text-to-image diffusion model (github.com)。

1.環(huán)境部署

Stable Diffusion只是提供一個模型,提供基礎(chǔ)的文本分析、特征提取、圖片生成這些核心功能,但自身是沒有可視化UI的,用起來就是各種文件加命令行。

所以很多牛人就為Stable Diffusion制作了UI界面,其中功能最強的,也是最火的就是大神AUTOMATIC1111制作的WebUI了。

WebUI原工程:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)。

WebUI已經(jīng)整合了Stable Diffusion模型,直接克隆下來配置好運行環(huán)境就可以使用了。

運行環(huán)境實際上就兩東西,一個克隆代碼倉庫的Git,一個Python3.10以上的Python環(huán)境。

Git直接去Git官網(wǎng)下一個就好了,安裝好之后,我們在任意文件夾內(nèi)右鍵是可以看到Git bash hereGit GUI here兩個右鍵菜單的。

【AI】Stable-Diffusion-WebUI使用指南

我們選擇Git Bash here,鍵入:

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

就可以將源碼下載到當(dāng)前文件夾內(nèi)了,下載速度很慢,畢竟WebUI本體有十幾G,會科學(xué)上網(wǎng)的上梯子或者直接找一個國內(nèi)鏡像肯能更快一點。

這里推薦一個國內(nèi)的鏡像:Hunter0725 / Stable Diffusion Webui · 極狐GitLab (jihulab.com)。

然后去Python官網(wǎng)下載3.10以上的版本,WebUI作者推薦的是3.10.6,安裝的時候記得勾選Add Python to PATH,否則WebUI會識別不到Python環(huán)境。

檢測是否安裝成功,可以在cmd中輸入python -V,如果打印了Python的版本號則安裝成功了。

然后我們雙擊WebUI根目錄下的webui-user.bat就可以啟動Stable Diffusion服務(wù)了。

如果此時提示還找不到Python環(huán)境或者電腦本地有Python環(huán)境,我們可以打開webui-user.bat文件,在Set PYTHON=之后填上自己安裝的Python路徑。

如果我們要跟換Python版本,或者電腦里裝了多個Python版本,我們也可以修改webui-user.bat文件來指定使用的版本。

如果之前用其他的版本的Python跑過WebUI,現(xiàn)在想換另一個Python版本,操作和上面一樣,并且需要將新版本的python.exe拷貝一份到venv/Scripts文件夾替換舊的exe。

這里我看一下webui-user.bat文件沒一行的作用:

#設(shè)置python路徑
set PYTHON=C:\Users\UserName\AppData\Local\Programs\Python\Python310\python.exe
#設(shè)置git的路徑
set GIT=E:\git\bin\git.exe
#設(shè)置venv文件夾路徑
set VENV_DIR=E:\stable-diffusion-webui\venv
#設(shè)置啟動參數(shù)
set COMMANDLINE_ARGS=--deepdanbooru --xformers 

在webui-user.bat第一次運行的時候,如果set PYTHON沒有指定python路徑會默認使用系統(tǒng)變量中的python來構(gòu)建WebUI自己的虛擬環(huán)境,構(gòu)建完之后,下次啟動WebUI就會使用自己虛擬環(huán)境中的Python環(huán)境,位置在venv\Scripts

下載完之后就可以雙擊webui-user.bat啟動webui服務(wù)了,然后通過瀏覽器進入服務(wù)器地址就可以進入WebUI了。

但大多數(shù)時候很多庫直接通過腳本基本下載不下來,這時候就只能手動下載下來了,具體可以參見第二小節(jié)。

由于墻的原因各種庫總會出現(xiàn)鏈接不上庫地址的情況,就算手動下載還要考慮webui使用的版本,所以建議還是使用整合包會方便很多。

我們可以在set COMMANDLINE_ARGS后添加--autolanch啟用自動啟動服務(wù),在webui服務(wù)啟動后會自動使用默認瀏覽器啟動UI界面。

2.部署遇到的問題

在webui-user.bat下載依賴時經(jīng)常會出現(xiàn)連不上git,導(dǎo)致下載失敗,然后報Couldn’t install xxxx,沒別的辦法,我自己使用梯子也會出現(xiàn)連不上的情況,然后根據(jù)本地部署stable-diffusion-webui出現(xiàn)Couldn’t install gfpgan錯誤的解決方法 這個教程更改luanch.py中的源也一樣。解決方法有兩個,其一找到對應(yīng)版本的依賴庫,手動下載安裝,其二多試幾次,總有一次能成功,我就是跑了好幾次成功了一次,就ok了。

當(dāng)然想要更方便,解壓即用的,推薦秋葉大佬的整合,秋葉大佬甚至提供了啟動器,這是一個功能強大的管理器,其中為我們整合了很多優(yōu)秀的模型、Lora、插件等,并且集成了UI漢化,甚至可以選擇Stable Diffusion的版本等等,總之功能很強大,當(dāng)然整合包和啟動器都是Windows版本的,在其他的環(huán)境下使用還得自己來。

GFPGAN安裝不上

gfpgan是騰訊ARC開源的一個庫,也不知道為什么開不開梯子,WebUI都無法自行安裝這個庫,解決辦法就是手動安裝。

庫地址:TencentARC/GFPGAN: GFPGAN aims at developing Practical Algorithms for Real-world Face Restoration. (github.com)。

使用git將庫clone到stable-diffusion-webui\venv\Scripts目錄下,然后進入GFPGAN目錄,依次次執(zhí)行

E:\stable-diffusion-webui\venv\Scripts\python.exe -m pip install basicsr facexlib
E:\stable-diffusion-webui\venv\Scripts\python.exe -m pip install -r requirements.txt

安裝GFPGAN的依賴庫,安裝完之后執(zhí)行

E:\stable-diffusion-webui\venv\Scripts\python.exe setup.py develop

安裝GFPGAN,然后再啟動webui時就會檢測到已安裝,從而跳過自動安裝。

clip安裝不上

原因也是自動連接時連接不上clip庫,解決方法同樣是手動安裝,將open_clip庫clone到stable-diffusion-webui\venv\Scripts目錄下,然后進入open_clip目錄,然后執(zhí)行

E:\stable-diffusion-webui\venv\Scripts\python.exe setup.py build install

再啟動webui,如果還是提示要安裝clip,說明clip沒有安裝上,上面的命令會構(gòu)建并安裝clip,但不知道為什么我沒安裝上,于是只能之際再手動安裝一次了,可以執(zhí)行

E:\stable-diffusion-webui\venv\Scripts\pip.exe install clip

然后再啟動webui時就會檢測到已安裝,從而跳過自動安裝。

缺少xxx模塊

大多數(shù)情況都是WebUI在Installing requirements for Web UI時由于網(wǎng)絡(luò)原因沒裝上,比較便捷的解決辦法就是多跑幾次,總有一次能安裝上,或者也手動安裝。

repositories中所用到的庫下載失敗

所有的庫如果都下載不下載,就只能全部手動下載了,一共六個庫

stablediffusion

這個是AI繪圖的核心庫,Stability-AI公司開源的stablediffusion,直接通過git克隆到repositories目錄,克隆下來的庫存在stablediffusion目錄下,由于還有另一個庫叫stable-diffusion,所有AUTOMATIC1111把庫命名成了stable-diffusion-stability-ai,所以我們要把庫的目錄名改成stable-diffusion-stability-ai。

taming-transfomers

stable-diffusion

k-diffusion-sd

k-diffusion-sd庫AUTOMATIC1111命名為了k-diffusion,同樣也要把庫目錄名改過來。

CodeFormer

BLIP

啟動時報ImportError:Bad git executeable

打開venv\Lib\site-packages\git\cmd.py文件在from git.compat import前一行加入一行os.environ['GIT_PYTHON_REFRESH'] = 'quiet'。

庫的hash值不確定

【AI】Stable-Diffusion-WebUI使用指南

這種情況我只在遷移軟件的過程中遇到,解決辦法就是使用git,按照提示的命令把所有不確定hash值得庫都執(zhí)行一邊就可以了,需要注意的是需要在電腦中安裝git執(zhí)行命令才生效,我沒安裝git的直接使用秋葉整合包里的git文件執(zhí)行指令沒效果。

3.注意事項

在開了梯子的情況下,UI界面有概率出現(xiàn)與服務(wù)器通信中斷的問題。

三、WebUI文件夾功能

這里只說明一些我們會使用的文件夾的作用,不使用的就略過了。

  • embeddings:存放美術(shù)風(fēng)格文件的目錄,美術(shù)風(fēng)格文件一般以.pt結(jié)尾,大小在幾十K左右;

  • extensions:存放擴展插件的目錄,我們下載的WebUI的插件就放在這個目錄里,WebUI啟動時會自動讀取插件,插件目錄都是git庫,可以直接通過git更新;

  • extensions-builtin:存放WebUI內(nèi)置的擴展;

  • models/hypernetworks:存放風(fēng)格化文件的目錄,風(fēng)格化文件是配合Prompt使用的,以使AI會出對應(yīng)風(fēng)格的圖片,風(fēng)格化文件也以.pt結(jié)尾,大小在幾百MB左右;

  • models/Lora:存放Lora的文件的目錄,Lora文件是用來調(diào)整模型的,可以重映射模型文件的Prompt映射,使AI在相應(yīng)的提示詞下按照Lora的樣式繪制,Lora文件一般以.safetensors結(jié)尾,大小在幾百MB左右;

  • models/Stable-diffusion:存放模型的文件的目錄,AI繪畫時的采樣基本從這個文件里采,影響圖片的整體樣式與畫風(fēng),一般以.ckpt.safetensors結(jié)尾,大小在幾個G左右;

  • models/VAE:存放VAE文件的目錄,VAE文件會影響圖片整體的色調(diào),如在剛開始玩WebUI時畫出的圖都比較灰,就是因為WebUI默認沒有為我們設(shè)置VAE導(dǎo)致的,VAE文件一般以.ckpt.vae.pt結(jié)尾,大小在幾百MB或幾個G不等;

  • outputs/extras-images:AI放大的原圖的默認保存路徑;

  • outputs/img2img-grids:批量圖生圖時的縮略圖原圖的默認保存路徑;

  • outputs/img2img-images:圖生圖的原圖的默認保存路徑;

  • outputs/txt2img-grids:批量文生圖時的縮略圖原圖的默認保存路徑;

  • outputs/txt2img-images:文生圖的原圖的默認保存路徑;

    這些路徑我們是可以在WebUI的設(shè)置界面修改成自定義路徑的。

  • scripts:存放第三方腳本的目錄;

  • venv:這個文件夾是WebUI首次運行時配置運行環(huán)境自己創(chuàng)建的,出現(xiàn)運行環(huán)境的問題時,可以刪掉它讓W(xué)ebUI重新生成。

四、WebUI界面說明

這里以無第三方插件的原版的WebUI界面為例,使用了整合包或安裝了第三方插件的界面會有所不同。

本節(jié)參考了:

AI繪畫指南 stable diffusion webui (SD webui)如何設(shè)置與使用 — 秋風(fēng)于渭水;

使用Automatic1111的WebUI的菜鳥指南:穩(wěn)定擴散 ;

NovelAI模型各參數(shù)解析以及對應(yīng)關(guān)系

1.文生圖(txt2img)

  • Prompt:正向提示詞;

  • Negative prompt:反向提示詞;

  • 在Generate(生成)下有一排按鈕:

    【AI】Stable-Diffusion-WebUI使用指南

    箭頭(第一個按鈕):從提示詞中提取通用的提示詞,一般用于使用別人的提示詞時過濾掉一些別人個性化的提示詞;

    垃圾簍(第二個按鈕):快速清除提示詞;

    圖畫(第三個按鈕):打開Textual Inversion、Hypernetworks、Checkpoints和Lora的管理界面,點擊文件可以往提示詞中加入對應(yīng)的風(fēng)格化應(yīng)用;

    文件(第四個按鈕):這個按鈕的功能是配合第五個按鈕一起使用的,可以選擇下方Styles下拉列表中已經(jīng)保存起來的提示詞模板應(yīng)用到提示詞中;

    存儲(第五個按鈕):存儲當(dāng)前Prompt和Nagetive prompt的提示詞作為提示詞模板,存儲好的提示詞模板命好名后可以在Styles下來列表中看到,提示詞模板存儲在WebUI根目錄的styles.csv文件中,目前WebUI沒有提供在UI中刪除提示詞模板的功能,想要刪除不需要的提示詞模板,我們需要通過修改styles.csv文件。

  • Sampling method(采樣方法):生成圖片時的采樣算法;

  • Sampling steps(采樣步數(shù)):生成圖片時的采樣重復(fù)次數(shù);

  • Restore faces(面部修復(fù)):主要用于生成真人圖片時對人臉進行算法修復(fù),讓人臉更接近真實的人臉,當(dāng)畫二次元圖人臉崩壞時也可以使用這個選項來修復(fù);

    在Settings(設(shè)置)/Face restoration(人臉修復(fù))中可以選擇人臉修復(fù)的算法,目前WebUI只整合了CodeFormer和GFPGAN兩種算法,默認是沒有啟用任何算法的,需要我們自己手動去啟用,Code Former weight parameter參數(shù)可以調(diào)整算法的權(quán)重,注意:0是最大權(quán)重效果,1是最小權(quán)重效果,和我們常見權(quán)重是反過來的。

  • Tiling:是一種優(yōu)化技術(shù),對于性能比較差的機器可以勾選上來降低顯存的占用,提高出圖速度,對于性能足夠的機器就不用勾選了,勾選了反而會起到反作用;

  • Hires.fix(高清分辨率修復(fù)):用于提高分辨率的優(yōu)化,最大可以將分辨率提升4倍,512x512可以直接提升到4K;

    由于Hires.fix是在AI畫完一張圖之后再進行優(yōu)化的,要對細節(jié)進行補充,所以會對圖片進行一定維度的重繪,所以對原有的圖會有一些改動,不過這對文生圖來說沒有任何影響。Hires.fix也有一些自己參數(shù):

    Upscaler(放大算法):優(yōu)化采用的放大算法,其中提供了很多內(nèi)置的算法,同時我們也可以在Settings(設(shè)置)/Upscaling(放大)中添加沒有預(yù)制出來的ESRGAN算法,里面有一個算法R-ESRGAN 4x+ Anime6B據(jù)說對二次元圖的放大效果比較好;

    Hires setps(高清修復(fù)的步數(shù)):和采樣步數(shù)的效果一樣;

    Denoising strength(重繪幅度):重繪幅度就是Hires.fix在重繪細節(jié)的時候,AI的自由發(fā)揮空間,值越大AI就越放飛自我,值越小,AI就越按照原圖重繪。

    Resize width to(將寬度調(diào)整至)/Resize height to(將高度調(diào)整至):直接將圖片放大至指定分辨率,和放大倍率是沖突的。

  • Width(圖片寬度)/Height(圖片高度):設(shè)定圖片的分辨率;

  • Batch count(生成批次):批處理次數(shù),設(shè)定同時處理多少批圖片生成;

  • Batch size(每批數(shù)量):每次批處理同時生成的圖片數(shù)量,最大值為8,需要根據(jù)自己電腦的顯存大小來調(diào)節(jié),如我的12G顯存就沒辦法同時出8張1024x1024分辨率的圖,只能同時出4張;

  • Seed(隨機種子):用來設(shè)置用于AI去噪的噪點圖,一個隨機數(shù)唯一對應(yīng)一張噪點圖,默認值是-1,表示使用隨機數(shù),也可以設(shè)置一個隨機數(shù),來規(guī)定AI畫同樣的圖。

    Seed也有兩個自己的參數(shù),勾選Seed后面的Extra復(fù)選框可以編輯。

    Variation seed(差異隨機種子):組要用于在確定好一個自己比較想要的圖片結(jié)構(gòu)之后,設(shè)置好隨機種子,然后通過設(shè)置差異隨機種子,讓AI在這張圖的基礎(chǔ)上每次畫出有一點點區(qū)別的圖;

    Variation streenght(差異強度):控制AI在一張圖的基礎(chǔ)上出圖的差異變化的強弱。

    Resize seed from width/Resize seed from hright:控制AI繪圖時在當(dāng)前分辨率往指定分辨率的圖靠近,實際使用過程感覺沒什么卵用。

    差異隨機種子的另一種用法是,在出了一張構(gòu)圖很好的圖時,通過圖生圖鎖定隨機種子和差異隨機種子,然后調(diào)整差異強度,使差異隨機種子出現(xiàn)一些細微的變化,來細微的調(diào)整出圖效果,可以隨機生成構(gòu)圖類似而又不同的圖片。

  • CFG Scale(提示詞相關(guān)性):控制AI是否嚴(yán)格按照提示詞來繪圖,越小AI繪畫越隨意,越大AI就越嚴(yán)格的按照提示詞出圖;

  • Script(腳本):用來啟動第三方腳本,WebUI內(nèi)置了三個腳本。

    X/Y/Z plot:可以用來批量處理同一提示詞在不同維度之間的效果,如不同的采樣方法,不同的采樣步數(shù)或者不同的提示詞相關(guān)性等,用來測試不同維度的參數(shù)變化對出圖的影響,以尋找最佳的圖片質(zhì)量的參數(shù)配置。

    如不同采樣算法在不同采樣步數(shù)的情況下對圖片的影響:

【AI】Stable-Diffusion-WebUI使用指南

具體的可以參考這篇博文:

Stable Diffusion WebUI 小指南 - X/Y/Z Plot。

Prompt matrix(提詞矩陣):用來分割不同關(guān)鍵詞對圖片的影響,操作方法就是通過|來分割關(guān)鍵詞,如:

(masterpiece:1.3), (the best quality:1.2), (super fine illustrations:1.2), (Masterpiece)|, 1girl,black hair|, Sailor suit,Pleated shirt|,huge breasts,white pantyhose

Prompt matrix就會按照分割的關(guān)鍵次一次組合來繪制不同組合的出圖效果:

這里參考了這篇博客:

AI繪畫教程(3)基礎(chǔ)篇-SDWEBUI的基礎(chǔ)功能,你都會用了嗎?。

Prompts from file or textbox:用于批量出圖的工具,我們可以在List of prompt inputs(提示詞輸入列表)中輸入提示詞,也可以從文本中輸入提示詞,腳本會自動將文本的提示詞填入提示詞輸入列表,然后勾選Iterate seed every line(每行使用一個隨機種子)或Use same random seed for all lines(每行使用相同的隨機種子),來達成每一行作為一份提示詞輸入來生成對應(yīng)的圖片。

2.圖生圖(img2img)

圖生圖界面上半部分、下半部分和文生圖基本一樣,只有中間部分不一樣,上半部分多了兩個按鈕。

  • Interrogate CLIP(CLIP反推提示詞):使用CLIP模型從圖片中反推圖片用到的正向提示詞;

  • Interrogate DeepBooru(DeepBooru反推提示詞):使用DeepBooru模型從圖片中反推圖片用到的正向提示詞;

  • img2imge(圖生圖):全局圖生圖,AI會根據(jù)重繪幅度和原圖進行創(chuàng)作;

  • Sketch(繪圖):就是最簡單的局部重繪功能,可以通過畫面圖繪區(qū)域,讓AI只重繪所圖的區(qū)域;

  • Inpaint(局部重繪):功能稍微強大一點的局部重繪,可以對蒙版進行操作,蒙版就是我們用畫筆圖黑的部分;

  • Inpaint sketch(手涂蒙版):手繪蒙版又是一個更強大的局部重繪,可以拾取畫面中的像素顏色,以讓AI識別要重繪的像素分布,能更精準(zhǔn)的進行局部重繪;

  • Inpaint upload(上傳蒙版重繪):這個功能主要是解決WebUI在繪制蒙版是的不精確,對想要精確選區(qū)的重繪區(qū)域使用WebUI的畫筆很難精確的圖繪,上傳蒙版重繪則是通過上傳一張與原圖大小一致的黑白的蒙版圖片來匹配原圖,從而對原圖進行重繪,這里要注意的是這里的顏色和Sketch、Inpaint的顏色剛好相反,Sketch是黑色區(qū)域為蒙版區(qū)域,這里這是白色區(qū)域為蒙版區(qū)域,如:我這里想重繪一下女孩身后的欄桿,我們就可以用PS將欄桿精確的選區(qū)出來,然后制作蒙版圖,傳到WebUI上來進行重繪:

    【AI】Stable-Diffusion-WebUI使用指南

  • Batch(批量重繪):指定一個輸入文件夾和一個輸出文件夾,就可以進行圖片的批量重繪,如果指定了蒙版文件夾,還可以批量的使用蒙版圖精確的進行局部重繪。

    局部重繪還有一些自有的參數(shù):

    Mask blur(蒙版模糊):值越大重繪出來的區(qū)域越清晰,值越小重繪出來的區(qū)域越模糊;

    Mask mode(蒙版模式):可以選擇是重繪蒙版區(qū)域還是非蒙版區(qū)域;

    Masked content(蒙版蒙住的內(nèi)容):可以選擇蒙版要蒙什么東西,可以是原圖也可以是噪點等;

    Inpaint area(重繪區(qū)域):可以選擇要重繪的區(qū)域,感覺和蒙版模式的功能是一樣的;

    Only masked padding,pixels(僅蒙版邊緣的預(yù)留像素):設(shè)定蒙版邊緣預(yù)留多少像素不進行重繪,實際使用中沒感覺出有什么作用。

  • Dinoising strength(重繪幅度):控制整個圖生圖過程中AI重繪過程的自由發(fā)揮程度,值越大AI重繪越隨意,值越小AI重繪越接近原圖。

  • Script(腳本):圖生圖除了擁有文生圖的腳本外,還擁有一些專用的腳本。

    Lookback(回送):可以將這一次的生成圖作為圖生圖的輸入進行下一次繪制,這個功能對于線稿上色簡直是神助攻。

    啟用后會多出幾個設(shè)置選項:

    Loops:控制回送的次數(shù);

    Final denoising strength:最終重繪強度,是疊加在圖生圖的重繪強度之上的,第一次回送使用的實際重繪強度=[重繪強度]×[最終重繪強度],之后每一次回送時使用的[實際重繪強度]=[上一次實際重繪強度]×[最終重繪強度];

    Denoising strength curve:可以選擇腳本重繪強度的變化曲線,腳本為我們內(nèi)置了三個曲線;

    Append interrogated prompt at each iteration:為每一次回送自動反推圖片提示詞并應(yīng)用;

    Outpainting mk2(向外繪制第二版):可以將圖片進行一定像素方位內(nèi)的擴展,實測,發(fā)現(xiàn)腳本與雙語對照插件存在沖突,啟用雙語對照插件后,擴展繪制的效果很差,關(guān)閉之后,效果就會變得很好;

    SD upscale(SD 放大):這就是一個依賴于圖生圖的分塊放大算法,可以使用更少的顯存達到4K圖的放大效果,實測放大到最大的4K,只需要5G+顯存,放大效果回收重繪強度影響和提示詞影響;

    controlnet m2m(ConteolNet視頻轉(zhuǎn)繪):視頻生成的腳本,轉(zhuǎn)的視頻效果比較渣,就不過多累述了,可以參見這個視頻:【AI繪畫進階教程】制作跳舞小姐姐 m2m和mov2mov哪家強?。

3.附加功能(Extras)

附加功能界面主要是用來做圖片放大用的。

  • Scale by(等比放大):按原圖長寬各乘以相同比例來放大圖片;

  • Scale to(按分辨率放大):可以將原圖放大成任何比例,如正方形圖可以被放大成長方形圖,勾選Crop to fit,AI會自動為我們裁剪,不勾選則不會按照指定的分辨率放大,會默認用回等比放大;

  • Upscaler 1(升頻器1)/Upscaler 2(升頻器2):AI做圖片放大時會處理兩次,兩次可以分別采用不同的放大算法,不同的算法放大效果不一樣,所以WebUI做兩次放大,以便組合不同放大效果達到更好的放大效果。

  • Upscaler 2 Visibility(升頻器2可見度):用于設(shè)置第二次放大時使用的算法在放大過程中的權(quán)重;

  • GFPGAN visibility(GFPGAN模型可見度)/CodeFormer visibility(CodeFormer模型可見度)/CodeFormer weight(CodeFormer權(quán)重):這三個選項都是用來調(diào)整圖片放大時對圖片的修復(fù)作用的,GFPGAN和CodeFormer模型在前面文生圖的Hire.fix中也有用到,主要作用就是用來做圖片修復(fù)的,調(diào)整可見度就可以調(diào)整兩個模型混合使用的程度,CodeFormer還可以更精細的調(diào)整權(quán)重,0表示最大權(quán)重,1表示最小權(quán)重。在我自己的測試中,兩個模型對二次原圖片的修復(fù)效果基本一致,在相對擬真的圖片中存在差異,我們可以看一下兩個模型的修復(fù)效果:

    GFPGAN visibility=1,CodeFormer visibility=0,CodeFormer weight=0:

    【AI】Stable-Diffusion-WebUI使用指南

    可以看到GFPGAN對紋理的修復(fù)還是可以的,但是對皮膚的紋理修復(fù)有點過度磨皮的剛覺了。

    GFPGAN visibility=0,CodeFormer visibility=1,CodeFormer weight=0:

    【AI】Stable-Diffusion-WebUI使用指南

    CodeFormer則是對皮膚紋理的修復(fù)更真實自然,但對其他的物體的紋理修復(fù)就不如GFPGAN,并且對五官有過度修復(fù)。

    GFPGAN visibility=0.5,CodeFormer visibility=0.5,CodeFormer weight=0.5:

    【AI】Stable-Diffusion-WebUI使用指南

    將二者結(jié)合后的效果,要好很多。

  • Batch Process(批量處理)/Batch from Directory(從目錄進行批量處理):兩個都是對圖片放大做批量處理的。

    本節(jié)參考了帖子:

    GFPGAN and CodeFormer - seperately and together. : StableDiffusion。

4.PNG圖片信息(PNG Info)

PNG圖片信息就是一個更強大的CLIP反推提示詞,它可以將沒有經(jīng)過處理的AI生成的原圖反推出生成這張圖所有的所有參數(shù),包括正反向提示詞、采樣步數(shù)、采樣方法、提示詞相關(guān)性、隨機種子、尺寸、所用模型的hash值、Clip跳過的次數(shù)還有一個不知道有什么用的ENSD。

【AI】Stable-Diffusion-WebUI使用指南

5.模型合并(Checkpoint Merger)

模型合并界面主要使用來合并模型的,具體參數(shù)后面在模型合并的章節(jié)一起講。

6.訓(xùn)練(Train)

訓(xùn)練界面是專門用來做模型訓(xùn)練用的,具體參數(shù)也在后面模型訓(xùn)練的章節(jié)一起講了。

7.設(shè)置(Settings)

設(shè)置界面的參數(shù)就太多了,建議弄一個漢化,或者用整合了漢化的整合包,大部分參數(shù)在漢化之后看一下名字就知道是作用了。

這里推薦安裝這個漢化庫:dtlnor/stable-diffusion-webui-localization-zh_CN: Simplified Chinese translation extension for AUTOMATIC1111’s stable diffusion webui 。

然后可以配合這個雙譯插件一起使用:sd-webui-bilingual-localization/README_ZH.md at main · journey-ad/sd-webui-bilingual-localization。

兩個插件都安裝之后的界面是這樣的:

【AI】Stable-Diffusion-WebUI使用指南

8.擴展(Extensions)

用來管理第三方插件的界面,所有安裝的擴展,包括WebUI內(nèi)置的都會在Installed(已安裝)欄中顯示,并且可以直接管理插件的更新。更新插件的時候需要確保自己的網(wǎng)絡(luò)能連接得上github庫,其實也沒什么卵用,就算梯子沒毛病,也經(jīng)常連不上git庫。

Available(可用):這是直接連接https://raw.githubusercontent.com/wiki/AUTOMATIC1111/stable-diffusion-webui/Extensions-index.md擴展列表,我們可以點擊(加載自)來刷新擴展列表,然后從這里來下載列表里的第三方插件,實際測試基本上裝不了。

Install from URL(從網(wǎng)址安裝):用來安裝擴展列表里沒有的第三方庫,就是用來給不會用git的人使用的。實際上也基本連不上git庫,評價是不如直接用git來得舒服。

五、提示詞原理

提示詞不同的繪畫程序會有所在區(qū)別,這里以webui為主。

本節(jié)參考了這幾篇博文:

元素同典:確實不完全科學(xué)的魔導(dǎo)書

Tags基本編寫邏輯及三段術(shù)式入門與解析v3

完整tags書寫思路,從人工智能理論來了解如何繪畫

1.提示詞的順序

對于提示詞對畫面的影響,我們首先想到,也是最直觀看到的自然就是提示詞的順序,AI對越靠前的提示詞就越重視,我們可以做個實驗來看看效果:

【AI】Stable-Diffusion-WebUI使用指南

圖1作為參考圖,

圖2:深林(Forest)被放置在首位,AI繪制的畫面開始著重數(shù)目,草叢的特征被稀釋,同時落葉增加了;

圖3:林間小道(Forest trail)被放置在首位,AI繪制的畫面小路的細節(jié)被增加;

圖4:落葉(fallen leaves)被放置在首位,AI繪制的畫面中落葉的數(shù)量被大量增加;

圖5:草叢(Grass)被放置在首位,AI繪制的畫面草叢的特征被方法,樹下均被繪制了茂密的草叢;

圖6:秋天(Autumn)被放置在首位,AI繪制的畫面開始大片的出現(xiàn)秋天的特征,樹葉變得更黃了,落葉變得更多了,連女孩也開始套上了圍巾,換上了秋季得衣服。

2.提示詞的權(quán)重

在stable diffusion webui中提示詞可以被增加權(quán)重,以提高AI對某些提示詞的重視程度,sd webui支持兩種為提示詞加權(quán)重的方式,其一使用英文小括號(),括號可以無限疊加,如:((Autumn))其二使用英文小括號加權(quán)重,括號也可以疊加,如:(Grass,(Autumn:1.3)),一個括號代表為提示詞增加1.1倍權(quán)重,疊加一個括號表示增加1.1*1.1倍的權(quán)重,依次類推,而指定了權(quán)重的方式則是直接為提示詞增加指定的權(quán)重,如在(Grass,(Autumn:1.3))中,Grass被增加了1.1倍的權(quán)重,Autumn則被增加了1.1*1.1*1.3被的權(quán)重。使用指定式權(quán)重時必須使用一個括號括起來。

我們測試一下提示詞權(quán)重

【AI】Stable-Diffusion-WebUI使用指南

圖2給秋天(Autumn)增加了1.1*1.1=1.21倍的權(quán)重,秋天的氛圍變濃了;

圖3給秋天(Autumn)增加了1.1*1.3=1.43倍的權(quán)重,秋天的特征變得更明顯,連草地都變黃了。

需要注意的是在給提示詞增加權(quán)重時也不是加高越好的,加得太高了反而會適得其反,而是要根據(jù)整個提示詞組,相對權(quán)重來增加,比如圖2的提示詞組中秋天這個提示詞加了兩個括號后,相對權(quán)重已經(jīng)是最高的了,就沒必要再給秋天這個提示詞加七八個括號上去了。

權(quán)重過高反而會使繪制的圖崩壞:

【AI】Stable-Diffusion-WebUI使用指南

3.提示詞的形式

我們在使用提示詞描述一個畫面的時候,有多種形式,可以用單個的詞語組合、可以用一段完整的句子、也可以用單詞與短句的結(jié)合,不同的提示詞形式又有什么影響呢?我們還是通過實驗來看看。

我們來畫一個“一個穿著白色運動衫和粉紅色運動鞋的黃色短發(fā)的站在街上的女孩”,使用文生圖的Prompts from file or textbox腳本分別生成三種類型的提示詞的圖。

單詞組:

1girl,short yellow hair,white sweatshirt,pink sneakers,standing,in street,full body,looking at viewer,

完整長句:

A girl with short yellow hair in a white sweatshirt and pink sneakers standing in the street,full body,looking at viewer,

短語與單詞組合:

short yellow hair,a  girl in a white sweatshirt and pink sneakers,standing,in street,full body,looking at viewer,

出圖結(jié)果:

【AI】Stable-Diffusion-WebUI使用指南

第一列:使用的是單詞組提示詞,畫的四張測試圖里面頭發(fā)顏色都畫對了,衣服顏色全部被子鞋子顏色污染沒有一張是正確的,鞋子顏色也只有三張是正確的;

第二列:使用的是完整的長句提示詞,畫的四張測試圖里面頭發(fā)、衣服、鞋子顏色都正確;

第三列:使用的短句和單詞組合的提示詞,畫的四張測試圖里面頭發(fā)顏色都正確,衣服楊色全部被鞋子顏色污染,鞋子顏色都正確。

現(xiàn)在不同類型的提示詞的效果就出來了,很明顯使用完整長句的提示詞能很好的綁定物體的特征,短句與單詞組合次之,單詞組提示詞綁定的最差。

不過大多數(shù)情況一個畫面是很難使用一句完整的長句描述出來的,所以三種類型的提示詞多數(shù)需要根據(jù)實際情況來選擇使用。

4.分步描繪

stable diffusion支持多種分步繪制的語法,如:[a | b]、a | b、[a : b : 0.4]、[a : 10][a :: 10]a:0.5 AND b:0.6。

對主體的分步描繪

語法[a:b:0.4],假設(shè)采樣步數(shù)為20,那么這個語法的意思就是前8步繪制特征a,后12步繪制特征b,分步描繪可以將多個提示詞融合到一個主體上;

語法[a | b]a | b,表示第一步畫特征a,第二步畫特征b,第三步畫特征a,第四步畫特征b,依次類推;

還是先來看一下實驗:

【AI】Stable-Diffusion-WebUI使用指南

不使用分步的(panda:0.4),(goblin:0.6)已經(jīng)不知道在畫什么了,使用可控分步的[panda:goblin:0.4]和均衡分步的[panda | goblin]的效果和我們先畫大熊貓為整體畫面定下結(jié)構(gòu)然后往大熊貓身上添加哥布林的特征的預(yù)期比較接近,panda:0.4 AND goblin:0.6語法融合的感覺更加深入,有一種大熊貓和哥布林的雜交物種的感覺。

對修飾詞的分布描繪

用于修飾某一主體的修飾詞的混合和主體本身的混合又有一點細微的差別,我們漸變色頭發(fā)為例,分步描繪漸變發(fā)色有兩種方式,一種是分步描繪顏色,不分步頭發(fā),另一種是顏色和頭發(fā)都分步描繪:

可以看到在不使用分步繪制1girl,red and blue hair,1girl,red hair, blue hair,的情況下ai也能畫出相應(yīng)的顏色混合的頭發(fā),但是發(fā)色是直接硬拼接起來的,無論是只分步顏色還是顏色和頭發(fā)都分步,效果是一樣的;

在使用1girl,[red | blue] hair,1girl,[red hair | blue hair],均衡分步繪制語法繪制的頭發(fā)更接近正常的漸變色的染發(fā) ;

在使用沒有中括號的1girl,red | blue hair,1girl,red hair | blue hair,均衡分步繪制語法繪制的頭發(fā) 也有那么一點硬接的感覺,但是混合效果還可以,比不使用分步繪制的情況要好;

對于修飾詞的分步描繪使用可控步數(shù)的語法1girl,[red:blue:0.5] hair,1girl,[red hair:blue hair:0.5],則完全不起作用了;

使用AND語法的分步描繪1girl,red AND blue hair,1girl,red hair AND blue hair,在只有分步顏色的情況下,AI直接做了紅色和藍色的混合,用混合后的顏色來作為頭發(fā)的顏色了,在顏色和頭發(fā)都分步描繪的情況下, 效果和使用中括號的均衡分步描繪的效果差不多了。

在我自己的使用過程中,分步描繪的混合效果很大程度上取決于大模型,比如測試發(fā)色混合時同一套提示詞使用abyssorangemixAOM3模型混合的效果就很差,使用revAnimated模型混合的效果就很好。

指定開始步數(shù)和結(jié)束步數(shù)的分布描繪

語法[a : 10],表示從第10步開始畫特征a;

語法[a :: 10],表示從第10步開始結(jié)束畫特征a;

二者還可以結(jié)合[[a :: 16] : 4],表示從第4步開始,到第16步結(jié)束畫特征a;

三者在出圖效果上差別不大:

【AI】Stable-Diffusion-WebUI使用指南

5.占位符

占位符指的是一些模型無法理解的符號或詞語,這些符號或詞語在模型中沒有明確的特征與它們相關(guān)聯(lián),所以ai畫不出這些符號或詞語的特征,但是它們又會占用詞元數(shù)量,這樣的符號或詞語對ai來說就是占位符,常見的占位符符號有:\ * + _等,詞語可以是任何模型不理解的自造詞。

占位詞的一大作用就是拉開一個詞元與另一個詞元之間的距離,最常見的用法就是通過拉開詞元距離來減少顏色污染,如:畫一個一個穿著白色運動衫和粉紅色運動鞋的黃色短發(fā)的站在街上的女孩,在使用的單詞組的情況下顏色污染很嚴(yán)重,我們就可以使用占位詞來拉開不用顏色詞元之間的距離來避免顏色污染。

【AI】Stable-Diffusion-WebUI使用指南

可以看到在使用占位符將white sweatshirt和pink sneakers的詞元距離拉開之后,顏色污染被有效的避免了。

6.Emoji表情

Emoji表情也在stable diffusion webui的支持當(dāng)中,并且能很精準(zhǔn)的識別,比如在想讓ai畫出一些不太好描述的表情的時候,就可以使用emoji表情來控制。

(((??))),1girl,Head Close-up,complete face,
(((??))),1girl,Head Close-up,complete face,
(((??))),1girl,Head Close-up,complete face,

??:失望但又如釋重負;

??:傲慢;

??:懇求;

出圖的結(jié)果從左往右一次是??、??、??:

【AI】Stable-Diffusion-WebUI使用指南

當(dāng)然除了描述表情的emoji表情,一些描述節(jié)日的也很好用:

((??)),1girl,full body,standing,
((??)),1girl,full body,standing,
((??)),1girl,full body,standing,

【AI】Stable-Diffusion-WebUI使用指南

7.提示詞分類

提示詞也是分很多種類的,比如有專門描述畫面質(zhì)量的、有專門描述畫面氛圍的、有專門描述光照的、有專門描述渲染的、有專門描述鏡頭的、繪制畫面主體的等等。

描述詞數(shù)量巨大,這里就不分類列出來了,提供幾個我常用提示詞收錄網(wǎng)址:

Danbooru 標(biāo)簽超市 (novelai.dev)

魔咒百科詞典 (aitag.top)

從零開始的魔導(dǎo)書 元素法典 - AI繪圖指南wiki (aiguidebook.top)

NovelAI tag在線生成器 (wolfchen.top)

Danbooru: Anime Image Board (donmai.us)

六、模型文件

Stable-diffusion支持五種模型文件,Checkpoint、Embedding、Hypernetwork、Lora和VAE。

1.Checkpoint

Checkpoint是深度學(xué)習(xí)領(lǐng)域模型訓(xùn)練中保存模型參數(shù)的一種術(shù)語,一個模型的訓(xùn)練是循序漸進的,訓(xùn)練到一定的階段就可以使用Checkpoint來保存當(dāng)前的訓(xùn)練結(jié)果,這個訓(xùn)練結(jié)果也就是我們常說的模型。

Checkpoint模型就是我們在webui的Stable Diffusion checkpoint中選擇的模型。Checkpoint模型我把它理解為AI的記憶,它控制著AI能畫出什么,畫出的東西長什么樣。

Checkpoint模型一般分為兩種,一種是Stability.AI官方為Stable Diffusion訓(xùn)練的通用超大型模型,目前已經(jīng)更新到v2.1版本,這種模型都非常大,基本是4-5G往上。

官方提供的基礎(chǔ)通用模型可以到HuggingFace下載:

1.5版本:runwayml (Runway) (huggingface.co);

2.1版本:stabilityai (Stability AI) (huggingface.co)。

另一種則是在通用模型的基礎(chǔ)上訓(xùn)練的針對某一方面的定制化模型,也是我們最常使用的、在各大模型網(wǎng)站下載的模型,都屬于這個種類。Checkpoint在存儲訓(xùn)練參數(shù)的同時也提供參數(shù)的載入,進行再訓(xùn)練,個人訓(xùn)練的Checkpoint模型都是基于官方提供的Checkpoint模型再訓(xùn)練得出的。

定制化模型可以到C站下載:Civitai。

大模型的使用

大模型的使用就比較簡單了,直接點擊左上角的Stable Diffusion Model就可以切換大模型,也可以通過點擊右上角的show/hide extra networks按鈕通過點擊預(yù)覽圖切換。

【AI】Stable-Diffusion-WebUI使用指南

2.Lora

Lora模型是一種生成對抗網(wǎng)絡(luò)模型,主要用對Checkpoint模型進行定向的微調(diào)。個人理解是用來做Checkpoint模型提示詞重映射的。比如,在一個Checkpoint模型中,提示詞“貓”對應(yīng)形象是“加菲貓”,那么Lora就可以將“貓”這個提示詞重映射,使其對應(yīng)的形象變成HelloKitty,那么在加持Lora模型的Checkpoint模型上輸入“貓”這個提示詞后AI將不再生成加菲貓,而全部生成HelloKitty。

Lora的使用目前有兩種方式,一種是使用直接通過webui的Lora管理界面點擊對應(yīng)的Lora來應(yīng)用,點擊后webui會在正向提示詞中添加一個形如:<lora:[lora名稱]:[lora權(quán)重]>的標(biāo)簽,權(quán)重最大為1,最小為0,多個lora可以混合使用。

另一種是通過sd-webui-additional-networks插件來使用,通過這個插件來使用lora就不會像正向提示詞中添加標(biāo)簽了,并且插件支持xyz plot腳本,可以很好的對比不同lora文件對畫面的影響,尤其是在自己訓(xùn)練lora時對比不同epoches下的lora效果時很好用,但是使用這個插件需要將lora從webui的默認位置移動到插件位置中。

Lora的使用

Lora的使用可以通過點擊右上角的show/hide extra networks按鈕在Lora標(biāo)簽中點擊相應(yīng)的預(yù)覽圖來使用,添加成功后webui會向正向提示詞中添加一個類似 <lora:lihui-repro-32-1e-4-noflip-re2-nonoise:1>的提示詞,這個就表示使用了對應(yīng)的lora,默認權(quán)重為1,Lora的使用權(quán)重最小為0最大為1,一般不使用兩個極值,權(quán)重為0則Lora完全不會生效,權(quán)重為1則嚴(yán)重影響到出圖效果,甚至可能會直接圖lora訓(xùn)練時的原圖。在C站上lora作者一般都會給出lora的最佳使用權(quán)重,最好根據(jù)作者的推薦權(quán)重來使用。

有的lora會有觸發(fā)詞,有的lora沒有觸發(fā)詞,觸發(fā)詞一般時lora作者的自創(chuàng)詞,使用觸發(fā)詞能夠有效的觸發(fā)lora效果,觸發(fā)詞的具體使用和lora的不同有所差異,有的lora有觸發(fā)詞,但不使用也能觸發(fā)效果,有的lora則必須使用觸發(fā)詞才能觸發(fā)效果。

多個不同的lora可以混合使用,lora和Embedding、Hypernetworks之間也可以混合使用

Lora的分層控制

后續(xù)更新計劃

3.Embedding

Embedding(嵌入層)也是深度學(xué)習(xí)中的一種模型,主要用來做編碼映射,更深入的可以看這篇博文:一文讀懂Embedding的概念,以及它和深度學(xué)習(xí)的關(guān)系。

在Stable diffuion中,Embedding模型提供了一種向已有模型嵌入新內(nèi)容的方式,Embedding模型可以使用很少的圖片數(shù)據(jù),來生成一個具有新的風(fēng)格或者人物形象的模型,并且可以使用特定的提示詞來映射這些特征。如,某一天有一個新貓貓形象叫g(shù)it cat被創(chuàng)造出來,而原來的舊模型可能只有加菲貓或者HelloKitty,沒有g(shù)it cat這只貓貓的數(shù)據(jù),那么我們想通過原有的模型讓AI畫出git cat那是做不到的,于是我們可以git cat的數(shù)據(jù)訓(xùn)練一個Embedding模型,在使用的時候?qū)mbedding模型嵌入到原模型上,這樣我們使用原模型就可以讓AI畫出git cat這只貓了。

Embedding模型有兩種稱呼,國內(nèi)大多就叫Embedding模型,也有叫TextualInversion模型,webui也是用TextualInversion來稱呼。

Embedding技術(shù)官網(wǎng):圖像勝過一個詞:使用文本反轉(zhuǎn)個性化文本到圖像生成 。

現(xiàn)在embedding模型已經(jīng)很少使用了,目前最常用embeding模型就是用于配合三視圖lora使用的CharTurner V2 、用于反向提示詞集合的EasyNegative和用于美化臉部的PureErosFace_v1。

4.Hypernetworks

Hypernetworks又叫超網(wǎng)絡(luò),Hypernetworks模型是一種風(fēng)格化文件,可以為AI生成的圖像應(yīng)用指定畫風(fēng)。如,同樣是畫一個HelloKitty,在沒有應(yīng)用Hypernetworks模型的情況,畫出來的HelloKitty就是一只正常的HelloKitty,如果給AI應(yīng)用一個金享泰畫風(fēng)的Hypernetworks模型,那么AI畫出來的HelloKitty就變成一只油膩的HelloKitty。

5.VAE

VAE的作用就是在第一章中講到的將圖片從潛空間的壓縮數(shù)據(jù)解碼變成一張正常的圖片,不同的VAE會影響AI出圖的色調(diào),如果當(dāng)我們不使用VAE時,AI生成的圖片均會有一層灰蒙蒙的感覺,使用VAE會使圖片的飽和度有所區(qū)別。

目前網(wǎng)絡(luò)上公開的VAE熟練還是比較少的,主要的來源有三個:

Stability.AI官方提供的:stabilityai/sd-vae-ft-mse-original ;

NovelAI模型泄露的:這個就沒有網(wǎng)址了,可以使用秋葉的啟動器下載;

Reimu Hakurei提供的:wd1-4-anime-release。

6.AestheticGradients

AestheticGradients(美學(xué)漸變)是以插件的形式存在一種模型修改技術(shù),AestheticGradients模型需要依賴AestheticGradients插件才能使用,效果和Hypernetworks差不多,但是基于AestheticGradients插件提供了更多的可調(diào)節(jié)參數(shù),而Hypernetworks的參數(shù)是已經(jīng)定死了不可更改的。

AestheticGradients模型以.pt最為后綴,一般只有幾K的大小。

stable-diffusion-webui-aesthetic-gradients插件庫地址:AUTOMATIC1111/stable-diffusion-webui-aesthetic-gradients: Aesthetic gradients extension for web ui ;

AestheticGradients庫:stable-diffusion-aesthetic-gradients/aivazovsky.pt at main · vicgalle/stable-diffusion-aesthetic-gradients。

在AestheticGradients庫的aesthetic_embeddings文件夾下,作者提供了一些作者預(yù)制的AestheticGradients模型。

七、AI繪圖的用法拓展

1.ControlNet

ControlNet可以提供AI一個參考圖,ControlNet會對參考圖先做一次預(yù)處理,如識別參考圖中人物的骨骼特征點或者物體的邊緣線,然后再將檢測出來的結(jié)果圖給AI參考,讓AI按照參考的姿勢或邊緣線來繪制圖像。這有點類似圖生圖,只是二者底層原理不一樣,圖生圖主要是通過噪點采樣來學(xué)習(xí)圖片的像素分布,而ControlNet則是通過機器視覺來進行智能識別再給AI學(xué)習(xí)。

ControlNet的原理主要是使用OpenCV的一些識別算法,如姿勢識別、手勢識別、邊緣檢測、深度檢測等,先對參考圖做一層機器視覺方面的預(yù)處理,生成身體骨骼特征點、手勢骨骼特征點、描邊圖、深度圖等中間圖,然后再讓AI參考這些中間圖進行創(chuàng)作。

想要更細致的了解ControlNet可以看這篇文章:精確控制 AI 圖像生成的破冰方案,ControlNet 和 T2I-Adapter 。

ControlNet的庫地址:Mikubill/sd-webui-controlnet: WebUI extension for ControlNet;

直接用git克隆到插件目錄,重啟WebUI就安裝好了,安裝好之后在文生圖界面會多出一個ControlNet欄。

ControlNet有很多自己的參數(shù),參數(shù)的作用可以看這位up主的視頻,他已經(jīng)講的很詳細了:【賽博Coser】《超詳細》ControlNet拆解教學(xué),讓你徹底理解AI繪畫的精髓。

  • Image(圖像):用于傳入?yún)⒖紙D的原圖;

  • 相機按鈕:在Image下方的相機按鈕是用來打開電腦的默認攝像頭的;

  • Enable(啟用):啟用ControlNet;

  • Invert Input Color(反轉(zhuǎn)輸入顏色):用于以白色為背景的參考圖,需要勾選這個選項,可能是因為不同的算法、模型對蒙版的處理不一樣導(dǎo)致的吧,比如前面提到的局部重繪就有出現(xiàn)蒙版顏色不一致的情況,有的用黑色作為蒙版顏色,有的用白色作為蒙版顏色;

  • RGB to BGR:這個選項大多數(shù)情況我們應(yīng)該用不到,這個選項的主要目的是我們平常的圖片使用的RGB通道,但是OpenCV默認使用則是BGR通道;

  • Low VRAM(低顯存模式):在顯存不夠的時候可以勾選上,雖然作者并沒有說明使用低顯存模式對出圖質(zhì)量會有什么影響,在我自己的測試中,在同一顯存條件下,勾選低顯存模式會降低出圖質(zhì)量和出圖速度,所以在顯存夠用的情況下,這個選項就不要勾選了;

  • Guess Mode:這個模式按作者的說法是勾選上以后AI會忽略提示詞,在ControlNet的約束范圍內(nèi)自由發(fā)揮,但我實際使用的情況是如果我們不手動清空提示詞,AI并沒有忽略提示詞,AI生成的圖里依然嚴(yán)格包含提示詞的內(nèi)容,值得注意的是這個模式是不適用于所有預(yù)處理器,比如描邊用的canny就無法只用這個模式,強行使用會報錯;

  • Preprocessor(預(yù)處理器):預(yù)處理器我個人理解就是用于對參考圖做預(yù)處理的算法,不同預(yù)處理器對應(yīng)不同的圖像處理算法;

    預(yù)處理器中用的比較多的住主要是:

    這些預(yù)處理器的算法是沒有內(nèi)置在插件里的,當(dāng)我們使用了一個本地沒有的預(yù)處理器時,插件會自動為我們下載對應(yīng)的算法。

    canny-邊緣檢測,處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

depth-深度計算,處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

depth_leres-更進精確的深度計算,depth_leres能更準(zhǔn)確檢測原圖的環(huán)境,具體可以看:Add support for LeReS depth by cmeka · Pull Request #167 · Mikubill/sd-webui-controlnet;處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

openpose-姿勢檢測,處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

Hed-更柔和邊緣檢測,處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

Hed算法描邊更柔和能夠記錄更多的細節(jié)。

mlsd-適用于建筑物的邊緣檢測,處理效果為:

【AI】Stable-Diffusion-WebUI使用指南

mlsd算法對棱角的描邊處理很優(yōu)秀。

normal_map-法線圖檢測,處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

法線圖的優(yōu)點在于,它即保留了圖像一定的深度信息,又能夠保留一部分圖像的細節(jié)信息,對于想要使用深度圖控制圖片生成,但是又想要保留一些人物細節(jié)的時候可以使用。

pidinet-更粗糙的邊緣檢測,處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

pidinet描邊保留的細節(jié)比canny更少,所以對AI出圖約束也更小。

scribble-分割檢測,處理結(jié)果是:

【AI】Stable-Diffusion-WebUI使用指南

scribble算法是一種圖片分割算法,可以使用黑白色塊將圖片分成不同的部分。

fake_scribble-超級粗糙的邊緣檢測,處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

fake_scribble算法基本上就只做了外邊緣的檢測,內(nèi)部的邊緣線基本就拋棄了,保留的細節(jié)比pidinet更少。

segmentation-語義分割,處理效果是:

【AI】Stable-Diffusion-WebUI使用指南

語義分割可以將像素分類成不同模塊,如哪些像素屬于人物,哪些像素屬于地板,哪些像素屬于植物,然后將這些像素連成一個一個的色塊,這個算法更適用于場景類的圖片生成。

以下是在撰寫Lora訓(xùn)練時WebUI更新的新的預(yù)處理器

Openpose_hand-帶手勢的姿勢檢測,也使用openpose模型,需要使用人物的臉和手比較清晰的圖片才能識別的比較好;

【AI】Stable-Diffusion-WebUI使用指南

下面三個預(yù)處理器是ControlNet融合了T2i-adapter的一些能力,T2i-adapter是北大和騰訊ARC開源的一個擴散模型引導(dǎo)算法,是和ControlNet齊名的引導(dǎo)算法,所以預(yù)處理器使用的模型也由T2i-adapter提供,地址是:TencentARC/T2I-Adapter at main,模型下載下來后也放入extensions\sd-webui-controlnet\models文件夾下。

clip_vision(風(fēng)格轉(zhuǎn)移)-可以傳入一張圖,使AI學(xué)習(xí)圖片的風(fēng)格,讓AI繪制出風(fēng)格相近的圖片,配個Style模型使用,我自己在使用的過程中webui加載coadapter-style-sd15v1.pth模型時會報錯,需要使用t2iadapter_style_sd12v1模型才能正常使用。

這里我使用了一張暗調(diào)的圖給AI進行風(fēng)格化學(xué)習(xí),出圖效果如下:

可以看到AI繪制出來的圖片基本都是偏暗色調(diào)的了,實際測試中發(fā)現(xiàn),AI對風(fēng)格化的學(xué)習(xí)很大程度上會受到提示詞的影響,當(dāng)提示詞的控制的畫面是一個很亮的畫面時,AI學(xué)習(xí)了風(fēng)格化也不一定能穩(wěn)定的出暗調(diào)的圖。

color(色彩)-可以傳入一張圖片,生成像素分布,然后讓AI根據(jù)像素分布來繪制圖片,需要配合t2iadapter_color_sd12v1模型使用,就我自己實際使用后的感想是:沒什么亂用,看到網(wǎng)上有人用這個模型通過圖生圖來精細的控制畫面中物品的顏色,就我個人的實際使用來看,效果一言難盡。

  • Model(模型):模型就是作者針對不同的預(yù)處理器訓(xùn)練的用于對應(yīng)機器視覺的神經(jīng)網(wǎng)絡(luò)模型,這些模型作者在huggingface上分享了出來:lllyasviel/ControlNet at main ,不過吧,作者分享的模型有點冗余是融合了一下其他的模型在里面的,實際模型沒那么大,作者也在Git頁面有提供說明和萃取精簡模型的方法,我就沒有自己去萃取了,已經(jīng)有大佬為我們萃取好了,這里推薦秋葉大佬萃取的:【AI繪畫】controlnet安裝/使用教程 動作控制 景深 線稿上色;

    (最近發(fā)現(xiàn)作者自己也萃取了模型分享了出來,地址是:webui/ControlNet-modules-safetensors at main)

    各種類型的算法都有對應(yīng)的訓(xùn)練模型,這些模型能有優(yōu)化ControlNet輔助AI出圖的效果,我們下載的模型有兩種,一種是放在extensions\sd-webui-controlnet\models文件夾下的,這種模型比較大,純凈版都有一G多,原作者給的甚至有五個多G,個人理解這種模型應(yīng)該是有點類似Lora的感覺,用于輔助出圖的;另一種是放在對應(yīng)的算法文件夾下的,如作者提供的用于openpose的body_pose_model.pthhand_pose_model.pth,這種比小一般在100多MB,這種模型個人理解是有點類似OpenCV使用的caffemodel模型,用來輔助ControlNet出中間圖的。當(dāng)然也可以不使用模型,我自己實際使用中使不使用模型效果感覺沒什么區(qū)別;

  • Weight(權(quán)重):ControlNet根據(jù)生成的中間圖給出Difusion生成圖片的條件,以使AI創(chuàng)作圖片時符合ControlNet的約束,這和Clip給出的圖片生成條件就會出現(xiàn)擬合,所以需要一個權(quán)重來分配兩組條件的占比,Weight就是來控制兩組生成條件的權(quán)重的。

  • Guidance Start(T)/Guidance End(T):這兩個選項是用來控制ControlNet在Smapler重復(fù)采樣過程中的干預(yù)程度的,Guidance Start設(shè)置的是從第幾次采樣開始進行干預(yù),Guidance End設(shè)置從第幾次采樣開始停止干預(yù),如在一個采樣步數(shù)為20步的繪畫過程中,我們設(shè)置Guidance Start=0.2,Guidance End=0.8,那么在這20步得采樣中,ControlNet的干預(yù)從第4步開始到第16步結(jié)束。

【AI】Stable-Diffusion-WebUI使用指南

  • Resize Mode(縮放模式):縮放模式控制的是生成圖與參考圖之間的適配方式;

  • Canvas Width(畫布寬度)/Canvas Height(畫布長度):控制的是ControlNet對原圖采用多大分辨率來進行圖像識別,主要使用來解決當(dāng)傳入的原圖很大的時候顯存吃不消的問題,我實際測試中,這兩個選項的設(shè)置對出圖幾乎沒有影響。

  • Create blank canvas(創(chuàng)建空白畫布):ControlNet除了可以輸入圖片作為原圖來生成中間圖,也可以通過手繪一張原圖來生成中間圖,這個按鈕就是用來創(chuàng)建手繪的空白畫布的;

  • Preview annotator result(預(yù)覽預(yù)處理結(jié)果)/Hide annotator result(隱藏預(yù)處理結(jié)果):用來預(yù)覽和隱藏中間圖。

    對于不同預(yù)處理器,還有各自的自有參數(shù),這里就挑最常用的三個記錄一下:

    Canny

    Annotator resolution:控制ControlNet生成中間圖的精細度;

    Canny low threshold(描邊最低閾值)/Canny high threshold(描邊最高閾值):影響描邊預(yù)處理器生成描邊圖時的邊線精確程度。

    Depth

    Midas Resolution:這選項沒摸明白有什么用。

    Openpose

    只有一個Annotator resolution參數(shù)。

有一點需要注意,ControlNet生成的中間圖都會存儲在C:\Users\[用戶名]\AppData\Local\Temp系統(tǒng)臨時文件夾下,不僅如此很多webui的插件生成的一些中間文件也都會存儲在這個目錄下,使用時記得時不時清理一下這個目錄,避免C盤爆炸。

ControlNet功能十分強大,可以做很多騷操作,比如:

角色改姿勢

有時我們出圖時,可能會碰到有的圖角色姿勢很好,有的圖角色設(shè)計的很好,ControlNet就可以讓我們把二者結(jié)合起來,主要就是在圖生圖中運用ControlNet的深度圖來限制角色各個關(guān)節(jié)的空間位置關(guān)系,然后AI根據(jù)姿勢的約束和原圖的約束來生成一張新圖。

這里放一張我的參數(shù)圖:

不過吧,即使隨機種子也是一樣的,新生成的圖和部分元素依然是會有一些差別的,如果這個差異在可接受范圍內(nèi),這個功能也是一個相當(dāng)不錯的功能了。

骨骼控制姿勢

骨骼控制需要配合Openpose Editor插件一起使用,插件地址是:fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111’s stable-diffusion-webui。

Openpose Editor提供了我們在WebUI中進行人體骨骼特征點位置的編輯功能,界面操作十分簡單,看一眼就會了,這里我就只展示一下效果就可以了,比如我要畫一個半鴨子坐的女孩,我們就可以在Openpose Editor中將骨骼編輯成這樣:

【AI】Stable-Diffusion-WebUI使用指南

然后我們可以點擊Send to txt2img將編輯好的骨骼發(fā)送到文生圖,然后啟用ControlNet,Preprocessor選擇none,Model選擇control_openpose。

然后就可以出圖了:

【AI】Stable-Diffusion-WebUI使用指南

不過吧,我個人感覺效果上還是沒有想象中那么優(yōu)秀,大體上能夠控制出圖的姿勢,對于一些比較難畫的姿勢,如跪姿,鴨子坐,腳還是很容易畫崩,要想出好圖還得大力出奇跡。

使用骨骼出三視圖

Openpose Editor支持多骨骼編輯,我們點擊Add按鈕可以往骨骼編輯視圖中添加骨骼,這就給繪制人物三視圖提供了條件,如我們制作一個這樣的三視圖骨骼:

【AI】Stable-Diffusion-WebUI使用指南

然后使用ControlNet來根據(jù)骨骼繪制,就可以得到這樣的圖:

【AI】Stable-Diffusion-WebUI使用指南

也就樂樂就好了,效果嘛,是可以畫出各個角度的姿勢,但是每個人物幾乎控制不了讓他們都長一樣,服裝也控制不了。

使用線稿草圖快速出三視圖

使用骨骼出三視圖的一個難點是很難使三視圖的角色都畫的一樣,另一種思路是使用線稿草圖來約束AI繪制的角色輪廓,使AI繪制我想要想要的角色的三視圖,如果再搭配對應(yīng)的人物L(fēng)ora效果就可以做到十分完美。

首先我們需要一張草圖,如我要繪制一個角色的頭部的45度側(cè)面,正側(cè)面和正面三個視角的三視圖,首先我們出一張用于約束AI的草圖:

【AI】Stable-Diffusion-WebUI使用指南

這里我是專門訓(xùn)練了這個人物的Lora的,輸入我們想要效果的提示詞,啟用ControlNet,由于草圖是白色背景,所以需要勾選反色模式,選擇Canny邊緣檢測,調(diào)好權(quán)重和畫布,然后就可以開始選圖了,這是生成的效果圖:

【AI】Stable-Diffusion-WebUI使用指南

手部修復(fù)

AI畫手一直是個老大難的問題了,如今ControlNet給出了解決方案。原理也很簡單,就是使用ControlNet進行局部控制,如我們生成了一張各方面都挺滿意的圖,然后AI把手給畫崩了,我們就可以使用手部修復(fù)來按照我們的想法把手修復(fù)成正常的樣子,如我們有這樣一張圖:

【AI】Stable-Diffusion-WebUI使用指南

女孩右手的手指有點畫崩了,這里用ControlNet修一下。

首先我們需要制作一張符合我們要求的手部姿勢圖,可以使用簡單的描邊圖,也可以使用深度圖,手部姿勢圖分辨率要保證和原圖一致,并且手部姿勢要放在正確的位置上,如:

【AI】Stable-Diffusion-WebUI使用指南

然后使用圖生圖的局部重繪以盡可能的保留畫面的其他細節(jié),將參數(shù)設(shè)置的和原圖的參數(shù)一致,隨機種子也設(shè)置成一樣的,重繪幅度設(shè)置在0.5以下,啟用ControlNet約束AI的手部繪制,如果手部姿勢圖是白色背景記得勾選反轉(zhuǎn)輸入顏色,預(yù)處理器選擇none,模型選擇適合自己原圖的畫布,其他的參數(shù)可以根據(jù)自己的需求微調(diào),然后我們來看一下效果:

【AI】Stable-Diffusion-WebUI使用指南

Multi-ControlNet

多層ControlNet是ControlNet最近新出的功能,ControlNet插件默認是只使用一層的,要開啟多層我們需要在設(shè)置/ControlNet/多重ControlNet的最大模型數(shù)量選項設(shè)置我們要啟動的最大層數(shù),目前最大支持10層。我們啟動的層數(shù)越多,對圖像生成的控制就越細,AI所吃的顯存也越高,以我的12G3080ti為例,我啟用了兩層,一層控制人物骨骼姿勢,一層控制背景場景結(jié)構(gòu),跑512x512,勾選hires.fix倍數(shù)2倍就直接爆顯存了。

人物骨骼姿勢:
【AI】Stable-Diffusion-WebUI使用指南

背景構(gòu)圖:

【AI】Stable-Diffusion-WebUI使用指南

出圖效果:

【AI】Stable-Diffusion-WebUI使用指南

Seg語義分割

Seg語義分割實際就是使用ControlNet的segmentation算法,通過處理色塊拉達到控制圖片生成的目的,segmentation算法的語義分割符合ADE20K語義分割數(shù)據(jù)庫的標(biāo)準(zhǔn)分割規(guī)則,所以我們可以根據(jù)ADE20K標(biāo)準(zhǔn)語義色塊來向控制圖片生成指定的物體,不過ADE20K的標(biāo)準(zhǔn)色塊語義更多的是適合建筑設(shè)計和室內(nèi)設(shè)計領(lǐng)域,所以使用segmentation也就更適合用于這兩個方面。

ADE20K色塊圖可以到這位Up的視頻下下載:【AI繪畫】強大的構(gòu)圖工具:Seg(ControlNet)語義分割控制網(wǎng)絡(luò);

就我實際的使用效果來說,WebUI的Seg語義分割沒有想象中那么強,首先webui內(nèi)置的segmentation算法識別出來的色塊不夠精準(zhǔn),對于很平滑的直線,它能識別成破損的曲線,不建議使用內(nèi)置的識別算法,可以選擇使用hanggingface提供的工具:OneFormer,Task Token Input選the task is panotic,Model選ADE20K,Backbone隨意,這個工具生成出來的Seg圖要比webui內(nèi)置算法的好,對于這樣一張原圖:

【AI】Stable-Diffusion-WebUI使用指南

二者的語義分割效果是

OneFormer:

【AI】Stable-Diffusion-WebUI使用指南

WebUI的Seg圖:

【AI】Stable-Diffusion-WebUI使用指南

能夠很明顯的看出差距。

對于使用色塊來控制圖像生成,也沒有想象中的那么強,比較明顯的就是AI總是喜歡往墻上繪制一些沒有意義的紋理,并且對于一些不符合邏輯的要求,AI基本不會滿足我們的述求。如下圖,我使用色塊在地毯邊上放了一個盆花草(ADE20K的RGB值為:#CCFF04),然后將墻上的代表圖片的紅色色塊換成了代表窗戶的灰白色色塊(ADE20K的RGB值為:#E6E6E6),就得到了這樣一張Seg圖:

【AI】Stable-Diffusion-WebUI使用指南

即使我們重點強調(diào)了窗戶,但AI依然不會繪制窗戶。

【AI】Stable-Diffusion-WebUI使用指南

使用蒙版控制燈光氛圍

ControlNet可以配合圖生圖使用燈光蒙版可以進行簡單的出圖燈光氛圍的控制,要控制燈光氛圍有三個要點需要注意的,其一,我們需要保證圖生圖的參數(shù)與原圖出圖參數(shù)一致,其二,使用ControlNet深度圖控制畫面,其三,使用燈光蒙版控制燈光氛圍。

首先我們使用文生圖來生成一張測試示例:

【AI】Stable-Diffusion-WebUI使用指南

然后將生成的圖片放入PNG Info標(biāo)簽頁,識別原圖的參數(shù)配置,然后點擊Send to img2img,這樣原圖的完整參數(shù)配置,包括隨機種子,就都發(fā)送到圖生圖標(biāo)簽頁了。

然后啟用ControlNet,使用深度圖控制畫面,這樣我們就可以使用圖生圖生成和原圖"整體上一樣"的圖了,注意這里我用的是"整體上一樣",因為除非我們把重繪幅度設(shè)置成0,否則出圖或多或少都會有一點細微的差別。

【AI】Stable-Diffusion-WebUI使用指南

最后在圖生圖標(biāo)簽頁的img2img中放入燈光蒙版圖片,調(diào)整好燈光范圍,然后出圖看一下效果:

【AI】Stable-Diffusion-WebUI使用指南

可以看到燈光氛圍效果已經(jīng)根據(jù)燈光蒙版圖改變了,但是這里有一個矛盾,我們想要好一點的效果,重繪幅度至少要在0.6以上,而重繪幅度高了之后,原圖就會出現(xiàn)較為明顯的變化,如上面的示例中,領(lǐng)結(jié)的顏色變了。如果不是很在一細節(jié)就無所謂,如果在意細節(jié),就只能去PS里做一些簡單修改了,效果圖:

不過對于被光影影響到的細節(jié),沒有一點美術(shù)功底基本就很難修了,如上面示例的“發(fā)花”。

2.制作全景圖

使用WebUI制作全景圖需要一個Lora和一個插件,Lora是LatentLabs360,插件是asymmetric-tiling-sd-webui,安裝好插件后在文生圖和圖生圖界面下會出現(xiàn)一個Asymmetric tiling欄,這是用來并接360圖片的。

首先輸入關(guān)鍵詞:

<lora:latentlabs360_v01:1>,((a 360 equirectangular panorama)) , modelshoot style, (extremely detailed CG unity 8k wallpaper),
room,girl's room,Pink princess bed,Tiled floors,walls,Pot picking,Bright sunlight,

第一行是對360圖片進行描述的關(guān)鍵詞,必填,第二是對內(nèi)容進行描述的關(guān)鍵詞,可以自由發(fā)揮,我自己測試使用latentlabs360這個Lora只能用來畫場景,畫人會出現(xiàn)很奇怪的圖。

反向關(guān)鍵詞隨意。

采樣算法我測試了全部的算法,只有Euler a的效果還算行,步數(shù)也是只有在20左右效果好,太低或太高都會畫不出360圖。

然后就是重點,分辨率必須是橫縱比2:1的比例,否則畫不出360圖,然后需要勾選Asymmetric tilling插件的Active和Tile X選項。

生成的圖還需要經(jīng)過放大,分辨率太低用全景圖片查看器看圖時效果會很差。

然后我們可以出圖來看一下效果:

【AI】Stable-Diffusion-WebUI使用指南

【AI】Stable-Diffusion-WebUI使用指南

然后我們用全景圖片查看器來看看效果:

由于csdn不能上傳超過10mb的gif,可以到這里查看,或移步至個人博客閱讀。

想要制作一張優(yōu)秀的全景圖,需要花很多時間去打磨關(guān)鍵詞和局部重繪,沒經(jīng)過處理的全景圖,乍一看感覺還可以,但是一細看就全是破綻。

3.制作視頻

使用ControlNet來使用AI生成視頻有兩種方式,一種是使用批量圖生圖配合ControlNet控制姿勢來生成視頻,另一種就是通過mov2mov插件配合來制作視頻。

這里使用的原視頻是:https://www.bilibili.com/video/BV1i24y1p7iZ/?spm_id_from=333.1007.top_right_bar_window_history.content.click。

采用了視頻的前五秒來作為原視頻。

批量圖生圖

先將一段視頻使用視頻編輯工具導(dǎo)出序列幀,每一幀就是一張png,然后啟用ControlNet,Preprocessor選擇hed,hed能夠盡可能多的記錄原圖的人物形態(tài)和環(huán)境要素,model選擇對應(yīng)的模型,然后使用批量圖生圖的形式讓AI更具序列幀一張圖一張圖的繪制,為了使制作的視頻效果盡可能的好,我們應(yīng)該盡可能使視頻中的環(huán)境要素盡可能的簡單,以使AI繪制的圖片的背景盡可能的不變,我們也可以設(shè)置蒙版,使AI在繪制時只對人物所在區(qū)域進行繪制,同時配上一些盡量匹配原視頻的關(guān)鍵詞,這樣可以將輸出的圖片之間的差異減到最小,然后我們再將AI繪制過一遍的圖片序列作為輸入,配合負面關(guān)鍵詞來去除在第一遍生成時出現(xiàn)的一些我們不希望在視頻中出現(xiàn)的元素,如果配置滿足的話,可以配合Multi-ControlNet對人物形態(tài),場景等做進一步約束。

來看一下效果:

【AI】Stable-Diffusion-WebUI使用指南

AI制作視頻最大的難點依然是無法控制每張圖盡可能的不變。

mov2mov插件

mov2mov插件是一個國人制作的sd-webui插件,插件地址是:Scholar01/sd-webui-mov2mov: 適用于Automatic1111/stable-diffusion-webui 的 Mov2mov 插件。

安裝好插件后在標(biāo)簽欄會出現(xiàn)一個mov2mov標(biāo)簽頁,然后直接將視頻拖入mov2mov視圖,Width和Height設(shè)置為和視頻一樣的分辨率,Generate Movie Mode選擇自己想要的視頻輸出格式,Noise multiplier設(shè)置成0,Movie Frames可以按自己喜好設(shè)置,也可以按原視頻的幀率設(shè)置,Max Frames默認-1就好了,然后ControlNet和批量圖生圖配置的一樣,使用和對應(yīng)的模型,然后就可以生成了。

mov2mov插件原理和批量圖生圖是一樣的,只是插件為我們做了將視頻導(dǎo)出為序列幀,將序列幀制作成視頻這兩步,雖然方便了不少,但同時也蒙版精確控制的能力。

效果:

由于csdn不能上傳超過10mb的gif,可以到這里查看,或移步至個人博客閱讀。

這也是使用mov2mov生成兩遍的效果,效果上感覺不如使用了蒙版控制的批量圖生圖的方式。

更穩(wěn)定的視頻輸出

前面的視頻制作都會出現(xiàn)跳動的問題,在開始撰寫第九章時,一項新的AI視頻制作技術(shù)出來了,已經(jīng)可以很好的解決視頻跳幀的問題了,不得不說AI的技術(shù)進步真是肉眼可見。

這個方法需要三個插件一個腳本,分別是:

ControlNet插件:Mikubill/sd-webui-controlnet: WebUI extension for ControlNet;

Ebsynth Utility插件:s9roll7/ebsynth_utility: AUTOMATIC1111 UI extension for creating videos using img2img and ebsynth;

WD14-tagger插件:toriato/stable-diffusion-webui-wd14-tagger:Automatic1111 的 Web UI 的標(biāo)簽擴展 ;

multi_frame_rendering腳本:enhanced-img2img/scripts at main · OedoSoldier/enhanced-img2img 。

這個腳本可也一使用大江戶戰(zhàn)士U修改過的腳本:multi_frame_render.py;

B站教程地址:【AI動畫】多幀渲染法 介紹及使用。

Ebsynth Utility插件用于提取視頻中的關(guān)鍵幀,除此之外這個插件還可以批量為關(guān)鍵幀生成蒙版圖片,可以自動提取變化較大的關(guān)鍵幀節(jié)點。

WD14-tagger插件用于批量從關(guān)鍵幀圖片中提取提示詞,并批量生成對應(yīng)的提示詞文本。

multi_frame_rendering腳本使用多幀渲染技術(shù)就是使AI生成的視頻穩(wěn)定的關(guān)鍵技術(shù),玩AI繪圖一段時間后都會發(fā)現(xiàn)一個現(xiàn)象就是在同一批次生成的圖片中,人物的臉大都是一樣的,multi_frame_rendering就是運用了這個原理,在出圖時使用三張圖并接的方式出圖,并且后一張圖的出圖時會參考前一張圖,配合Multi-ControlNet的精確控制,這樣就可以使AI出的圖趨于穩(wěn)定。

但也真是因為進行諸多環(huán)節(jié)對AI出圖的畫面進行控制,導(dǎo)致了AI繪制視頻幀的速度大大減緩,我生成一批(164幀)的序列幀,使用RTX3080TI-12G繪制也足足需要花費近3個小時,視頻時長總共才5秒鐘。

下面使操作步驟:

安裝ControlNet

首先我們需要安裝插件和腳本,ControlNet插件前面已經(jīng)有提過,就略過了。

安裝Ebsynth Utility

Ebsynth Utility插件依賴一個視頻處理庫ffmpeg,這是官網(wǎng)地址:FFmpeg。

我們需要下載windows版本,下載下來的庫就是一個已經(jīng)編譯好了的庫文件夾,庫里面主要的文件夾有bin、include和lib,include和lib主要是給編程開發(fā)用的,這里插件主要是使用bin文件夾,把bin文件夾添加到系統(tǒng)環(huán)境變量中,庫就安裝好了,然后可以通過cmd鍵入ffmpeg -version來查看庫是否安裝完畢:

【AI】Stable-Diffusion-WebUI使用指南

然后使用git把Ebsynth Utility庫克隆到webui的插件目錄,Ebsynth Utility插件就安裝好了。

批量提取視頻幀

Ebsynth Utility插件的功能有很多(各個選項的作用,作者已經(jīng)在ui上注明),我們這里主要使用的是它的stage 1。

【AI】Stable-Diffusion-WebUI使用指南

選擇stage 1,Project directory輸入存放序列幀的目錄,Original Movie Path輸入視頻路徑,也可以將視頻拖到下方的輸入框,拖視頻到輸入框插件會拷貝一份視頻到C:\Users\[用戶名]\AppData\Local\Temp系統(tǒng)臨時文件夾中。stage 1的configuration的設(shè)置是在需要同時提取關(guān)鍵幀的蒙版圖片時才需要配置,如果不需要提取蒙版圖片的話,直接默認就好了。

有一點需要注意,Ebsynth Utility插件沒有權(quán)限向webui的outputs目錄輸入文件,所以我們設(shè)置的輸入輸出文件夾不能放到webui的outputs目錄下。

安裝WD14-tagger

使用git把WD14-tagger庫克隆到webui的插件目錄,WD14-tagger插件就安裝好了,我更新到最新的2023.3.13的webui發(fā)現(xiàn),安裝好插件直接從擴展選項卡重啟界面后webui有時并不能識別到新安裝的插件,不知道是不是bug,最好直接重啟服務(wù)器。

批量生成序列幀提示詞

【AI】Stable-Diffusion-WebUI使用指南

這里我們主要使用批量操作,輸入目錄輸入我們生成的序列幀所在的目錄,輸出目錄可以不填,不填默認將識別到提示詞文本存儲到輸入目錄。勾選使用空格代替下劃線、轉(zhuǎn)移括號完成后從顯存卸載模型,不卸載模型,模型會一只占用部分顯存。

在使用的過程中發(fā)現(xiàn)插件有一個bug,即使用批量操作時,單張圖片下不能放入圖片,否則批量操作不會執(zhí)行,而只執(zhí)行單張圖片的提示詞識別。

其實這一步也可以通過圖生圖的提示詞反推功能代替。

安裝multi_frame_rendering

將multi_frame_rendering腳本下載到webui的script目錄,multi_frame_rendering腳本是依賴于ControlNet的,所以我們需要在webui的設(shè)置中勾選ControlNet下的允許其他腳本對此擴展插件進行控制。

multi_frame_rendering腳本只適用于圖生圖界面,所以我們只能在圖生圖界面中找到這個腳本。

使用ControlNet進行圖像控制

這里我們使用兩層控制網(wǎng)絡(luò)(如何啟用多重ControlNet可以查看第五章第一節(jié)Multi-ControlNet),第一層使用hed邊緣檢測進行控制,第二層使用發(fā)現(xiàn)貼圖進行控制,參數(shù)可以根據(jù)自己的實際需求進行調(diào)整。

使用圖生圖確定要繪制的風(fēng)格

我們可以使用提示詞、Lora等風(fēng)格化模型控制AI對視頻的人物,畫風(fēng)等進行定制,對于人物需要專門的人物L(fēng)ora才能有比較好的效果。這樣AI就可以根據(jù)提示詞和Lora繪制出我們想要的人物和畫風(fēng)的序列幀。

確定好輸出序列的分辨率,步數(shù),采樣算法,基礎(chǔ)模型后就可以鎖定隨機種子,進行最后的多幀渲染了。

因為我們使用了多層控制手段來控制AI出圖,所以重繪幅度我們可以調(diào)高一點。

多幀渲染

啟用multi_frame_rendering腳本,輸入目錄選擇Ebsynth Utility插件的序列幀輸出目錄,輸出目錄自行設(shè)定,Third column(refernce) imge有三個選項FirstGen-使用處理后的第一幀作為參考圖,OriginalImg-使用原始的第一幀作為參考圖,Historical-使用當(dāng)前幀之前的倒數(shù)第二幀作為參考圖,這里我選擇使用FirstGen,Loopback source也有三個選項,Previous-從上一幀生成幀,Current-從當(dāng)前幀生成幀,F(xiàn)irst-從第一幀生成幀,我這里選擇Current,然后勾選Read tags from text files,勾選后腳本會自動從同名的提示詞文本中提取提示詞來控制圖片的生圖。

其實multi_frame_rendering腳本自己也提供了每幀提取提示詞并應(yīng)用的功能,在Append interrogated prompt at each iteration中選擇webui內(nèi)置的文本編碼器,腳本就可在渲染時使用對應(yīng)的編碼器提取輸入圖片的提示詞,但這樣會增加渲染的時間,所以我們使用WD14-tagger插件來提前將提示詞提取出來。

等待漫長的渲染過程之后,將序列幀轉(zhuǎn)成視頻,就可以看到效果了:

由于csdn不能上傳超過10mb的gif,可以到這里查看,或移步至個人博客閱讀。

效果是相當(dāng)不錯的,只是我在出圖的時候忘記添加臉部的描述,AI把臉給畫崩了,再畫生成一次又要花4個小時,就將就著用著了。

最近在更新了Controlnet1.1.217之后,發(fā)現(xiàn)圖生圖模式下使用多幀渲染已經(jīng)不行了,12G的顯存不夠了,新版本的Controtnet模型更大更加吃顯存,所以如果想要多幀渲染視頻請確保controlnet版本在1.0之前,并且盡量使用裁剪之后的小模型。

生成奇特的縮放視頻

先來看一下效果:

由于csdn不能上傳超過10mb的gif,可以到這里查看,或移步至個人博客閱讀。

要制作這樣的一個視頻依賴于Infinite Zoom插件,安裝好插件就可以在標(biāo)簽欄看到Infinite Zoom標(biāo)簽。

【AI】Stable-Diffusion-WebUI使用指南

整個界面有四個標(biāo)簽頁,main,video,outpaint和post proccess。

Main標(biāo)簽頁是我們主要的操作頁面:

  • Batch Count:要生成的視頻批次,一次可以渲染多批視頻;

  • Total vido length:生成視頻的時長,默認為5秒;

  • Common Prompt Prefix:通用的圖像生成前綴,可以放一些對組成視頻的所有圖片都需要的一些需要放在前面關(guān)鍵詞,如一些對畫面整體質(zhì)量、風(fēng)格的描述;

  • 表格:中間的表格就是對每個畫面的內(nèi)容的關(guān)鍵詞描述了,

    Start at second:對應(yīng)畫面圖像要出現(xiàn)的時刻;

    Prompt(提示詞):畫面要表現(xiàn)的內(nèi)容提示詞;

    Clear prompts:清空所有提示詞;

    Import prompts:快速導(dǎo)入提示詞;

    Export prompts:導(dǎo)出提示詞,導(dǎo)出的提示詞會以json文件的形式存儲;

    New row:新增行;

  • Common Prompt Suffix:所有畫面通用的提示詞后綴,可以放一些對所有生成圖像的氛圍描述,如:時間段、光影效果、渲染模式等;

  • Negative Prompt:通用的反向描述詞;

  • seed(隨機種子):生成圖片時所使用的噪點種子;

  • Sampler(采樣方法):生成圖片時所使用的采樣方法;

  • Output Width/Output Height:輸出圖片的長寬;

  • Guidance Scale:提示詞相關(guān)性;

  • Sampling Steps for each outpaint:每張圖片的采樣步數(shù);

  • Custom initail image:初始圖片,圖片可以先在文生圖中生成,在zoom-out(縮小)模式下初始圖片將作為第一幀的圖片,在zoom-in(放大)模式下初始圖片將作為最后一幀的圖片。

Video標(biāo)簽頁主要是對整個視頻的操作設(shè)置:
【AI】Stable-Diffusion-WebUI使用指南

  • 每秒多少幀:設(shè)置視頻幀數(shù);
  • Zoom mode:縮放模式,zoom-out:縮小,zoom-in:放大;
  • number of start frame dupe:視頻開始時要凍結(jié)的幀數(shù);
  • number of last frame dupe:視頻結(jié)束時要凍結(jié)的幀數(shù);
  • Zoom Speed:縮放速度,單位為秒;

Outpaint標(biāo)簽頁設(shè)置圖像的重繪:

【AI】Stable-Diffusion-WebUI使用指南

內(nèi)容很少,一般頁不用修改。

Post proccess標(biāo)簽頁設(shè)置圖像的放大:

【AI】Stable-Diffusion-WebUI使用指南

這個方法也沒啥好說的了,設(shè)置都非常直觀。

所有設(shè)置都設(shè)置好之后,就可以點擊Generate video按鈕開始生成視頻了,生成視頻的時間比較長,我4070ti的配置生成一個9秒的視頻大概在700秒左右。

生成的視頻可以在右側(cè)預(yù)覽,和下載,在output/infinite-zoom文件夾下也存有所有的生成的視頻。

4.OutPainting

outpainting是官方提供的一項AI圖像擴展技術(shù),AI可以根據(jù)已有的圖像來擴展圖像之外的畫面。

outpainting需要配合官方提供的inpainting模型使用才能夠?qū)D像進行補全,inpainting模型有兩個版本,1.5和2.0下載地址分別是:

sd-v1-5-inpainting:runwayml/stable-diffusion-inpainting · Hugging Face;

512-inpainting-ema:stabilityai/stable-diffusion-2-inpainting · Hugging Face。

下載好模型之后放入models/Sable-diffusion文件夾中。

修改webui-user.bat文件,在set COMMANDLINE_ARGS=之后添加--api --cors-allow-origins=https://www.painthua.com參數(shù)。

然后啟動webui,進入https://www.painthua.com網(wǎng)址,網(wǎng)址連的我們本地的stable diffusionu服務(wù),在網(wǎng)頁的Config選項中設(shè)置服務(wù)器的地址,畫布的大小以及選區(qū)的最小尺寸,一般我們沒有修改過服務(wù)器地址和端口的話,默認是127.0.0.1:7860就不需要修改了。

用法就比較簡單了,在Prompt選項我們可以設(shè)置正方向提示詞,要使用的模型、采樣算法、采樣步數(shù)等,原理和文生圖是一樣的,然后通過繪制選區(qū)來生成指定分辨率的圖片,也可以使用Ctr+O上傳本地圖片來擴展。

當(dāng)一個張圖片生成好之后,我們就需要切換模型到inpainting模型,然后繪制任意大小的選區(qū)進行圖片擴展,選區(qū)要和圖片有重合,一邊AI學(xué)習(xí)原圖的風(fēng)格。

如:我們可以將這樣一張圖:

【AI】Stable-Diffusion-WebUI使用指南

擴展成這樣一張圖:

其他的功能也很簡單,玩?zhèn)€一兩分鐘基本就會了,在Help選項作者也提供了視頻教程。

5.人物換裝

人物換裝說來也比較簡單,主要就是運用圖生圖的局部重繪功能搭配指定服裝的提示詞來達到換裝的效果。

首先使用文生圖出一張示例圖:

【AI】Stable-Diffusion-WebUI使用指南

然后使用圖生圖的局部重繪,將我們想要換裝的區(qū)域涂上蒙版。

【AI】Stable-Diffusion-WebUI使用指南
然后就改服裝的提示詞,就可以做到這樣的效果,提示詞可以直接使用Prompts from file or textbox腳本批量控制,也可以使用動態(tài)提示詞插件,這個插件bug還挺多,還要安裝一堆依賴,我個人還是更傾向于使用內(nèi)置的腳本,插件教程可以看這個視頻:Stable Diffusion 自定義提示詞組 一鍵生成分類圖像 萬用提示詞。然后就可以抽卡出圖了:

【AI】Stable-Diffusion-WebUI使用指南

6.基于SadTalker的唇型同步

SadTalker開源庫地址:https://github.com/OpenTalker/SadTalker

SadTalker有獨立的運行版本,也有Stanble Diffusion Webui的插件,由于SadTalker自身就要吃到5個多G的顯存,使用Stable Diffusion Webui插件的話,多顯存的要求極高,所以我這里主要使用的是獨立運行版本。

SadTalker運行環(huán)境部署

SadTalker的運行基于Python3.10.6和Stable Deffusion WebUI的依賴版本一致,如果已經(jīng)安裝了SD就可以跳過這一步了。

安裝ffmpeg,這是一個專門用于處理視頻的庫,我們可以直接使用

pip install ffmpeg

來安裝,也可以直接到

https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z

地址手動安裝,我個人建議直接手動下載,解壓到SadTalker的根目錄中,然后到Path中配置

E:\SadTalker\ffmpeg-2023-05-08-git-2d43c23b81-full_build\bin

路徑到環(huán)境變量。

下載預(yù)訓(xùn)練模型

SadTalker的運行需要用到10個預(yù)訓(xùn)練模型,可以到

https://github.com/OpenTalker/SadTalker/releases

地址單獨手動下載,官方也提供了百度云地址:

https://pan.baidu.com/s/1nXuVNd0exUl37ISwWqbFGA?pwd=sadt

如果是單獨手動下載,則在SadTalker的根目錄創(chuàng)建一個checkpoints目錄,并將所有文件拷貝到這個目錄中,如果是百度云下載,則解壓后將目錄中的checkpoints目錄拷貝到SadTalker根目錄,然后解壓checkpoints目錄中的BFM_Fitting.ziphub.zip兩個壓縮到checkpoints目錄,解壓的時候需要注意一下解壓目錄,有的解壓文件會以文件命創(chuàng)建一個目錄,此時可能會出現(xiàn)兩個BFM_Fitting或hub目錄。

安裝虛擬環(huán)境

前置安裝完成之后,就可以雙擊根目錄中的webui.bat運行SadTalker,程序會自行下載所需運行庫并生成虛擬環(huán)境。

下載運行庫的時候經(jīng)常會出現(xiàn)連接不上庫地址而導(dǎo)致超時錯誤卻不提示是哪個庫連不上,這就沒有其他辦法解決了,只能掛上梯子多試幾次了,我大概也是試了五六次才成功把虛擬環(huán)境創(chuàng)建好。

生成唇型動畫

虛擬環(huán)境創(chuàng)建好之后,就可以通過webui.bat啟動服務(wù),服務(wù)器會給出一個本地地址http://127.0.0.1:7860,瀏覽器打開地址即可進入SadTalker的UI界面,UI界面非常簡潔,就兩個輸入,三個設(shè)置,一個輸出。

【AI】Stable-Diffusion-WebUI使用指南

  • Upload image:上傳要用于生成動畫的圖片,建議點擊文件夾上傳,直接拖過去,程序會將圖片先拷貝到c盤臨時目錄再使用。

  • Upload OR TTS:上傳要用于生成動畫的語音,建議點擊文件夾上傳,直接拖過去,程序會將圖片先拷貝到c盤臨時目錄再使用。文字轉(zhuǎn)語音推薦使用這個網(wǎng)址:Text To Speech - 在線文本轉(zhuǎn)語音 (text-to-speech.cn),個人用著剛覺效果非常不錯,主要是免費無廣告。

  • Seetings:

    crop:將圖片裁剪成256x256再生成動畫;

    resize:

    full:保留原圖尺寸生成動畫,同時也會生成裁剪成256x256的動畫。

  • Still Mode(fewer hand motion,works with preprocess ‘full’):靜滯模型,生成動畫時程序會盡量減少對手部的影響,適合再full下使用;

  • GFPGAN as Face enhancer:使用面部增強修復(fù),使用這個選項程序會再去下載一個模型。

生成的動畫可以直接在網(wǎng)頁端下載到本地,也可以直接到程序根目錄的results目錄中提取。

來看一下效果,我這里直接使用官方提供的音頻:

【AI】Stable-Diffusion-WebUI使用指南

picgo不能上傳視頻,這里成了gif,沒有了聲音。

7.ControlNet 1.1

文章還沒寫完,插件又更新了…

ControlNet1.1算是ControlNet得一個很大的版本更新,插件變得更強了,也變得更大了,

ControlNet1.1新增了很多很多的新算法和新模型,新算法與模型的對應(yīng)關(guān)系這里直接從Controlnet 1.1新版本功能詳解,14個控制模型+30個預(yù)處理器講解,Stable diffusion AI繪圖教程|Preprocessor使用教程_嗶哩嗶哩_bilibili這個up的視頻中借過來用了:

【AI】Stable-Diffusion-WebUI使用指南

ControlNet1.1的更新

更新方式比較簡單,直接使用WebUI更新、使用git手動pull或者重新安裝插件即可。

下載新的模型

ControlNet1.1之后所有的模型都被官方更新了,所以我們需要重新下載模型,模型下載官方網(wǎng)址:lllyasviel/ControlNet-v1-1 at main (huggingface.co),總共有11個模型,每個模型1.45GB是真的大,然后官方也推出了模型的命名規(guī)則:

【AI】Stable-Diffusion-WebUI使用指南

新版本的模型都搭配一個.yaml配置文件使用,所以下載時需要將模型文件和配置文件一并下載,一并放置到extensions\sd-webui-controlnet\models目錄下。

除此之外再使用的過程中有些第一次使用的算法還需搭配一個額外的模型使用,這個模型會在使用時自動下載,下載后會存放在extensions\sd-webui-controlnet\annotator\downloads目錄的對應(yīng)算法目錄下。

新算法的使用

新算法多大39種,這里就只調(diào)幾個功能比較強大,用得比較多的算法來說說了。

  • depth_leres++:depth_leres++是一個更精確的深度圖,這個算法能保留更多的深度細節(jié),可以看一下和之前的深度算法的對比:

    【AI】Stable-Diffusion-WebUI使用指南

    可以看到depth_leres++能保留的細節(jié)信息更多。

  • inpaint_global_harmonious:inpaint是一個重繪預(yù)處理器,需要配合control_v11p_sd15_inpaint模型使用,可以對蒙版區(qū)域進行重繪,局部重繪一直是圖生圖的專屬功能,但是圖生圖無法進行大分辨率繪圖,導(dǎo)致很多時候重繪功能很雞肋,重繪出來的畫面細節(jié)不夠,使用inpaint_global_harmonious就可以在文生圖中進行重繪了,并且配合文生圖的高清修復(fù),可以直接重繪高分辨率的大圖,比如我們將下圖的階梯換成平路:

    【AI】Stable-Diffusion-WebUI使用指南

    除此之外,我們通過手動擴充原圖尺寸,也可以使用inpaint模型進行圖像擴展,功能類似Outpainting,不同的是我們需要將需要重繪的區(qū)域涂成黑色,如我們將一個512x1024的圖擴展為1024x1024的圖:

    【AI】Stable-Diffusion-WebUI使用指南

  • lineart_anime:lineart算法是Controlnet推出的專門用于線稿上色的描邊算法,lineart_anime算法則是lineart算法家族種更適合于二次元的上色算法,lineart算法除了會進行描邊之外,還會基于繪畫的手法使用線條對陰影進行繪制,使得線稿更加精致;

  • lineart_realistic:lineart_realistic算法和lineart_anime算法相對,是專門針對真實照片進行描邊的算法,lineart_realistic算法對真實照片的描邊能繪制更多的細節(jié);

【AI】Stable-Diffusion-WebUI使用指南

  • openpose_full:openpose_full是整合了姿勢、手勢和表情的算法,可以生成同時控制姿勢、手勢和表情的控制圖,第一次使用時會下載多個模型。

    【AI】Stable-Diffusion-WebUI使用指南

  • reference_only:reference_only預(yù)處理器有點類似騰訊的style預(yù)處理器,可以使AI參照指定圖片的風(fēng)格來生成圖片,如:

    【AI】Stable-Diffusion-WebUI使用指南

    配合inpaint_global_harmonious預(yù)處理器,可以使AI根據(jù)指定圖片的風(fēng)格對原圖進行重繪或擴展,如:

    【AI】Stable-Diffusion-WebUI使用指南

  • tile_resample:tile模型算是這次controlnet的重磅更新了,功能十分強大,tile_resample預(yù)處理器配和control_v11f1e_sd15_tile模型使用,主要的作用有生成類似的圖、為簡筆畫補充細節(jié)紋理、將小圖進行高清重繪和用于配合圖生圖腳本SD upscale圖片進行超清重繪。

    生成類似的圖:這個功能在通過photoshopP圖之后,使用AI來融合P圖中的看起來比較違和的元素時非常有用,有了這個功能我們就可以快速的使用PS往圖中加入我們想要的元素,然后使用AI來融合,當(dāng)然出圖的效果還是取決于大模型;

    為簡筆畫補充細節(jié)紋理:先直接看圖

    【AI】Stable-Diffusion-WebUI使用指南

    tile模型甚至為我們修復(fù)了簡筆畫中不合理的結(jié)構(gòu)。

    小圖高清重繪:基于tile模型自動補充細節(jié)的能力,可以通過輸入一張很模糊的小圖,使用tile模型在文生圖配合高清修復(fù)功能進行高清重繪,如:

    【AI】Stable-Diffusion-WebUI使用指南

    超清放大:圖生圖有一個SD upsacle腳本可以將輸入的圖片進行分塊放大,但是腳本只會根據(jù)使用方法算法補充像素,最終形成色塊,配合tile模型使用則可以達到放大的同時西東補充一些合理的細節(jié),從而避免形成色塊。

    使用方法就是將要放大的圖拖入圖生圖,然后啟動controlnet并使用tile預(yù)處理器和tile模型,特別注意controlnet不需要再放入圖片,然后重回幅度調(diào)到0.2以下,當(dāng)然如果想要變化大一點也可以調(diào)高,然后腳本選擇SD Upscale,即可進行超清放大。

  • ip2p:ip2p即control_v11e_sd15_1p2p模型,這是個模型不是算法,這個模型沒有對應(yīng)的算法,使用時預(yù)處理器選擇none,這個模型可以通過指令修改對圖片進行調(diào)節(jié),比如左邊的原圖使用ip2p使用It turns into winter(變成冬天)的指令,生成了右邊這樣的圖:

    【AI】Stable-Diffusion-WebUI使用指南

    不過,模型只能生成一些簡單的效果,對于比較復(fù)雜的修改效果很差,并且生成圖的效果非常依賴大模型的出圖效果。

8.基于Regional Prompter的分區(qū)域繪制

Stable Diffusion WebUI有好幾款分區(qū)域繪制的插件,其中個人覺得比較好用的就是Regional Prompter插件。

安裝好插件后,會和controlnet一樣在文生圖和圖生圖下方出現(xiàn)一個下來選項,展開就是Rgional Prompter插件的設(shè)置選項了:

【AI】Stable-Diffusion-WebUI使用指南

設(shè)置項很多,這里就不單獨展開了,在后面講應(yīng)用的時候再順帶講了。

Regional Prompter的分割語法

Regional Prompter插件支持一維分割和二維分割,插件使用(英文逗號)進行一維分割,使用,;(英文逗號和英文分號)進行二維分割。

一維分割在水平分割模型下會將畫面分割成一根根的柱狀:

【AI】Stable-Diffusion-WebUI使用指南

在垂直分割下會將畫面分割成一條條的條狀,同時插件也支持使用小數(shù)的形式進行畫面分割,如1:1:2的分割比例也可以寫成0.25,0.25,0.5只要小數(shù)之合等于1即可:

【AI】Stable-Diffusion-WebUI使用指南

二維分割是先使用;進行垂直模式分割,然后再在條狀分割畫面的基礎(chǔ)上使用,進行水平模式分割,如這樣的一個分割語法1,1,1;3,2,1,2分割效果為:

【AI】Stable-Diffusion-WebUI使用指南

整個語法可以理解為,先使用;進行垂直模式分割,語法為:1;3,畫面將被分割成上下比例為1:3的兩部分,然后再在1對應(yīng)的區(qū)域使用,水平分割成對半的兩部分,語法為:1,1,1;3,再然后在3對應(yīng)的區(qū)域使用,水平分割成2:1:2的三部分,最終語法為:1,1,1;3,2,1,2

需要注意的是二維分割由于是使用;來表示垂直分割的,所以在垂直模型下使用二維分割會識別不到;,所以上面的分割語法1,1,1;3,2,1,2在垂直模型下只能識別成1,1,1,2,1,2,于是分割就變成了這樣:

【AI】Stable-Diffusion-WebUI使用指南

Regional Prompter的分割詞原理

Regional Prompter插件將整段提示詞分類為Common prompt、Base prompt和Region prompt三類,其中Common prompt和Base prompt是可選的類型,Region prompt則是必須類型,一般Common prompt指的是描述畫面質(zhì)量、渲染方式、光影等提示詞,Base prompt指的是不涉及分區(qū)域繪制的畫面中的其他特征的提示詞,如我們上面的例子畫一個女孩,那么Base prompt就可以是1girl、姿勢、年齡、場景、表情等提示詞,Region prompt則是用于分區(qū)域繪制的提示詞了。

  • ADDROW:垂直分割時使用的分割詞,垂直分割把畫面分割成一行一行條狀,每一個分割線對應(yīng)一個ADDROW分割詞,只能在正向提示詞中使用;
  • ADDCOL:水平分割時使用的分割詞,水平分割把畫面分割成一列一列的柱狀,每一個分割線對應(yīng)一個ADDCOL分割詞,只能在正向提示詞中使用;
  • ADDCOMM:用于分割Common prompt類型提示詞的分割詞,需要勾選Use common prompt選項才能生效;ADDCOMM也可以用于反向提示詞,用于分割反向提示詞中的Common prompt類型的提示詞,一般配合BREAK分割詞使用,需要在反向提示詞中使用ADDCOMM需要勾選Use common negative prompt選項才能生效;
  • ADDBASE:用于分割Base prompt類型提示詞的分割詞,需要勾選Use base prompt選項才能生效,只能在正向提示詞中使用;
  • BREAK:用于分區(qū)域繪制時為不同區(qū)域的Region prompt提示詞指定反向提示詞的分割詞,和Region prompt的分割詞一一對應(yīng),只能在反向提示詞中使用;

各區(qū)域的提示詞與分割詞之間可以使用,也可以不使用,可以換行也可以不換,如

masterpiece,the best quality super fine illustrations,high detail ADDCOMM 1girl,solo,((Standing)),pov,looking at viewer,Audience oriented,full body ADDBASE short red hair ADDROW ((yello wshort sleeves)) ADDROW green Pleated Skirt ADDROW black pantyhose  ADDROW pink sports shoes,
masterpiece,the best quality super fine illustrations,high detail,ADDCOMM,
1girl,solo,((Standing)),pov,looking at viewer,Audience oriented,full body,ADDBASE,
short red hair,ADDROW,
((yellow short sleeves)),ADDROW,
green Pleated Skirt,ADDROW,
black pantyhose,ADDROW,
pink sports shoes,
masterpiece,the best quality super fine illustrations,high detail ADDCOMM
1girl,solo,((Standing)),pov,looking at viewer,Audience oriented,full body ADDBASE
short red hair ADDROW
((yellow short sleeves)) ADDROW
green Pleated Skirt ADDROW 
black pantyhose ADDROW
pink sports shoes,

這三種形式最終控制效果都是一樣的,不過插件有一個問題,就是插件為了在規(guī)定區(qū)域繪制指定的物體,可能會改變畫面的一些特征導(dǎo)致有些特征和提示詞的描述不一致,如我上面的提示詞描述的是一個站著的女孩,但是插件為了保證指定區(qū)域出現(xiàn)指定顏色的物體,可能會改變繪制角色的姿勢,同時盡管我們使用了分區(qū)域繪制也無法100%的保證每個區(qū)域都能按照我們的預(yù)想來繪制,如我上面的提示詞偶爾會出現(xiàn)黃色短袖繪制成白色短袖,所以我為黃色短袖增加了權(quán)重,才能保證出來的圖都是穿黃色短袖的女孩,這些都需要我們在實際調(diào)控中根據(jù)需求調(diào)整。

分區(qū)域顏色控制

很多時候我們在畫一個畫面顏色比較多的圖時,只通過提示詞來描述物體顏色通常情況都會出現(xiàn)顏色污染,如我們要畫一個這樣的女孩:

【AI】Stable-Diffusion-WebUI使用指南

然后我們的出來的結(jié)果是這樣的:

可以看到顏色基本上很難和提示詞對應(yīng)上,尤其是黃色的短袖和綠色的百褶裙很難畫出來,顏色污染非常嚴(yán)重,然后我們用Rgional Prompter插件進行分區(qū)控制一下。

首先勾選啟用(active)啟動插件,由于我們畫人豎版的,所以分割模式(Divide Mode)選擇垂直(Vertical),然后分割比例(Divide Ratio)按照我們想要的顏色區(qū)域分布設(shè)定,我這里設(shè)定為1,1,1,2,1,這樣整個畫面就被垂直分割成了1:1:1:2:1的五個部分,除了使用比例式外,插件也支持小數(shù)形式,如1,1,1,2,1也可以寫成0.2,0.2,0.2,0.4,0.2,然后點擊visulize and make template按鈕可以生成分割預(yù)覽,并提供了對應(yīng)數(shù)量的分割詞;

【AI】Stable-Diffusion-WebUI使用指南

然后在提示詞中加入分割詞,將不同類型的提示詞按區(qū)域分割開來。

【AI】Stable-Diffusion-WebUI使用指南

然后可以看一下控制效果:

可以看到基本上顏色分布已經(jīng)正常了。

分區(qū)域多人繪制

多人繪制一直是AI繪圖的弱點,包括C站上絕大部分模型對多人繪制支持的都不是很好,所以盡管使用Regional prompter進行控制,出圖效果也極大程度的受到大模型的影響,出圖效果十分不穩(wěn)定。

這里的測試,我們對圖像進行左右的對半分割,左邊畫一個健美男,右邊畫一個舞女,進行如下控制:

【AI】Stable-Diffusion-WebUI使用指南

【AI】Stable-Diffusion-WebUI使用指南

然后出圖效果:

在我自己的測試中發(fā)現(xiàn)revAnimated-1.2.2這個大模型對多人繪制效果還可以。

分區(qū)域畫面繪制

這里以上面的1,1,1;3,2,1,2的分割比例為例。

【AI】Stable-Diffusion-WebUI使用指南

這里我使用了基礎(chǔ)比率(Base Ratio),這個設(shè)置可以控制Base prompt和Region prompt之間的控制權(quán)重,第一個權(quán)重是Base prompt的權(quán)重,后面跟著的權(quán)重是Region prompt的權(quán)重,數(shù)量和分割的區(qū)域?qū)?yīng)。默認值是0.2,表示Base prompt權(quán)重為0.2,Region prompt整體權(quán)重為0.8

左上角繪制一個紅色的月亮,右上角繪制密布的烏云,左下角繪制一個鐘樓教堂,中間繪制一輛紅色的汽車,右下角繪制一個白衣女孩。

【AI】Stable-Diffusion-WebUI使用指南

出圖效果:

【AI】Stable-Diffusion-WebUI使用指南

盡管對于元素比較多的畫面部分特征會被AI忽略,但總體上各個特征繪制的位置還算控制到位。

除此之外,插件還支持使用蒙版來進行區(qū)域分割控制,不過使用起來還挺復(fù)雜,并且還只支持HSV的顏色格式,另一個個人感覺功能比較強的是分割模式中的提示詞,可以根據(jù)提示詞來確定分割區(qū)域,不過我使用的2023.5.22 commit為673801c3ef9f50fa29406400a4d9c4b5464d73b2版本的插件在stable diffusion webui 1.3.0版本中使用這個模式完全不起作用,估計是插件還沒有兼容1.3.0的webui吧,所以這兩個功能也不過多累述了,具體可以看這個up的視頻:【AI繪畫】Stable Diffusion畫面分區(qū)控制:Regional Prompter,從入門到……_嗶哩嗶哩_bilibili

八、在PS中使用AI繪圖

1.環(huán)境配置

想要在PS中使用Stable Diffusion,首先我們電腦本地必須安裝了可用的SD-WebUI,然后我們需要安裝Photoshop2023,因為stable.art插件只支持Photoshop2023 v23.3.0以上的版本。

2.安裝Photoshop2023

這里分享一個Photoshop2023 v24.1.0版本的下載地址:Adobe PhotoShop 2023 v24.1.0。

下載完之后,雙擊解壓文件夾中的setup.exe文件安裝,安裝完之后拷貝解壓文件夾/Crack/Photoshop.exe覆蓋Adobe/Adobe Photoshop 2023/Photoshop.exe文件。

這樣Photoshop就安裝好了。

3.安裝Stable.art插件

插件的安裝就比較簡單了,插件是開源的,插件地址:isekaidev/stable.art:Photoshop插件,用于以Automatic1111作為后端的穩(wěn)定擴散。

這個插件就需要像webui的插件一樣克隆整個git庫了,我們只需要下載ccx文件就好了,在readme文件里,作者已經(jīng)提供了下載連接,也可以直接點擊這個鏈接下載:CCX,下載下來后將文件名改成.zip,然后解壓,將整個文件夾拷貝到Adobe/Adobe Photoshop 2023/Plug-ins文件下。

這樣Stable.art插件就安裝好了。

4.啟用插件

Stable.art插件的運行依賴于sd-webui的api,所以我們需要以api模型啟動webui,打開webui-user.bat文件在set COMMANDLINE_ARGS=之后加上--api啟動參數(shù),然后再啟動webui,這時的webui就是以api模式啟動了。

然后打開ps,在增效工具/stable.art,就可以看到插件了,在Endpoint欄輸入webui服務(wù)器地址,插件就連接上了webui了,界面的是使用和webui基本是一樣的。

stable.art插件使用的所有的設(shè)置都是webui的設(shè)置,插件目前支持更換模型、簡單的文生圖、基于選區(qū)的圖生圖,和基于選區(qū)的局部重繪,并且生成的圖片會自動轉(zhuǎn)換成圖層。

stable.art還有一個擴展(Explore),能夠提供一些預(yù)制的tag關(guān)鍵詞,點擊之后會自動填充到關(guān)鍵詞中。

stable.art插件目前還處于0.0.1的beta版本,功能還很不完善,如果插件能兼容ControlNet,那么這個插件將變得無比強大。

5.Auto-Photoshop-SD插件

這個插件是我在撰寫Lora模型訓(xùn)練章節(jié)時新發(fā)現(xiàn)的一個PS插件,功能要比Stable.art插件強大,而且已經(jīng)支持了ControlNet,Auto-Photoshop-SD的安裝方法和Stable.art一樣,并且也只支持2023以上的PS版本,連接Stable Diffusion服務(wù)也和Stable.art一樣,在設(shè)置中設(shè)置好地址就可以,然后其他的用法基本就和使用webui一樣了。

插件git庫地址:AbdullahAlfaraj/Auto-Photoshop-StableDiffusion-Plugin:一個用戶友好的插件,可以使用Automatic1111-sd-webui作為后端,在Photoshop中輕松生成穩(wěn)定的擴散圖像。

九、模型融合

后續(xù)更新計劃

十、模型訓(xùn)練

本章參考的資料:

【AI繪畫】LoRA訓(xùn)練全參數(shù)講解

lora訓(xùn)練進階教程,不要再瞎填參數(shù)了

零基礎(chǔ) Dreambooth 使用教程

一些基本術(shù)語

不收斂

不收斂就是AI在學(xué)習(xí)圖像特征時沒有將圖像特征學(xué)習(xí)到模型中。

泛化性

泛化性即泛用能力,是一個模型能否適應(yīng)多種情況的標(biāo)準(zhǔn),如一個服裝模型,在泛化性差的情況,AI繪制出來的服裝可能就都是穿在訓(xùn)練集中的人物身上,或者只能畫出服裝,不能穿到人的身上,泛化性好的情況就是服裝可以指定給任意人物穿上。

欠擬合

欠擬合就是圖像特征和提示詞關(guān)聯(lián)的不好,使用特定的觸發(fā)提示詞卻不能很好的使AI繪制出指定特征的對象,簡單的說就是AI學(xué)了,但沒怎么學(xué)會,一般來說欠擬合很少在模型訓(xùn)練中出現(xiàn)。

過擬合

過擬合則和欠擬合相反,即學(xué)會了,但是是死讀書,不會變通,就如第六章第二節(jié)所說的,使用了HelloKity的Lora之后,模型將很難再畫出加菲貓,這種情況就是過擬合,即AI學(xué)會了新知識卻忘記了舊知識。

過擬合的好壞視情況而論,如果是功能性模型過擬合,那么模型就缺乏泛用性,致使模型無法適應(yīng)各種各樣的情況,如一個通過其他貓的體態(tài)繪制加菲貓的模型,如果過擬合了,如果數(shù)據(jù)集只有真實的貓,那么模型就只能從真實的貓來繪制加菲貓,換成HelloKity模型就繪制不出來了。

但是對于人物模型來說,尤其是二次元人物L(fēng)ora,人物特征就是和服裝,發(fā)型發(fā)色等綁定的,這種情況適當(dāng)?shù)倪^擬合又是有好處的,能夠很容易的還原人物特征。

然而如果這個二次元人物又有換裝的需要,那么過擬合又會影響到泛用性,此時過擬合又是有壞處的。

所以過擬合的好壞應(yīng)該視情況而論。

訓(xùn)練步數(shù)

訓(xùn)練步數(shù)就是在使用powershell訓(xùn)練時這里顯示的數(shù)字:

【AI】Stable-Diffusion-WebUI使用指南

訓(xùn)練步數(shù) = [epoches] × [圖片數(shù)] × [圖片重復(fù)次數(shù)] ÷ [batch size]

epoches和batch size是訓(xùn)練腳本中對應(yīng)參數(shù)設(shè)置的值,圖片重復(fù)次數(shù)是訓(xùn)練文件夾下劃線前的數(shù)字,具體可以看第三小節(jié)Lora。

1.Checkpoint

后續(xù)更新計劃

2.Lora

Lora模型可以說是最好用的微調(diào)模型了,C站上大家分享的大都是Lora模型,對于想要AI繪制特定的人物,服裝或者畫風(fēng)時,訓(xùn)練自用Lora是一個很不錯的方式。

訓(xùn)練Lora前我們應(yīng)該充分的了解Lora的工作原理,以便更好的掌控Lora的配置細節(jié)。

Lora模型的訓(xùn)練主要基于Lora-Script。

安裝Lora-Script

Lora-Script庫地址:Akegarasu/lora-scripts: LoRA training scripts use kohya-ss’s trainer, for diffusion model.;

原生的庫是國外大神制作的,里面是全英文,對于一些配置的使用還是會有些不便,這里推薦使用秋葉大佬修改過的版本,大佬對訓(xùn)練腳本的一些配置作了中文注釋。

可以到秋葉大佬的視頻地址出下載:【AI繪畫】最佳人物模型訓(xùn)練!保姆式LoRA模型訓(xùn)練教程 一鍵包發(fā)布。

然后我們需要知曉幾個文件夾和文件的作用:

  • output:輸出文件夾,訓(xùn)練好的模型和保存的中間模型都存在這;
  • sd-models:放置基礎(chǔ)模型的地方,基礎(chǔ)模型就是訓(xùn)練lora所使用的checkpoint模型;
  • train:用于存放訓(xùn)練數(shù)據(jù)的文件夾,沒有這個文件夾的話,要手動創(chuàng)建;
  • venv:lora-script的運行環(huán)境配件,在配置運行環(huán)境時,由lora-script程序自動生成;
  • intall.ps1:一鍵配置運行環(huán)境的powershell腳本,如果使使用秋葉的整合,還有一個使用國內(nèi)鏡像源的intall-cn.ps1腳本;
  • train.ps1:一鍵訓(xùn)練模型腳本;

配置運行環(huán)境

Lora-Script依賴python 3.10.8和git,通過第二章的本地部署,這兩個環(huán)境應(yīng)該是已經(jīng)安裝好了的。

然后右鍵intall.ps1選擇使用PowerShell運行,腳本會自動為我們安裝好程序的依賴。

這個過程中我有碰到xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl安裝不上的問題,我是直接從網(wǎng)上去下了一個同版本的whl文件到本地,手動安裝解決的。

文件我也自己上傳百度云了:https://pan.baidu.com/s/1C5tEo-LdS2n_1smYlEIjfg?psw=4unx

當(dāng)然還有一種方法,可以拷貝webui的venv\Lib\site-packages\xformers文件夾到lora-scripts\venv\Lib\site-packages目錄。

整理訓(xùn)練數(shù)據(jù)集

首先我們需要明確一個要點,訓(xùn)練使用的數(shù)據(jù)集的圖片的質(zhì)量決定了AI出圖時的圖片質(zhì)量上限,所以對于數(shù)據(jù)集的整理應(yīng)盡可能的保證完整,如我們要訓(xùn)練一個人物,那么數(shù)據(jù)集應(yīng)盡可能包含這個人物各個角度的圖片,各種景深的圖片(特寫,近景,中景,遠景等),各種姿勢的圖片,對于訓(xùn)練人物還可以包含一些局部特寫圖片,如臉部特寫,服飾特寫,腿部特寫等,盡量減少重復(fù)的或高度相似的圖片,以避免過擬合。

對于數(shù)據(jù)集中圖片的數(shù)量沒有明確規(guī)定數(shù)量的上下限,廣大網(wǎng)友的經(jīng)驗是20-50左右為宜。

圖片的尺寸也有要求,不是什么分辨率的都可以用的,圖片的分辨率必須是64的倍數(shù),并且不宜超過1024,因為Stable Diffusion 1.5的底?;径际鞘褂?12x512尺寸的圖片訓(xùn)練的,這使得AI在繪制1024x1024圖片時的效果很差,所以當(dāng)我們的訓(xùn)練圖片超過1024x1024之后,不僅不會對訓(xùn)練效果有什么提升反而會成倍的提升訓(xùn)練時長,當(dāng)然圖片也不能過小,最小不要小于512x512,太小的圖片包含的特征信息太少,AI將很難學(xué)習(xí)到圖片中的特征。網(wǎng)上總結(jié)的比較優(yōu)質(zhì)的圖片尺寸是512、768和1024,可以證據(jù)自己的顯卡配置選擇不同的尺寸。

在webui的訓(xùn)練/圖像預(yù)處理選項卡已經(jīng)為我們提供了圖片的批量裁剪功能,可以批量的修改圖片到指定分辨率。

【AI】Stable-Diffusion-WebUI使用指南

視情況勾選創(chuàng)建鏡像副本,程序在處理圖片時將為每一張圖片創(chuàng)建一個水平翻轉(zhuǎn)過的鏡像圖片,一般在圖片數(shù)據(jù)較少或缺乏某個角度圖片時使用,以增加圖片數(shù)量,完善數(shù)據(jù)集;

勾選自動交點裁剪,程序會自動判斷畫面主體,以畫面主體為中心修改圖片分辨率,可以有效的避免在裁剪圖片時將畫面主體裁碎;

最后兩個自動打標(biāo)的選項不建議勾選,webui的自動打標(biāo)識別出來的提示詞不是很準(zhǔn)確,推薦使用Tagger插件打標(biāo),圖片打標(biāo)將在后面的章節(jié)介紹。

圖片處理好之后,就可以將圖片集放到對應(yīng)的文件夾下了。

在train文件夾下新建一個以模型名命名的文件夾,比如我訓(xùn)練的模型我取名為bocai,那么我的文件夾就命名為bocai,這不是必須的,只是為了規(guī)范。

在bocai文件夾下新建若干以[數(shù)字]_[概念]格式命名的文件夾,數(shù)字代表AI在學(xué)習(xí)這些圖片時的重復(fù)次數(shù),概念就是這個文件夾下的圖片代表的對象,比如我們想讓AI學(xué)習(xí)唐裝的樣式,那么文件夾就可以命名為8_tanzhuang,tanzhuang這個詞也將會作為我們將來使用訓(xùn)練出來的Lora控制AI繪制唐裝時需要使用的觸發(fā)提示詞,對于下劃線前的數(shù)字網(wǎng)上還沒有明確得出設(shè)置的標(biāo)準(zhǔn),一般來說根據(jù)文件夾放置圖片的數(shù)量設(shè)置為4~8左右,具體多少圖片設(shè)置多少的重復(fù)次數(shù),目前網(wǎng)上沒有明確的標(biāo)準(zhǔn),根據(jù)經(jīng)驗就是根據(jù)概念文件夾內(nèi)放置的圖片數(shù)量占總圖片數(shù)量的百分比來設(shè)置,最少的設(shè)置成4最多的設(shè)置成8。AI在學(xué)習(xí)圖片特征時,圖片數(shù)量很少而重復(fù)次數(shù)很高的話,AI就會反復(fù)學(xué)習(xí)少量的圖片中的特征,使得AI在繪制圖片時很難跳出這些圖片的約束,而圖片數(shù)量多設(shè)置重復(fù)次數(shù)高是因為圖片數(shù)量多時承載的信息量也大,AI要學(xué)習(xí)圖片中的特征就要多學(xué)幾次,現(xiàn)象上和人的學(xué)習(xí)有點類似。

訓(xùn)練時AI會依次學(xué)習(xí)bocai文件下的若干特征數(shù)據(jù)集。

正則化數(shù)據(jù)

正則化是一種用來防止數(shù)據(jù)過擬合的技術(shù),通過對參數(shù)進行懲罰來減少模型的復(fù)雜度,提高模型的泛化性,正則化是機器學(xué)習(xí)中監(jiān)督學(xué)習(xí)的一種方法。

正則化數(shù)據(jù)可以將AI已經(jīng)學(xué)過的舊知識與要學(xué)習(xí)的新知識分隔開,使之互不影響,這在訓(xùn)練畫風(fēng)Lora、功能性Lora這些對模型泛化性有著極高要求的Lora時是十分必要的,對于訓(xùn)練人物L(fēng)ora則沒有那么必要了。

在train目錄下新建一個reg目錄,在reg目錄下新建一個和訓(xùn)練概念同名的文件夾,如我們訓(xùn)練一個根據(jù)真實貓繪制卡通加菲貓的功能性Lora,那么我們應(yīng)該在train目錄下新建一個加菲貓的概念文件夾,加入命名為8_JiafeiCat,并根據(jù)圖片數(shù)量設(shè)定重復(fù)次數(shù)并放置40張各種體態(tài)的加菲貓圖片數(shù)據(jù)到文件夾中,然后再在train目錄新建reg文件夾,在reg文件夾下新建一個同名文件夾6_JiafeiCat,設(shè)定的重復(fù)次數(shù)應(yīng)略少于概念重復(fù)次數(shù),并向文件夾中放入大于等于概念文件夾圖片數(shù)量的正則圖片,正則圖片是和訓(xùn)練的概念—加菲貓相似但有不同的對象,如HelloKity,真實的貓等,正則圖片可以從網(wǎng)上找,也可以直接從基礎(chǔ)模型生成。

如果我們要使用正則化數(shù)據(jù)進行模型訓(xùn)練,那么在訓(xùn)練參數(shù)中我們需要在訓(xùn)練參數(shù)中指定正則化路徑,如果路徑為空則表示不啟用,然后我們可以通過--prior_loss_weight參數(shù)(訓(xùn)練腳本中的一個參數(shù))來控制正則化數(shù)據(jù)對概念的影響程度,默認為1表示100%影響。

提示詞打標(biāo)

圖片數(shù)據(jù)處理好之后,我們還需要處理提示詞數(shù)據(jù),每一張數(shù)據(jù)圖片都應(yīng)該有一個提示詞文本,提示詞文本描述對應(yīng)圖片包含的具體特征。

這里推薦使用Tagger插件來打標(biāo),Tagger插件從圖片反推提示詞要比Webui自帶的功能要更準(zhǔn)確。插件的用法就不累述了,如果裝了漢化插件的話,各個選項的功能基本看名字就知道怎么用了。需要留意在附加標(biāo)簽中添加我們需要觸發(fā)Lora功能的提示詞。

為每張圖片生成了tag文本之后,我們需要對文本進行整理,這一步操作主要是刪去一些我們需要讓AI學(xué)習(xí)的特征和補全一些插件沒有識別上的特征,比如,我們要訓(xùn)練一個明日香這個角色的人物L(fēng)ora,那么在tag文本中我們需要刪除與紅色的緊身衣、橘黃色的頭發(fā)、眼罩這些有著角色明顯特征的提示詞,這樣AI學(xué)習(xí)的時候才能將這些特征學(xué)習(xí)到Lora模型中,否則AI就會將這些特征學(xué)習(xí)到對應(yīng)的特征提示詞中,這種情況我們使用這個Lora時只要輸入紅色的緊身衣,AI就會繪制明日香的衣服,這樣Lora的泛化性就很差,當(dāng)然如果不重視泛化性也可以不刪。如果提示詞文本中插件沒有識別到圖片中的一些表情或姿勢特征,我們應(yīng)該手動補全,不然AI也會把這些表情和姿勢特征學(xué)習(xí)進入模型中,AI在使用模型繪制人物時會有極大的可能出現(xiàn)表情、姿勢固定的問題。

當(dāng)然對于單概念模型,即一個Lora只訓(xùn)練一個角色的一種形象,觸發(fā)詞就不是必須的了,但對于一個Lora訓(xùn)練了多個角色或一個角色的多種形象時,觸發(fā)詞就很有必要了,觸發(fā)詞可以使在使用Lora時對這些概念的掌控性更強,并且可以使用觸發(fā)詞來控制權(quán)重。

提示詞文本中描述特征的提示詞越多,AI學(xué)習(xí)到Lora中的特征就越少,使用Lora還原對象時就需要更多的提示詞,模型的泛化性就越高,相對的,提示詞文本中描述特征的提示詞越少,AI學(xué)習(xí)到Lora中的特征就越多,使用Lora還原對象時需要的提示詞也就越少,模型泛化性就越低。

對于刪除提示詞,我們可以直接通過文本手動刪除,不過更推薦使用數(shù)據(jù)集標(biāo)簽編輯器這個插件來批量操作。

【AI】Stable-Diffusion-WebUI使用指南

在數(shù)據(jù)集目錄輸入帶有提示詞文本的數(shù)據(jù)集目錄路徑,點擊載入就可以讀取所有的提示詞到Select Tags欄下,然后到Batch Edit Captions/移除功能框,勾選想要移除的提示詞后點擊Remove selected tags,然后點擊Save all changes保存修改,如果勾選了backup original text file則會在原目錄下新增原提示詞文本的備份。

配置訓(xùn)練參數(shù)

訓(xùn)練參數(shù)指就是train.ps1腳本中的一些參數(shù),我們一個個看:

  • pretrained_model:設(shè)置我們訓(xùn)練lora所使用的基礎(chǔ)模型,可以是官模,也可以是基于官模訓(xùn)練的定制化模型;

  • train_data_dir:設(shè)置訓(xùn)練數(shù)據(jù)集的路徑;

  • reg_data_dir:設(shè)置正則化數(shù)據(jù)路徑;

  • resolution:設(shè)置圖片的分辨率;

  • batch_size:設(shè)置AI在一次學(xué)習(xí)過程中同時學(xué)習(xí)的圖片數(shù)量,根據(jù)自己的顯存大小設(shè)置,數(shù)值越大吃的顯存越多;

  • max_train_epoches:epoches是機器學(xué)習(xí)中的一個重要概念,一次epoches表示AI對整個數(shù)據(jù)集進行一次完整的訓(xùn)練,如我們設(shè)置成10那么AI就會對我們的數(shù)據(jù)集進行10次完整的訓(xùn)練,一般來說epoches數(shù)越大,模型的訓(xùn)練效果越好,訓(xùn)練所需要的時長也越長,但epoches數(shù)會影響到訓(xùn)練步數(shù),過大也會導(dǎo)致數(shù)據(jù)過擬合;

  • save_every_n_epochs:設(shè)置每隔多少次epoches保存一次模型,主要用于對比不同epoches下的模型效果。

  • network_dim:設(shè)置AI學(xué)習(xí)的深度,就是AI在一張圖片中學(xué)習(xí)的特征數(shù)量,會直接影響輸入數(shù)據(jù)的維度,從而很大程度的影響lora的質(zhì)量,數(shù)值越大,輸出的lora模型也就越大。dim數(shù)值不宜過大也不宜過小,過大容易照成過擬合,過小則學(xué)習(xí)的特征不夠,效果不佳,有人說32很合適,也有人說128很合適,個人認為應(yīng)該根據(jù)自己的實際情況來調(diào)整。

  • network_alpha:這個數(shù)值是用來調(diào)整正則化程度的,值越大,正則化程度越高,模型復(fù)雜度就越小,模型泛化性越強,一般設(shè)置成和network_dim一樣的數(shù)值,或者使用小數(shù)來使用百分比的形式,使用小數(shù)的話一般設(shè)置成0.25~0.5。

  • train_unet_only:是否只訓(xùn)練U-Net;

  • train_text_encoder_only:是否只訓(xùn)練文本編碼器;

    train_unet_only和train_text_encoder_only兩個選項除非有修改代碼或者有預(yù)先訓(xùn)練的需求,一般都設(shè)置為0,不啟用。

  • noise_offset:設(shè)置AI在訓(xùn)練是往訓(xùn)練結(jié)果中添加的噪聲偏移量,用來改良在生成非常暗或非常亮的圖片時的生成效果;

  • keep_tokens:是否打亂AI讀取提示詞文本中提示詞的順序,打亂提示詞的讀取順序有利于提高模型的泛化性,設(shè)置數(shù)值表示在第幾個提示詞之后開始打亂讀取順序;

  • lr:設(shè)置訓(xùn)練lora模型的學(xué)習(xí)率,學(xué)習(xí)率是指控制模型在每次迭代中更新權(quán)重的步長。學(xué)習(xí)率的大小對模型的訓(xùn)練和性能都有重要影響。如果學(xué)習(xí)率設(shè)置得太小,模型收斂速度會很慢,訓(xùn)練時間會變長;如果學(xué)習(xí)率設(shè)置得太大,模型可能會在訓(xùn)練過程中出現(xiàn)震蕩,甚至無法收斂。默認1e-4是調(diào)試過的數(shù)值;

  • unet_lr:設(shè)置訓(xùn)練U-Net的學(xué)習(xí)率;

  • text_encoder_lr:設(shè)置訓(xùn)練文本編碼器的學(xué)習(xí)率;

  • lr_scheduler:設(shè)置學(xué)習(xí)率調(diào)度器,學(xué)習(xí)率調(diào)度器是一種在模型訓(xùn)練的過程中進行動態(tài)調(diào)節(jié)學(xué)習(xí)率的技術(shù),lora-script已經(jīng)為我們內(nèi)置了

    linear-學(xué)習(xí)率線性下降;

    cosine-余弦退火,使用余弦函數(shù)來逐漸降低學(xué)習(xí)率;

    cosine_with_restarts-余弦退火重啟,在cosine的基礎(chǔ)上沒過幾個周期重啟一次;

    polynomial-使用多項式函數(shù)來調(diào)整學(xué)習(xí)率;

    constant-學(xué)習(xí)率保持恒定不變;

    constant_with_warmup-恒定預(yù)熱,在開始時學(xué)習(xí)率會略微增大,然后逐漸退回學(xué)習(xí)率恒定不變;

    這六個調(diào)度器。

  • lr_warmup_steps:在學(xué)習(xí)率調(diào)度器啟用constant_with_warmup時生效,設(shè)置恒定預(yù)熱調(diào)度器在開始學(xué)習(xí)時學(xué)習(xí)率增大的幅度,一般設(shè)置成總步數(shù)的1/10或1/20的數(shù)值。例如總步數(shù)是1000,就設(shè)置成50或者100;

  • lr_restart_cycles:在學(xué)習(xí)率調(diào)度器啟用cosine_with_restarts啟用,設(shè)置重啟的間隔;

  • output_name:輸出模型的名稱;

  • save_model_as:輸出模型的格式,可以是ckpt,pt和safetensors,建議都使用safetensors安全格式;

  • network_weights:設(shè)置是否需要重已有的Lora模型繼續(xù)訓(xùn)練,需要則設(shè)置成Lora模型的路徑,不需要則設(shè)置成空字符;

  • min_bucket_reso:設(shè)置訓(xùn)練數(shù)據(jù)集中圖片的最小分辨率;

  • max_bucket_reso:設(shè)置訓(xùn)練數(shù)據(jù)集中圖片的最大分辨率;

    min_bucket_reso和max_bucket_reso需要根據(jù)自己整理的數(shù)據(jù)集的情況設(shè)置,設(shè)置不對訓(xùn)練時會報錯;

  • persistent_data_loader_workers:是否保留加載訓(xùn)練集的worker,減少每次epoch的停頓,顯存不高的不建議啟用,容易爆顯存;

  • clip_skip:設(shè)置文本解析時跳過的神經(jīng)網(wǎng)絡(luò)的層數(shù),一般訓(xùn)練三次元lora設(shè)置成1,訓(xùn)練二次元lora設(shè)置成2,具體的作用可以看這里:clip_skip到底是什么? ·自動1111 穩(wěn)定擴散 ·;

  • use_8bit_adam:是否啟用8bit優(yōu)化器,可以在不影響模型精度的情況下大幅減少顯存的使用量節(jié),默認啟用;

  • use_lion:是否啟用Lion優(yōu)化器,可以讓模型更快的收斂,具體可以看這里:Google新搜出的優(yōu)化器Lion:效率與效果兼得的“訓(xùn)練獅”;

  • enable_locon_train:啟用LoCon訓(xùn)練,LoCon是由Lora演變而來的改進模型,具體可以看這里:LoCon相對于LoRA的改進,但是現(xiàn)在Lora模型使用得更廣泛,所以一般不啟用;

  • conv_dim:設(shè)置訓(xùn)練LoCon模型時的學(xué)習(xí)率;

  • conv_alpha:設(shè)置訓(xùn)練LoCon模型時的正則化程度;

  • –prior_loss_weight:設(shè)置正則化數(shù)據(jù)對概念的想象程度。

把參數(shù)按照自己的需求設(shè)置好,就可以右鍵train.ps1使用powershell運行,來訓(xùn)練模型了。

這些參數(shù)的設(shè)置對于Lora類型,風(fēng)格強度,使用場景等均有不同設(shè)置,目前網(wǎng)上沒有明確的設(shè)置標(biāo)準(zhǔn),大都需要根據(jù)經(jīng)驗設(shè)置,通過不斷的測試來確定一組效果比較好的參數(shù)組。

后續(xù)更新計劃

杰克艾米立 - YouTube

人物L(fēng)ora訓(xùn)練

人物的lora訓(xùn)練和前面的lora訓(xùn)練參數(shù)基本基本一致,需要關(guān)注的是數(shù)據(jù)集,如果想要Lora訓(xùn)練出來的人物有較好的泛用性,那么訓(xùn)練集中,人物應(yīng)盡可能多的多幾套服裝、多幾個角度,多集中動作,多余一些比較重要的配飾應(yīng)該有特寫圖片,然后人物圖片數(shù)據(jù)集應(yīng)該將人物單獨扣出來,去除背景,并使用白色背景填充,這樣在出圖時不會受到數(shù)據(jù)集背景的影響。

服裝Lora訓(xùn)練

畫風(fēng)Lora訓(xùn)練

功能性Lora訓(xùn)練

3.Embedding

【AI繪畫】Embedding & Hypernetwork使用及訓(xùn)練(Stable Diffusion)(自用) - 嗶哩嗶哩 (bilibili.com)

stable diffusion訓(xùn)練embedding和hypernetwork詳解_嗶哩嗶哩_bilibili

4.Hypernetworks

5.AesthticGradients

十一、腳本開發(fā)

十二、插件開發(fā)

十三、ComfyUI

ComfyUI是最近新出的一款stable diffusion操作UI,特點是可以使用節(jié)點的形式對出圖流程進行精確控制,作者制作這款UI的初衷就是可以使用stable diffusion進行復(fù)雜的工作流,目前ComfyUI還在快速的迭代中。

我實際使用之后的感受是,ComfyUI出圖是真的快,我的3080ti顯卡使用ComfyUI批量出8張2K圖只需要幾秒鐘,換做WebUI,起碼得半分鐘。

1.本地部署

環(huán)境部署

直接使用git克隆ComfyUI庫到本地或下載zip包解壓到本地,相比于WebUI,ComfyUI就小了很多,到我寫這個章節(jié)的日期為止,整個ComfyUI庫只有6.75MB。

ComfyUI依賴python3.10環(huán)境,作者有在readme中提及,目前ComfyUI不支持python3.10以上環(huán)境,這里我們可以直接使用WebUI的虛擬環(huán)境中的Python就好了,正好前面部署WebUI時使用的python是3.10.6。

在ComfyUI目錄中在地址欄輸入cmd,回車就可以直接在ComfyUI目錄啟動cmd

【AI】Stable-Diffusion-WebUI使用指南

進入WebUI的1venv/Scripts目錄找到python.exe拖入cmd,然后運行main.py腳本就可以運行ComfyUI服務(wù)了。

E:\WebUI\venv\Scripts\python.exe main.py

在瀏覽器打開控制臺給的地址,就可以進入ComfyUI了。

為了啟動方便,我們可以寫一個.bat腳本寫入上面這條指令,下次啟動就可以直接雙擊.bat腳本運行。

不過現(xiàn)在UI還是不能出圖的,我們還需要安裝一些依賴

安裝依賴項

ComfyUI需要使用torch、xfirmers工具庫,我們已經(jīng)在WebUI中安裝過這些庫了,所以可以不用再安裝,按照前面的運行方式我們已經(jīng)使用了WebUI的虛擬環(huán)境運行ComfyUI,所以這些庫ComfyUI都已經(jīng)識別上了。

如果沒有安裝WebUI的話,通過cmd使用這個命令安裝

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 xformers

這是英偉達顯卡的版本,AMD顯卡安裝這個版本

https://download.pytorch.org/whl/rocm5.4.2

運行之后,需要下載2.6G的工具庫。

然后運行

pip install -r requirements.txt

安裝ComfyUI的依賴。

自己安裝torch和xformers的話經(jīng)常會和cuda出現(xiàn)各種版本問題,需要自己去調(diào),所以有安裝WebUI的話建議還是直接使用WebUI的虛擬環(huán)境無腦運行。

配置模型

對于已經(jīng)安裝了WebUI的人可以修改ComfyUI根目錄下的extra_model_paths.yaml.example文件,

  • base_path:設(shè)置WebUI的根目錄
  • checkpoints:設(shè)置WebUI的大模型目錄
  • vae:設(shè)置WebUI的VAE目錄
  • loras:設(shè)置WebUI的lora目錄
  • upscale_models:設(shè)置WebUI的放大算法目錄
  • controlnet:設(shè)置controlnet庫目錄

可以參考我的設(shè)置:

#Rename this to extra_model_paths.yaml and ComfyUI will load it

#config for a1111 ui
#all you have to do is change the base_path to where yours is installed
a111:
    base_path: E:/WebUI

    checkpoints: E:/WebUI/models/Stable-diffusion
    configs: E:/WebUI/models/Stable-diffusion
    vae: E:/WebUI/models/VAE
    loras: E:/WebUI/models/Lora
    upscale_models: |
                  E:/WebUI/models/ESRGAN
                  E:/WebUI/models/SwinIR
    embeddings: E:/WebUI/embeddings
    controlnet: E:/WebUI/extensions/sd-webui-controlnet

#other_ui:
#    base_path: path/to/ui
#    checkpoints: models/checkpoints

設(shè)置好之后,將文件重命名為extra_model_paths.yaml,在下次啟動時ComfyUI會加載配置文件的模型。

當(dāng)然我們也可以將模型放到ComfyUI/models目錄的對應(yīng)文件夾下。

2.操作與界面

  • 長按鼠標(biāo)左鍵:移動視圖;

  • 單擊節(jié)點:選中指定節(jié)點;

  • 雙擊鼠標(biāo)左鍵:打開快捷節(jié)點搜索;

  • 右鍵空白視圖:跳出右鍵菜單,右鍵菜單得根目錄只有兩個選項:

    【AI】Stable-Diffusion-WebUI使用指南

    Add Node:添加節(jié)點;

    Add Group:添加組,可以為節(jié)點打組,這個功能現(xiàn)在還有點雞肋,可以忽略。

  • 按住Ctrl+鼠標(biāo)左鍵:框選選區(qū)內(nèi)節(jié)點;

  • 鼠標(biāo)放在節(jié)點右下角:可以修改節(jié)點的大?。?/p>

  • 右鍵節(jié)點:打開節(jié)點菜單,

    【AI】Stable-Diffusion-WebUI使用指南

    Properties:

    Title:修改節(jié)點的名稱;

    Mode:更改節(jié)點的模式,

    Resize:重置節(jié)點的尺寸到默認值;

    Collapse:縮略節(jié)點;

    Pin:

    Colors:更改節(jié)點的顏色;

    Shapes:更改節(jié)點的形狀;

  • 菜單界面:

    【AI】Stable-Diffusion-WebUI使用指南

    在左上角長按左鍵:拖動菜單;

    Queue Prompt:將當(dāng)前節(jié)點的組合任務(wù)加入隊列;

    Extra options:勾選可以啟用批量出圖;

    Queue Front:將當(dāng)前隊列的任務(wù)再執(zhí)行一次;

    See Queue:查看隊列信息,可以在這里刪除指定的任務(wù),以終止圖片生成;

    See History:查看歷史信息;

    Save:保存當(dāng)前頁面的節(jié)點信息到一個Json文件中;

    Load:從Json文件加載頁面節(jié)點信息;

    Refresh:刷新頁面;

    Clear:清空頁面;

    Load Default:加載默認頁面節(jié)點信息;

3.常用節(jié)點

由于ComfyUI還處于快速迭代中,節(jié)點可能會有變化,這里以撰寫這個章節(jié)日期:2023.4.7更新的最新版本為例。

打開ComfyUI,UI界面已經(jīng)

十四、InvokeAI

InvokeAI

十五、擴展閱讀

AI繪畫Stable-diffusion擴展最新全面使用指南 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/583677438

如何使用AI繪畫技術(shù)生成360度全景圖? (qq.com)

NovelAI模型各參數(shù)解析以及對應(yīng)關(guān)系 - 知乎 (zhihu.com)

AI 繪畫神器 Stable Diffusion 玩法大測評 - 知乎 (zhihu.com)

【AI繪畫模型大全】超全的模型資源匯總! - 知乎 (zhihu.com)

AI繪畫第二步,抄作業(yè)復(fù)現(xiàn)超贊的效果!_托尼不是塔克的博客-CSDN博客

TencentARC/T2I-Adapter: T2I-Adapter (github.com)

精確控制 AI 圖像生成的破冰方案,ControlNet 和 T2I-Adapter_創(chuàng)業(yè)者西喬的博客-CSDN博客

ControlNet如何為擴散模型添加額外模態(tài)的引導(dǎo)信息 - 知乎 (zhihu.com)

擴散模型與受控圖像生成-脈絡(luò)梳理 - 知乎 (zhihu.com)

CLIP, VQGAN, VQGAN-CLIP, Stable-Diffusion - 知乎 (zhihu.com)文章來源地址http://www.zghlxwxcb.cn/news/detail-470228.html

到了這里,關(guān)于【AI】Stable-Diffusion-WebUI使用指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【AI繪圖本地部署,無顯卡部署stable-diffusion-webui嗎,使用CPU運算】

    環(huán)境準(zhǔn)備 aconda:https://www.anaconda.com/ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 進入目錄 cd stable-diffusion-webui 創(chuàng)建虛擬環(huán)境 python -m venv ./virtualenv 運行虛擬環(huán)境 .virtualenvScriptsActivate.ps1 安裝Cpu運行的pytorch版本 pip3 install torch torchvision torchaudio 修改根目錄下launch.py代碼

    2024年02月16日
    瀏覽(55)
  • 建Stable-Diffusion-Webui的AI

    人工智能,丹青圣手,全平臺(原生/Docker)構(gòu)建Stable-Diffusion-Webui的AI繪畫庫教程(Python3.10/Pytorch1.13.0) - 知乎

    2024年02月16日
    瀏覽(21)
  • AI繪圖入門 安裝 stable-diffusion-webui

    AI繪圖入門 安裝 stable-diffusion-webui

    先看樣張: https://www.python.org/downloads/ Git - Downloads (git-scm.com) 1. 新建文件夾 (不能有中文,建議放在空閑比較多的硬盤上),然后再文件夾打開命令行 2. 克隆 Nvidia顯卡 AMD顯卡 AMD GPU 說明 CPU 選擇上面任意一個都可以 下載慢可以請求頭加https://ghproxy.com/ 如: https://ghproxy.com/

    2024年02月06日
    瀏覽(52)
  • novel Ai (stable-diffusion-webui)安裝

    novel Ai (stable-diffusion-webui)安裝

    環(huán)境 英偉達顯卡 win11 可以連接github并下載內(nèi)容 安裝 python 3.10.6及以上,安裝并添加到path 安裝 cuDNN 和 CUDAToolKit 先更新主機的顯卡驅(qū)動,檢查系統(tǒng)的顯卡驅(qū)動版本的CUDA版本(電腦右下角:NVIDIA設(shè)置 - NVIDIA控制面板 - 左下角:系統(tǒng)信息 - 選項卡:組件 - 3D設(shè)置找CUDA:產(chǎn)品名稱)

    2024年02月02日
    瀏覽(22)
  • stable-diffusion-webui教程(AI繪畫真人教程)

    stable-diffusion-webui教程(AI繪畫真人教程)

    首先給大家看看效果,這個就是新一代的AI繪畫的造物,是不是很漂亮,AI自定義老婆從此不再是夢了。 下面就給大家演示一下,這個軟件如何部署,和部署完成之后如何獲取相關(guān)的,和模型,然后大家也可以自己做出來自己喜歡的AI老婆。 這里是別的大佬的項目的地

    2024年02月02日
    瀏覽(20)
  • AI繪畫stable-diffusion-webui指定GPU運行

    在cmd_args.py文件中,進行運行參數(shù)的設(shè)定,其中可以指定gpu信息 其中: 命令行運行的時候指定具體gpu的id,例如: 表示使用id為3的gpu卡運行,其中--listen表示允許遠程訪問。

    2024年02月11日
    瀏覽(23)
  • AI繪畫stable-diffusion-webui+ChilloutMix云部署

    騰訊GPU實驗室:https://cloud.tencent.com/act/pro/gpu-study?from=10680 實例規(guī)格:GPU計算型GN7 | GN7.2XLARGE32 系統(tǒng):Ubuntu Server 20.04 LTS 64位 根據(jù)安裝要求python版本需要為3.10.6. 下載python3.10.6. 網(wǎng)絡(luò)慢的話手動上傳到服務(wù)器。 解壓并進入該目錄,后續(xù)的所有命令均在該目錄中執(zhí)行: 1.下載代碼

    2024年01月20日
    瀏覽(24)
  • Window 10搭建AI繪畫平臺-stable-diffusion-webui

    Window 10搭建AI繪畫平臺-stable-diffusion-webui

    一,安裝環(huán)境: ????????1,Python Release Python 3.10.6 | Python.org ????????一定要安裝 Python3.10.6 以上版本,并配好環(huán)境變量。 ? ? ? ? ? ? ? 2,Pytorch??CUDA Toolkit Archive | NVIDIA Developer ? ? ? ? ? ? ??安裝CUDA,下載如下部署電腦截圖的對應(yīng)版本。 ? ? ? ? ? ? ? ? ? ? ?

    2024年02月16日
    瀏覽(28)
  • Novel ai(stable-diffusion-webui)的本地部署經(jīng)歷

    Novel ai(stable-diffusion-webui)的本地部署經(jīng)歷

    整體參考的就是下面的網(wǎng)站的內(nèi)容,采用的里面是Anaconda搭建虛擬環(huán)境部署的步驟(網(wǎng)站里面用的Miniconda其實上和Anaconda整體思路是一樣的) tip:Anaconda的配置是比較簡單的,可以直接在網(wǎng)上搜索,需要注意的是建議先卸載電腦上的python再安裝Anaconda --GUIDE-- 下面就是網(wǎng)站中用

    2024年02月04日
    瀏覽(23)
  • stable-diffusion-webui(AI繪畫)項目實現(xiàn),即遇到的問題

    stable-diffusion-webui(AI繪畫)項目實現(xiàn),即遇到的問題

    為了使環(huán)境中的庫版本不會亂,導(dǎo)致自己電腦原來一些項目無法運行最好使用虛擬環(huán)境 下載miniconda ?在搜索中搜所miniconda找到 建立虛擬環(huán)境 每次運行激活這個虛擬環(huán)境 下載git 安裝cuda,下面有詳細安裝流程 進入大點的盤下部署項目 下載初始模型如果不下載好像在使用時會

    2024年02月04日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包