精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Stable Diffusion攻略集(Stable Diffusion官方文檔、kaggle notebook、webui資源帖)
userphoto

2023.01.26 遼寧

關注

文章目錄

  • 第一部分

    • 4.1 自動安裝

    • 4.2 自定義安裝

    • 1.1 Textual Inversion 簡介

    • 1.2 Textual Inversion of webai

    • 1.1.1 摘要

    • 1.1.2 算法

    • 1.1.3 模型效果

    • 1.2.1 預訓練embedding用于圖片生成

    • 1.2.2 訓練embedding

    • 1.2.3 Finding embeddings online

    • 1.2.4 Hypernetworks

    • 一、 Features:Textual Inversion(文本反轉)

    • 二、 Features: Negative prompt

    • 三、Xformers依賴

    • 四、NVidia GPUs安裝

    • 五、命令行參數和優化

    • 六、安裝和使用自定義腳本

  • 第二部分 kaggle notebook

    • 2.1 Prompt運用規則及技巧

    • 2.2 Model資源

    • 2.3 Embedding/ Hypernetwork使用及訓練

    • 2.4 Dreambooth使用及訓練

    • 2.5 插件介紹

    • 1.1 kaggle notebook

    • 1.2 colab、windows部署

    • 一、模型部署

    • 二、進階教程

第一部分

本文翻譯自stable-diffusion-webui官方文檔

一、 Features:Textual Inversion(文本反轉)

Textual Inversion論文博客知乎貼《paper筆記》

1.1 Textual Inversion 簡介

1.1.1 摘要

??文生圖模型為通過自然語言指導創作提供了前所未有的自由。然而,目前尚不清楚如何運用這種自由來生成特定獨特概念的圖像,修改其外觀,或將其合成新角色和新場景。換言之,要把現實中的一些新概念(new concept)引入到生成中,單從文本出發還是不夠的。

??本文提出了 personalized text-to-image generation,即個性化的文轉圖生成。可以基于文本+用戶給的3-5張圖(“new concepts”)來生成新的圖像。

??提出了textual inversions,用于把圖片概念轉換成pseudo-words(偽單詞)。然后一起合并到prompt中,從而生成一些具備這樣概念的圖片。

1.1.2 算法

??在大多數文生圖模型的文本編碼階段,第一步是將prompt 轉換為數字表示,而這通常是通過將words轉換為tokens來完成的,每個token相當于模型字典中的一個條目(entry)。然后將這些entries轉換為embeddings進行訓練。

??我們發現了可以添加用戶提供的special token (S*,表示新概念)來作為新的embedding。然后,將這個embedding link到新的偽單詞,偽單詞可以同其它詞一樣被合并到新的句子中。在某種意義上,我們正在對凍結模型的文本嵌入空間進行反轉,所以我們稱這個過程為Textual Inversion(文本反轉)。

??我的理解,之前都是將文本編碼為embedding進行訓練,而Textual Inversion是將用戶提供的圖片(“A photo of S*”)以embedding的形式鏈接到某個偽單詞上來表示一種概念。即embedding→文本,和之前是相反的過程。

模型結構如下圖所示:

  • 本文是基于latent diffusion做的,只改進了其中text encoder部分的詞表部分,添加S*來表達新概念,其它token的embedding不變,從而實現與新概念的組合。

  • 為了訓練S*對應的文本編碼v*,使用prompt “A photo of S*”生成新的圖片,我們希望這個概念生成圖片和用戶給的圖片相符合,從而學習到v*這個新概念。學到之后就可以利用S*來做新的生成了。

  • 損失函數:讓通過這個句子prompt產生的圖片和用戶給的small sample(3~5張圖)越近越好:

1.1.3 模型效果

  1. Image Variations:相似圖生成
    ??因為embedding 的學習目標本身就是要生成一摸一樣的圖片,所以本文的相似圖生成效果很好:

  2. Text-guided synthesis(文本引導生成)
    下面是基于學到的新概念的生成:

??和CLIP guided的方法的對比:最相近的工作是PALAVRA——把新概念圖片先得到image embedding,再用對比學習的方法轉成text embedding,然后再進行生成,而本文是直接學習pseudo-word。在guided diffusion中,有init image的生成效果會好很多,但是還是會出現原來圖片變形的問題。

  1. Style transfer(風格遷移)
    通過in the style of 這樣的prompt可以實現風格遷移:

