Stable Diffusion using NovelAi guide

10/19更新:修正錯誤的指示、改變排序使其便於閱讀

part 1, 建立環境

1111 WebUI

本篇所有功能介紹都以這個版本為主
有另一個版本製作者為"sd-webui"為不同的軟體,要注意
https://github.com/AUTOMATIC1111/stable-diffusion-webu

  • 通用需求: python 3.10git
    • 直接下載這兩樣東西並安裝
    • 注意!!!!安裝python時注意選項,有個選項提到什麼 PATH 的務必勾選確認
  • 硬體需求: 4GB VRAM
  1. 安裝完git與python
  2. 到windows開始裡打開git bash
    • 注意接下來使用複製貼上指令時務必只用右鍵的選項,不然git會壞掉
  3. 輸入 cd D: (沒有D槽的請輸入cd C:)
  4. 輸入 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
  5. 去part2取得模型檔案或自己準備模型
  6. 模型參數放好之後打開D槽下的那個stable-diffusion-webui資料夾
  7. 打開一個叫做 webui-user.bat的檔案
  8. 等他跑到出現 To create a public link, set `share=True` in `launch()
    打開瀏覽器,輸入http://127.0.0.1:7860 或直接 按我
    127.0.0.1是你自己的電腦,不要緊張,打開看到介面就是成功了

已知問題

NVIDIA GTX 16xx系列不能直接執行,參考

https://rentry.org/voldy#-running-on-4gb-and-under-

或直接下載我製作的bat,取代原先的webui-user.bat

AMD 系列需額外步驟,但目前我沒電腦能實驗...

NVIDIA GTX 10xx以上可使用 xformer加速 (預設未開啟) (不穩定),參考

https://rentry.org/sdg_FAQ#xformers-increase-your-its-more-cards-supported
  • 若使用我製作的 for 16xx顯卡的檔案則已內建
  1. 右鍵編輯用來開啟SD的webui-user.bat
  2. set COMMANDLINE_ARGS=後加入--xformers
  3. 儲存,完成

part 2, 取得ckpt(模型)

首先你可能需要能下載torrent的東西,推薦開源免費的qBitTorrent
下載後安裝好,複製magnet:開頭的那串文字,貼在網址列它就會問你要不要開啟,點是

模型大列表

https://rentry.org/sdmodels

Hentai diffusion (R18專門),目前暫時無法使用

  • magnet:?xt=urn:btih:ab4c2d7308a3fa694f7409407399a1cc5d4c7ed9&dn=RD1412-pruned-fp32.ckpt

NovelAI 洩漏模型

想生產日式畫風插圖者,原則上只需要part 1的animefull-pruned就好
Part 1:

  • magnet:?xt=urn:btih:5bde442da86265b670a3e5ea3163afad2c6f8ecc&dn=novelaileak

    hash v1: 5bde442da86265b670a3e5ea3163afad2c6f8ecc*

註:目前為止只需下載part 1 即可,part 2 非必要

Part 2:

  • magnet:?xt=urn:btih:a20087e7807f28476dd7b0b2e0174981709d89cd&dn=novelaileakpt2

    hash v1: a20087e7807f28476dd7b0b2e0174981709d89cd*

關於 Novel AI Models 如何在webUI使用 (以1111 web UI 為例)

  1. 複製 novelaileak (part 1) 下
    novelaileak\stableckpt\animefull-final-pruned\model.ckpt

    到 stable-diffusion-webui 資料夾下的
    stable-diffusion-webui\models\Stable-diffusion

    到這邊就能畫出插圖了,但若是想要 潛 能 解 放 的話...

  2. 複製 novelaileak (part 1) 下
    novelaileak\stableckpt\animevae.pt

    到 stable-diffusion-webui 資料夾下的
    stable-diffusion-webui\models\Stable-diffusion

    並且 重新命名為 model.vae.pt

  3. 到 stable-diffusion-webui 資料夾下的
    stable-diffusion-webui\models 建立名為 hypernetworks 的資料夾

    複製 novelaileak (part 1) 下
    novelaileak\stableckpt\modules\modules 所有內容
    stable-diffusion-webui\models\hypernetworks

    完成

part 3, 使用方法

基本參數說明(以1111 WebUI為例)

Sampling Step:

  • 次數越高變化越大,不建議低於10。
    • 有時候提早結束或故意低於10會朦朧美,實驗證明如果那個模糊的結果向你想要的方向模糊的話,會是更好的底圖
  • 越高需計算越久

CFG Scale:

  • 理論上數值越高越遵守你寫的文字,越低越自由發揮
    但實際測試低於4或高於18出來都跟屎一樣,建議一般使用控制在4~8之間即可
  • 越高需計算越久

Denoising Strength:

  • 數值越高變化越大

建議數值設定

生成階段 Denoising CFG Scale Sampling Step
初期-首張生成 0.8~0.75 18~14 80~40
中期/有底圖生成 0.65~0.4 12~8 40~20
後期-細修 0.4~0.1 2~6 *15

*註: 或是與Denoising相乘後等於1~2之間的數值

  • Euler系列的取樣器,sampling step不建議高於50
  • img2img 時 CFG Scale * Denoising 不建議低於 0.2 (sampling step = 20時)
  • 若結果開始暴走,建議先開始降低denoising強度
  • 凡是要生成人像,務必開啟臉部校正,差超多

[例圖 - CFG對Deniosing]![]
恕刪

建議流程

第一步
  • 用txt2img生成底圖
  • 自己畫底圖
第二步
  • 推進img2img,開始增加關鍵字,目標是讓你需要的元素或構圖都到位
第三步
  • 手工修正或inpainting修正
第四步
  • 用後期-細修的參數在img2img裡修改打光、氛圍等
finalize
  • 使用img2img 的 SD upscale提高解析度
    • 還需要更高的話再使用後面的upscaling工具

取樣演算法差異比較

  • DDIM
    • 很適合inpainting,取樣結果較平滑,較易生成穩定外型
    • 無法使取樣次數超過25
    • 以取樣次數20為例,低於0.35的denoising會讓畫面容易出現大塊色塊
    • 由於效果太好我有點懷疑這取樣器是不是直接描圖(#
  • DPM家族
    • 取樣結果較銳利
    • DPM2
    • DPM2 a
    • DPM2 adaptive
    • DPM2 Karras
    • DPM2 a Karas
      • Karras後綴使結果較為平滑
    • DPM Fast
      • 高denoising要搭配高取樣次數,否則效果可怕
  • Euler家族
    • Eular
      • 適合較平順視感的SD upsacling
    • Euler a
      • 較適合txt2img
  • Heun
    • 能穩定生成人型外觀
  • LMS家族
    • LMS
      • 取樣次數低時效果非常糟糕
    • LMS Karras
      • 效果平順很多

[例圖 - Sampler對Deniosing]![]恕刪

輸入prompt的技巧及特殊控制符號

  1. prompt有分正跟負
  2. prompt有特殊符號可控制不同關鍵字的強度
    • ()使該關鍵字被強調,越多(((())))效果越強
    • []使該關鍵字被弱化,越多[[[[]]]]效果越弱
  3. 有關鍵字式跟完整句子式兩種prompt風格
  4. 越長越具體越詳細的prompt = 越清晰好看的圖

inpainting - 重新生成使用說明

https://rentry.org/drfar
待翻譯

text inversion

https://www.reddit.com/r/StableDiffusion/comments/wvzr7s/tutorial_fine_tuning_stable_diffusion_using_only/
https://github.com/rinongal/textual_inversion

1111 webui feature list and tutorial

https://github.com/AUTOMATIC1111/stable-diffusion-webui-feature-showcase

Edit
Pub: 14 Oct 2022 14:33 UTC
Edit: 19 Oct 2022 15:48 UTC
Views: 156