Re: [討論] Intel ARC用SD.Next跑SDXL
有點長,主要分三節 安裝-> SD1.5-> SDXL
SD.Next安裝
2023/11/08更新
SD.NEXT現在可以在windows下用IPEX跑了
安裝方式也大為簡化
https://github.com/vladmandic/automatic/wiki/Intel-ARC
WIN版的優勢在啟動速度快兩倍跟安裝容易
但跑分上來看wsl版的算圖速度還是小勝windows版
舊版內容
這東西用到Intel Extensions for PyTorch (IPEX),只能在windows的WSL或
原生linux上跑,而且因為要求 Linux 6.2 kernel所以要Ubuntu 23.04以上。
跟A1111相比來說,HiRes可以用GPU跑,也可以跑SDXL
INTEL的那個宣傳網頁是推薦下面這個網頁的安裝
https://www.technopat.net/sosyal/konu/installing-stable-diffusion-webui-with-
intel-arc-gpus.2593077/
不過我裝了之後發現跑SD1.5的Checkpoint是沒問題
可是切換到SDXL的checkpoint會一直報weight錯誤,不管哪一個都是...
後來找到另一個人手把手教你的文字跟YT影片版
複製用文字版,從教你如何在Windows上裝WSL開始
https://github.com/ospangler/intel-arc-stable-diffusion-tutorial
YT影片教學
https://youtu.be/GZLjbTPLCVk?si=YKfCxUVycHabvF9E
他跟上面那個的差別是有更新windows wsl Ubuntu的intel驅動,修改Hangcheck跟改
wslconfig。因為windows的wsl會有memory leak問題....會卡住系統記憶體空間
我自己有32G記憶體,開機吃掉9G 所以限制WSL在22G。
限制記憶體上限只是避免當機,最後還是要重開wsl,一勞永逸解決方法放在最後面
Native linux不會有這問題,但是你要裝雙系統 lol
SD.Next的安裝在第一次啟動 ./webui.sh --use-ipex後才會開始正式安裝需要的東西
這個過程非常漫長 影片內是說大概要跑一小時 但我的跑了快兩小時
這個時間問題不是說硬體吃重或怎樣,因為看工作管理員會發現wsl的CPU根本沒在動
網路也沒在下載,系統記憶體也沒上升。根本不知道這過程到底發生甚麼事
全部完成後第二次啟動 ./webui.sh --use-ipex 這次啟動會在啟動tensor停一陣子
這步驟如果後面又修改wslconfig內記憶體空間的話,又會重跑一次....
SD.NEXT啟動過程非常吃 CPU
9700K 八顆實體核心4.8G,第一顆核心永遠100%,其他是50%。
最後一步Torch啟動全部100%跑一分鐘
整個過程啟動過程大概要4~5分鐘,相較下A1111只要30秒
https://i.imgur.com/auRsPEC.png


但是可以使用HiRes功能,時間拉到40秒(兩階段各20 steps)
https://i.imgur.com/yybgtBj.png

SDXL
SDXL只有A770可以跑,因為光checkpoint載入後就會把顯卡記憶體吃到10G
系統記憶體全程維持在28~29G左右,考量到開機8G跟設上限22G,這應該是吃滿上限
跑SDXL要改一下pipeline跟backend
https://i.imgur.com/nHAKSuY.png

可是用sd_xl_base_1.0.safetensors跟sdxl_vae.safetensors跑,只有第一張是比較正常
後面同樣prompt出來都是奇怪東西
https://i.imgur.com/Ijv0r2U.png

所以後來改用這個blue_pencil-XL跑,他是說是不用VAE,但看系統都會自動抓sdxl_vae
https://civitai.com/models/119012/bluepencil-xl
而且SD.Next沒有這個要求的DPM++ 3M SDE Exponential採樣器,跑起來會有一條光擋著
1024x1024 無upscaling 28秒 11G VRAM
https://i.imgur.com/sKOqb1c.png

2048x2048 HiRes 2倍 20步 1分47秒 12G VRAM
https://i.imgur.com/vUGaXx0.png

2560x2560 Hires 2.5倍 20步 NA秒數 13G VRAM
https://i.imgur.com/aORGaCI.png

3072x3072 HiRes 3倍 20步 3分21秒 14G Vram
https://i.imgur.com/iaZR84Y.png

沒有4096x4096,因為VRAM突破16G 直接當機
但是這傢伙有跑出SDXL 4096x4096,大概還需要調整一些東西
https://github.com/vladmandic/automatic/discussions/2024#discussioncomment-
6755194
顯卡記憶體到底用掉多少也是個問題
因為像3072x307x 我看ARC自己顯示面板是寫用掉14G VRAM
但wsl上是寫只用了 6.62G
https://i.imgur.com/WeU4QA1.png

看3072那張圖下面也寫
GPU active 12.3G reserved 12.3G/ used 6.7G free 9.4G total 16G
那個光條怎樣調整都在,所以改用這個DeepBlue XL,用它的看板娘prompt跑
https://civitai.com/models/128397/deepblue-xl
1344x1920 batch連續十張 3分25秒 13G記憶體 溫度在第五張就跑到80度
猜Up是用簡單的R-ESRGAN 4x+ Anime6B的關係,時間才那麼短
後來有測一張latent的忘了截圖
https://i.imgur.com/5OQW5Ec.png

總結來說我覺得以後是SDXL天下吧,因為SD1.5的就算可以upscale到1024
SDXL的時間還是比你短,而且還可以繼續Upscale去加細節
雖然說不同checkpoint不能比,同樣prompt下
覺得這張精靈試作比之前的精細多了,手指倒是一樣XD
920x1490 Upscale from 460x745, SD1.5, Counterfeit-V2.5
https://i.imgur.com/OzAZaDn.jpg

1344x1920 Native, SDXL, DeepBlue XL
https://i.imgur.com/9WbaYO3.jpg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.113.223 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/AI_Art/M.1696774915.A.7B9.html
更新
1. 為何會有奇怪光紋產生的原因
這似乎是INTEL的BUG...在SDXL下畫512倍數 (1024-2048-3072-4096)會產生干擾
這BUG在SD1.5如果產生四張512x512的時候會出現 說嚴重很嚴重 說不嚴重也不嚴重
因為只要加一個像素就不會有這問題....
2. 解決wsl memory leak方法是使用jemalloc減少碎片占用。下面是直接讓WSL運行
的東西都使用jemalloc。這個方法就不用每次切換checkpoint時 需要關閉wsl再重新
啟動去釋放上一個checkpoint卡住的記憶體空間。
#!/bin/bash
※ 編輯: tsubasawolfy (218.161.113.223 臺灣), 11/08/2023 22:04:03