Textual Inversion可以用來表示廣泛的概念,包括視覺藝術風格。在某種意義上,我們可以學習一個代表特定藝術家或新藝術運動的偽詞,并在未來的創作中模仿它。
  1. Concept compositions(概念組合)
    不同圖片概念,組合起來進行生成,Unfortunately, this doesn’t yet work for relational prompts, so we can’t show you our cat on a fishing trip with our clock.

  2. Downstream applications
    我們的偽詞適用于下游模型。例如,將舊照片添加一些新元素來增加它們的趣味性:(把第二排圖片中藍色部分替換為第一排的元素)

  3. Reducing Biases(減少偏見,略)

1.2 Textual Inversion of webai

參考《Features:Textual Inversion》

?? webai允許用戶使用Textual Inversion 將自己的圖片進行訓練,得到一個embedding(預訓練的embedding),用于指導新圖片的生成。這個預訓練embedding是一個.pt.bin文件(前者是原始作者使用的格式,后者是diffusers library使用的格式)。

1.2.1 預訓練embedding用于圖片生成

??將預訓練好的embedding(嵌入)放入embeddings目錄,并在prompt中使用其文件名,無需重新啟動程序即可生成新的圖片。例如,下面是webai作者在WD1.2模型上,用53張圖片(增強成119張)訓練19500步后得到的Usada Pekora embedding。

prompt:portrait of usada pekora,Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 4077357776, Size: 512x512, Model hash: 45dee52b

您可以在一個prompt中組合多個embedding:(相比上圖prompt多加了一個詞——mignon)

prompt:portrait of usada pekora,mignon,Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 4077357776, Size: 512x512, Model hash: 45dee52b

??使用embedding生成新的圖片時的模型,最好和訓練這個embedding時的模型保持一致,否則生成效果可能不好。下面是WD1.2模型訓練的usada pekora embedding,用在stable diffusion 1.4上進行生成的效果:(prompt和參數保持不變,但是生成的圖片不是最開始的風格了)

prompt:portrait of usada pekora,Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 4077357776, Size: 512x512, Model hash: 45dee52b

1.2.2 訓練embedding

  1. embedding訓練說明

    • 該功能非常原始,使用風險自負

    • 創建一個新的empty embedding,選擇待訓練圖像的目錄,進行embedding訓練。

    • 啟用半精度浮點運算,但需試驗開啟前后效果是不是一樣好。如果顯存足夠,使用--no-half --precision full更安全

    • 用于UI自動運行圖像預處理的部分。

    • 中斷后重啟訓練,不會丟失任何數據

    • 不支持batch sizes 或 gradient accumulation(梯度累積,用于顯存不足),不支持–lowvram 和 --medvram flags。

  2. 參數說明

    • name:embedding的文件名。后續在prompt使用這個embedding時就用這個名字。

    • Initialization text(初始化文本):用于新建empty embedding的初始化。

    • Number of vectors per token:empty embedding的size。

    • 新建后會用Initialization text的embedding填充empty embedding。也就是如果你創建empty embedding后又不訓練,那么這個embedding和Initialization text的embedding是一樣的。

    • 比如你新建一個名為“zzzz1234”的empty embedding,然后選“tree”這個詞作為Initialization text。那么不進行任何訓練時,“zzzz1234”和“tree”的embedding是一樣的

    • 比如webai模型默認prompt的長度上限是75個token,如果設置Number of vectors per token=16,那么你將這個empty embedding加入prompt后,就只能再寫75-16=59個token了。

    • empty embedding的size越大,就可以融合更多的主題信息(概念信息),相應的,你就需要更多的圖片,才能訓練好這個empty embedding。

    • Creating an embedding

  • Preprocess:將目錄下的圖片進行Textual Inversion,并將結果寫入另一個目錄

    • Source directory:包含圖像的目錄

    • Destination directory:將寫入結果的目錄

    • Create flipped copies:對于每個圖像,還要寫入其鏡像副本

    • Split oversized images into two:將過大的圖像拆分為兩張(短邊與所需分辨率相匹配,兩張圖片可能相交)

    • Use BLIP caption as filename:使用BLIP模型向文件名添加標題。

  • Training an embedding

    • 訓練風格使用style.txt(只需要3、5張圖片),訓練主題使用subject.txtNumber of vectors per token越大,需要的圖片就越多)。文件中可以使用以下tag:

    • 有關如何使用這些文件,請參閱textual_inversation_templates目錄中的文件。

    • [name]:embedding名稱

    • [filewords]:來自數據集圖像文件名的單詞。有關更多信息,請參見下文。

    • 比如在訓練中提示Loss:nan,訓練失敗)。使用默認值時,不會發生這種情況。

    • 設置多個學習率,比如0.005:100, 1e-3:1000, 1e-5表示前100步lr=0.005,101-1000步時lr=1e-3,最后lr=1e-5。

    • Embedding:從下拉列表中選擇要訓練的嵌入。

    • Learning rate:學習率,設置得太高,可能會破壞embedding

    • Dataset directory:待訓練圖像的目錄。

    • Log directory:樣本圖像和部分訓練的嵌入副本將寫入此目錄。

    • Prompt template file: text file with prompts,每行一個,用于訓練模型。

    • Max stepsMax steps步后完成訓練。模型訓練一張圖片是一個step。如果您訓練中斷后重啟,會保留step數。

    • Save images with embedding in PNG chunks:每次生成圖像時,都會將其與最近記錄的嵌入合并,并以可以作為圖像共享的格式保存到image_embeddings中,然后將其放入嵌入文件夾并加載。

    • Preview prompt:如果不為空,此prompt將用于生成預覽圖;如果為空,the prompt from training will be used。

  • filewords

    • [filewords]:提示模板文件( prompt template)的標簽,默認下去掉圖片文件名前面的數字和破折號(-)就是[filewords],比如圖片000001-1-a man in suit.png的[filewords]就是a man in suit,是一個文本。這個文本可用在prompt中。

    • 可以使用選項Filename word regexFilename join string更改文件名中的文本。(感覺沒必要,詳情看原文檔)

  1. 第三方庫
    webai訓練embeddings時還使用了Stable-textual-inversion_winInvokeAI這兩個github倉庫。還有一些是關于diffusers library或者colab上訓練的選項。

1.2.3 Finding embeddings online

1.2.4 Hypernetworks

??Hypernetworks是在不影響模型權重的情況下微調模型的概念。目前是在textual inversion選項卡里訓練hypernets,訓練方式和textual inversion相同,但是學習率很低,比如5e15或者5e-6。這部分可參考《Hypernetworks訓練指南》
??Unload VAE and CLIP from VRAM when training:這個選項卡允許降低預覽圖生成速度來減少顯存。

二、 Features: Negative prompt

??Negative prompt用于指定不想生成的內容,使用Negative prompt可以消除了Stable Diffusion的常見畸形,比如多余的肢體。Negative prompt可單獨使用(即不用 prompt)。
??要使用Negative prompt,只需以下步驟:

# prompts = ["a castle in a forest"]# negative_prompts = ["grainy, fog"]c = model.get_learned_conditioning(prompts)uc = model.get_learned_conditioning(negative_prompts)samples_ddim, _ = sampler.sample(conditioning=c, unconditional_conditioning=uc, [...])

??采樣器(sampler)將比較prompt生成的圖片和Negative prompt生成的圖片之間的差異,并是最終生成結果逼近前者,遠離后者。下面是一個演示:

  • 原始圖片有霧狀(fog)、顆粒感(grainy,畫質低)。Negative prompt為fog后霧狀沒了但是生成奇怪的紫色

  • Negative prompt為fog,grainy, purple,沒有霧狀,畫質高,也沒有奇怪的紫色了。

negative prompt:None

negative prompt:fog

negative prompt:grainy

negative prompt:fog, grainy, purple

三、Xformers依賴

??Xformers庫可以加速圖像的生成(可選),沒有適用于Windows的二進制文件(除了一個特定的配置外),可自行構建。

  1. linux上構建Xformers的指南:

#切換到webui根目錄source ./venv/bin/activate
cd repositories
git clone https://github.com/facebookresearch/xformers.git
cd xformers
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e
  1. Windows上構建xFormers(見原文檔

四、NVidia GPUs安裝

在嘗試安裝之前,請確保滿足所有必需的依賴項

依賴項包括:

  • 安裝Python 3.10.6git

  • 運行git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git下載webai項目,后續可以使用git pull命令更新項目。(windows用戶安裝git for windows后,在某個文件夾里右鍵單擊選擇Git Bash here打開git,運行此命令下載項目。)

  • 下載Stable Diffusion 模型文件.ckpt)、sd-v1-4.ckpt放在項目根目錄下的models/Stable-diffusion文件夾里。

  • Stable-diffusion 2.x 版本的模型,需要下載配套的.yaml配置文件,并放在.ckpt同名的文件夾中:768-v-ema.ckpt config、512-base-ema.ckpt config、512-base-ema.ckpt config

4.1 自動安裝

  1. windows:運行webui-user.bat,如果運行失敗可以參考Troubleshooting

  2. Linux:項目根目錄下運行:bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)

python launch.py可自動運行模型,運行時可以使用一些命令參數,比如:

python launch.py --opt-split-attention --ckpt ../secret/anime9999.ckpt

4.2 自定義安裝

??更改webui-user.sh中的變量,并運行bash webui.sh,接下來自定義安裝步驟、AMD GPUs安裝、見原文檔。此文檔還有WSL2安裝,conda安裝等。

??更多關于安裝的詳細教程,可以參考帖子《使用stable-diffusion-webui部署NovelAi/Stable Diffusion1.4 /1.5/2.0 保姆級教程、命令解釋、原理講解(colab、windows、Linux )》

五、命令行參數和優化

命令行參數解釋
--shareonline運行,也就是public address
--listen使服務器偵聽網絡連接。這將允許本地網絡上的計算機訪問UI。
--port更改端口,默認為端口7860。
--xformers使用xformers庫。極大地改善了內存消耗和速度。Windows 版本安裝由C43H66N12O12S2 維護的二進制文件
--force-enable-xformers無論程序是否認為您可以運行它,都啟用 xformers。不要報告你運行它的錯誤。
--opt-split-attentionCross attention layer optimization 優化顯著減少了內存使用,幾乎沒有成本(一些報告改進了性能)。黑魔法。默認情況下torch.cuda,包括 NVidia 和 AMD 卡。
--disable-opt-split-attention禁用上面的優化
--opt-split-attention-v1使用上述優化的舊版本,它不會占用大量內存(它將使用更少的 VRAM,但會限制您可以制作的最大圖片大小)。
--medvram通過將穩定擴散模型分為三部分,使其消耗更少的VRAM,即cond(用于將文本轉換為數字表示)、first_stage(用于將圖片轉換為潛在空間并返回)和unet(用于潛在空間的實際去噪),并使其始終只有一個在VRAM中,將其他部分發送到CPU RAM。降低性能,但只會降低一點-除非啟用實時預覽。
--lowvram對上面更徹底的優化,將 unet 拆分成多個模塊,VRAM 中只保留一個模塊,破壞性能
*do-not-batch-cond-uncond防止在采樣過程中對正面和負面提示進行批處理,這基本上可以讓您以 0.5 批量大小運行,從而節省大量內存。降低性能。不是命令行選項,而是使用–medvramor 隱式啟用的優化–lowvram。
--always-batch-cond-uncond禁用上述優化。只有與–medvram或–lowvram一起使用才有意義
--opt-channelslast更改 torch 內存類型,以穩定擴散到最后一個通道,效果沒有仔細研究。

其它詳見原文檔

六、安裝和使用自定義腳本

??要安裝自定義腳本,請將它們放入scripts目錄,然后單擊設置選項卡底部的Reload custom script按鈕。安裝后,自定義腳本將出現在txt2img和img2img選項卡的左下方下拉菜單中。以下是Web UI用戶創建的一些著名的自定義腳本:

  1. prompt改進腳本:https://github.com/ArrowM/auto1111-improved-prompt-matrix

    • 本腳本支持prompt矩陣格式,用于一次生成多個prompt,每個prompt可生成多張圖片(腳本代碼

    • 使用<>創建一個prompt矩陣,矩陣中用|進行分隔。例如a <corgi|cat> wearing <goggles|a hat>,表示4個prompt:a corgi wearing goggles, a corgi wearing a hat, a cat wearing goggles, a cat wearing a hat

    • 如果設置batch count > 1,忽略 batch size,每個seed,每個prompt都會進行生成。

  2. txt2img2img:https://github.com/ThereforeGames/txt2img2img
    大大提高任何角色/主題的可編輯性,同時保持其相似性。該腳本的主要動機是提高通過Textual Inversion.創建的embedding的可編輯性。

  3. txt2mask:https://github.com/ThereforeGames/txt2mask
    可以使用文本指定mask修復部分,而不是用筆刷。

  4. Mask drawing UI:https://github.com/dfaker/stable-diffusion-webui-cv2-external-masking-script
    提供CV2支持的本地彈出窗口,允許在處理前添加掩碼。

  5. Img2img Video:https://github.com/memes-forever/Stable-diffusion-webui-video
    使用img2img,依次生成圖片。

  6. Seed Travel:https://github.com/yownas/seed_travel
    選擇多個種子,并在它們之間生成插值圖像序列,或者是一個視頻,點此查看示例。

  7. Advanced Seed Blending:https://github.com/amotile/stable-diffusion-backend/tree/master/src/process/implementations/automatic1111_scripts
    可以設定seed權重,例如:seed1:2, seed2:1, seed3:1,也可以使用浮點數:seed1:0.5, seed2:0.25, seed3:0.25

  8. Prompt Blending:https://github.com/amotile/stable-diffusion-backend/tree/master/src/process/implementations/automatic1111_scripts
    支持多個prompt的加權組合,例如:Crystal containing elemental {fire|ice},也支持嵌套:Crystal containing elemental {{fire:5|ice}|earth}

  9. Animator:https://github.com/Animator-Anon/Animator
    適用于制作視頻

余下內容有空再寫了。下面是模型部署和應用的一些資源收集貼,也沒有好好整理,感覺太麻煩了。


第二部分 kaggle notebook

一、模型部署

  • 此筆記本基于stable-diffusion-webui項目,默認使用momoko模型,點此即可打開。

1.1 kaggle notebook

  1. 下載項目

#測試GPU!nvidia-smi#下載stable-diffusion-webui%cd /kaggle/working/!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui    
#在models文件夾下新建新建hypernetworks目錄!mkdir -p  /kaggle/working/stable-diffusion-webui/models/hypernetworks 
%cd /kaggle/working/stable-diffusion-webui/models/Stable-diffusion
  1. 切換喜歡的模型,默認是momoko

    • 更改模型的默認方法是,將input文件夾中你需要的模型移入working/stable-diffusion-webui/models/Stable-diffusion/文件夾下

    • 也可以使用ChangeModel函數更換模型,這種方式是更改讀取模型的路徑,所以不需要復制模型文件本體。如果模型生成圖片老是有點灰色,在下面紅色選項框中下拉選擇VAE(前提是將模型對應的VAE文件復制到/kaggle/working/stable-diffusion-webui/models/VAE文件夾下)

??下面是將/kaggle/working/stable-diffusion-webui/modules/sd_models.py中,默認的模型讀取地址model_dir = ".*?"用正則表達式替換為 model_dir = “/kaggle/input/{}”,其中 {} 被替換為變量 modelPath 的值。替換后將該內容寫入sd_models.py文件。

#最新切換模型方法import re,os,shutildef ChangeModel(modelPath):with open ('/kaggle/working/stable-diffusion-webui/modules/sd_models.py','r') as f:tt = f.read()tt = re.sub('model_dir = ".*?"','model_dir = "/kaggle/input/{}"'.format(modelPath),tt)with open ('/kaggle/working/stable-diffusion-webui/modules/sd_models.py','w') as f:f.write(tt)#在你想要使用的模型對應的代碼前去掉#,其他模型的對應代碼前加上#chooseModel = ''#二次元#chooseModel='animefulllatestckpt'      #1. 7g animefull-final-latest,二次元和寫實風兼有#chooseModel='animefullfinalpruned'     #2. 4g animefull-final-pruned,二次元風格#chooseModel='anythingv3'               #3. 7g Anything-v3.0 Novel AI最新模型chooseModel='momoko'                    #4. momoko#chooseModel='mignon'                   #5. Mignon#chooseModel='moxing'                   #6. MomoCha&Mecha#chooseModel='nicenice'                 #7. nice#寫實風#chooseModel='stable-diffusion-1-5'     #1. stable-diffusion 1.5#chooseModel='inpainting'               #2. stable diffusion 1.5 inpainting,(專用于inpaint的模型)#chooseModel='stable-diffusion-2-768'   #3. stable diffusion 2.0#chooseModel='redshiftdiffusionv1'      #4. edshift diffusion v1#chooseModel='modf222'                  #5. f222#chooseModel='insins'                   #6. ins寫真風#chossModel='realyolyjijiajohn'         #7. 融合多個模型的寫實風model_list=['momoko','animefullfinalpruned','redshiftdiffusionv1','mignon','nicenice','insins']if chooseModel in model_list:try:# shutil.copytree(src,dst)。將文件夾 src 中全部文件遞歸復制到 dst ,dst 若不存在時系統自動創建~shutil.copytree('/kaggle/input/tagcomplete3w2cn/wd14-tagger/wd14-tagger','/kaggle/working/stable-diffusion-webui/extensions/wd14-tagger')except:passelse:try:# 遞歸刪除整個文件夾下所有文件,包括此文件夾shutil.rmtree('/kaggle/working/stable-diffusion-webui/extensions/wd14-tagger/')except:passChangeModel(chooseModel)print('模型已切換成:'+chooseModel)
  1. 安裝擴張功能和插件、腳本
    a. 擴展功能:

!apt install -y aria2 # Aria2是一個命令行下載器,可從百度網盤下載資源# 安裝animefull-final-latest (可選)!aria2c -d /kaggle/working/stable-diffusion-webui https://cloudflare-ipfs.com/ipfs/bafybeiav3j7npiuewbel3mi32l3sidgkw54kuleosbhxmdvddbnvtfi7yu/config.yaml#!aria2c https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/animefull-latest.ckpt#!aria2c -d /kaggle/working/stable-diffusion-webui/models/Stable-diffusion https://raw.githubusercontent.com/Stability-AI/stablediffusion/main/configs/stable-diffusion/v2-inference-v.yaml# 安裝embeddings (可選)!aria2c https://cloudflare-ipfs.com/ipfs/bafybeie3hdjchxs5tz4n75bos53nhcklslguxchdurc2ynrzcfv2kwyklu/embeddings.tar
!tar xvf embeddings.tar -C /kaggle/working/stable-diffusion-webui/embeddings && rm -rf embeddings.tar# 安裝hypernetwork (可選)!aria2c https://cloudflare-ipfs.com/ipfs/bafybeiduanx2b3mcvxlwr66igcwnpfmk3nc3qgxlpwh6oq6m6pxii3f77e/_modules.tar  
!tar xvf _modules.tar -C /kaggle/working/stable-diffusion-webui/models/hypernetworks && rm -rf _modules.tar

b. 安裝插件

  • tagcomplete:本腳本為 stable-diffusion-webui的自定義腳本,能在輸入Tag時提供booru風格(如Danbooru)的TAG自動補全。因為有一些模型是基于這種TAG風格訓練的(例如Waifu Diffusion),因此使用這些Tag能獲得較為精確的效果。

  • DeepDanbooru:DeepDanbooru是一個動漫風格的女孩圖像標簽評估系統,在webui的img2img選項頁,第一次點擊deepdanbooru時程序會自動下載pt檢查點文件并調用。

  • images-browser:這是一個圖像瀏覽器,用于瀏覽過去生成的圖片,查看其生成的信息,將提示發送到txt2img或img2img,將圖像收集到您的“收藏夾”文件夾,刪除您不再需要的圖像,您還可以在計算機中的任何文件夾中瀏覽圖像

  • webUI簡體中文語言包,簡體中文翻譯擴展,適用于 stable diffusion webui。

  • Aesthetic Gradients

    • 美學權重功能(以插件形式提供),借助該功能,可以在保持作品原始的總體構圖上提高美觀度。

    • 結合hypernetwork使用效果更佳

    • 支持txt2img和img2img

將上述插件下載后復制到extensions文件夾,即可完成安裝。

%cd /kaggle/working/stable-diffusion-webui/extensions# 下載安裝webUI簡體中文語言包,tagcomplete補全Tag插件、images-browser!git clone https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN
!git clone https://github.com/DominikDoom/a1111-sd-webui-tagcomplete
!git clone https://github.com/yfszzx/stable-diffusion-webui-images-browser

c. 安裝腳本
webui也提供眾多腳本,詳細介紹參考官方文檔Custom Scripts。下面選了一個提示詞矩陣腳本。

  • 本腳本支持prompt矩陣格式,用于一次生成多個prompt,每個prompt可生成多張圖片(腳本代碼

    • 使用<>創建一個prompt矩陣,矩陣中用|進行分隔。例如a <corgi|cat> wearing <goggles|a hat>,表示4個prompt:a corgi wearing goggles, a corgi wearing a hat, a cat wearing goggles, a cat wearing a hat

    • 如果設置batch count > 1,忽略 batch size,每個seed,每個prompt都會進行生成。

  • 注意:使用提示詞矩陣腳本,但是其實沒有設置提示詞矩陣,圖片生成時會出現報錯

%cd /kaggle/working/stable-diffusion-webui/scripts/!git clone https://github.com/ArrowM/auto1111-improved-prompt-matrix
  1. 啟動模型,開始生成圖片

參考《使用stable-diffusion-webui搭建AI作畫平臺使用stable-diffusion-webui搭建AI作畫平臺》

  • --share參數 會得到一個以.app.gradio 結尾的鏈接,這是在協作中使用該程序的預期方式。(不加 --share 沒法遠程使用)

  • 安裝并啟動stable-diffusion-webui,成功后打開public URL就可以生成圖片了

  • 報錯No module 'xformers'. Proceeding without it是因為沒裝xformers,運行以下代碼安裝

%cd /kaggle/working/stable-diffusion-webui# 加載模型。sed -i表示將字符串直接寫入sd_models.py文件!sed -i 's/map_location="cpu"/map_location="cuda"/g' /kaggle/working/stable-diffusion-webui/modules/sd_models.pyimport gc
gc.collect()#  use normal stable-diffusion!COMMANDLINE_ARGS="--share --gradio-debug --config config.yaml --disable-safe-unpickle " REQS_FILE="requirements.txt" python launch.py

將生成的圖片進行打包,方便下載。

!zip -q -r output.zip /kaggle/working/stable-diffusion-webui/outputs 
!mv /kaggle/working/stable-diffusion-webui/output.zip /kaggle/working/output.zip
  1. webui界面介紹
    通過前面的安裝配置,你就可以通過你設置的端口進行訪問。訪問內容后分為幾個大的模塊;

  • txt2img — 標準的文字生成圖像;

  • img2img — 根據圖像成文范本、結合文字生成圖像;

  • Extras — 優化(清晰、擴展)圖像;

  • PNG Info — 圖像基本信息

  • Checkpoint Merger — 模型合并

  • Textual inversion — 訓練模型對于某種圖像風格

  • Settings — 默認參數修改

此部分請參考知乎貼《模型應用—使用Stable Diffusion UI手冊》使用部分。

  1. 手把手教你在linux中手動編譯并安裝xformers

1.2 colab、windows部署

詳見《部署NovelAi/Stable Diffusion1.4 /1.5/2.0 保姆級教程》

二、進階教程

2.1 Prompt運用規則及技巧

參考《NovelAI資源及使用技巧收集匯總》《Stable-diffusion 標簽Tag (臉部方法構造)》元素同典元素法典《魔咒百科詞典》《Prompt Magic Tutorial》

  1. 通用Tag起手式:

    • 正向:
      masterpiece, best quality, 更多畫質詞,畫面描述

    • 反向:
      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

  2. 越靠前的Tag權重越大;比如景色Tag在前,人物就會小,相反的人物會變大或半身。

  3. 生成圖片的大小會影響Prompt的效果,圖片越大需要的Prompt越多,不然Prompt會相互污染。

  4. 在Stable Diffusion 中使用()英文括號可增加括號中Tag在畫面中的權重 x1.1,[]可減小Tag權重x0.91。在NovelAi官網中,使用{}增加權重x1.05。

  5. Prompt支持使用emoji,且表現力較好,可通過添加emoji達到表現效果。如??形容表情,??可修手。

  6. “+” , “ AND” , “|” 用法:

    • “+”和“ AND ”都是用于連接短Tag,但AND兩端要加空格。"+“約等于” and "

    • “|” 為循環繪制符號(融合符號)
      (Prompt A: w1)|(Prompt B: w2)
      以上表達適用于WebUI,w1、w2為權重。AI會對A、 B兩Prompt進行循環繪制。可往后無限加入Prompt。

  7. Prompt格式優化:簡易換行三段式表達:

    • 第一段: 畫質tag,畫風tag

    • 第二段:畫面主體,主體強調,主體細節概括。(主體可以是人、事、物、景)畫面核心內容。第二段一般提供人數,人物主要特征,主要動作(一般置于人物之前),物體主要特征,主景或景色框架等

    • 第三段:畫面場景細節,或人物細節,embedding tag。畫面細節內容

  8. 元素同典調整版語法:
    質量詞→前置畫風→前置鏡頭效果→前置光照效果→(帶描述的人或物AND人或物的次要描述AND鏡頭效果和光照)*系數→全局光照效果→全局鏡頭效果→畫風濾鏡(embedding)

實例展示:


parameters:

Prompt:

(((masterpiece))), best quality, ultra-detailed, extremely detailed CG unity 8k wallpaper,best illustration, an extremely delicate and beautiful,floating,high resolution,dynamic angle,dynamic pose,(1girl),blue eyes,(multicolored_hair+silver hair:1.3+red hair:1.2+purple hair+yellow hair:1.3+green hair:1.3), white wuxia clothes,neck ribbon, beautiful face,too many drops of water,cloud,twilight, wide shot,watercolor,

Negative prompt:

lowres, bad anatomy, bad hands, text,error, missing fIngers,extra digt ,fewer digits,cropped, worst quality ,low quality,normal quality, jpeg artifacts,signature,watermark, username, blurry, bad feet,fused body,

Steps: 34, Sampler: DPM++ 2S a, CFG scale: 10.5, Seed: 1351767725, Size: 960x576, Model hash: 925997e9, Eta: 0.68, Clip skip: 2, ENSD: 31337
GFPGAN visibility:1.Upscale: 3, visibility: 1.0, model:ESRGAN_4x

更多內容請看原貼。

也可簡單一點,使用chatGPT來實現stable-diffusion描述詞生成讓chatGPT幫你AI繪畫

2.2 Model資源

??使用注意:與ckpt文件同名的vae.pt文件用于穩固該模型的表現,直接放在相同文件夾即可。訓練時將該文件改名或移走。并不是所有模型都需要使用vae文件

公開資源:

  • https://rentry.org/sdmodels(目前覺得比較全)

  • https://cyberes.github.io/stable-diffusion-models/(SD模型)

  • https://publicprompts.art/(App Icon Generator,比較有趣想資源)

  • https://huggingface.co/ (在網站中檢索) 作者:小白隨心所欲

2.3 Embedding/ Hypernetwork使用及訓練

參考《NovelAI資源及使用技巧收集匯總》《NovelAI hypernetwork 自訓練教程》

2.4 Dreambooth使用及訓練

2.5 插件介紹

  1. Aesthetic-gradients(美術風格embedding)使用

    • 素材保證高質量,尺寸不限,隨建隨用。優化畫風,效果同emb和hypernetwork。batch按圖片數量填就行。

    • 建議圖片集盡量挑選畫風一致的圖片,就算是同一畫師,不同的畫也有區別。

  2. X/Y plot(參數對比)
    通過設置X軸和Y軸的參數,可以產出參數變化的對比圖。


    如上圖填寫X軸為hypernetwork,只需填上hypernetwork的文件名即可。注意,開頭逗號和結尾逗號會分別在開頭和結尾生成一張效果同none的圖片。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
三種生成式AI模型:Midjourney Vs Stable Diffusion Vs DALL?E 2
手把手教學!AI真人圖片和視頻生成~
喂飯級stable_diffusion_webUI使用教程
如何在stable diffusion webui上使用最新的SDXL1.0? 支持哪些模型?
無GPU的情況下,在云上免費運行 AIGC Stable Diffusion的方法
雖然離譜,但...使用 AI 生成逼真的性感小姐姐教程
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 石林| 芦溪县| 铜鼓县| 阳谷县| 临清市| 赣榆县| 北票市| 北宁市| 南投市| 南华县| 灵武市| 岳阳县| 兴义市| 揭东县| 咸宁市| 广饶县| 江永县| 天柱县| 全州县| 遂川县| 阜康市| 安岳县| 如皋市| 故城县| 宣武区| 延长县| 利辛县| 河池市| 新巴尔虎右旗| 清水河县| 陈巴尔虎旗| 清新县| 加查县| 萝北县| 文成县| 上犹县| 姚安县| 南陵县| 上犹县| 阿鲁科尔沁旗| 花莲县|