作者tsubasawolfy (悠久の翼)
看板AI_Art
标题Re: [讨论] Intel ARC用SD.Next跑SDXL
时间Sun Oct 8 22:21:52 2023
有点长,主要分三节 安装-> 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
SD1.5 checkpoint
跟A1111用OpenVINO加速後只要3秒相比,SD.Next一张要10秒
https://i.imgur.com/Jaxo9Bj.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://webptt.com/cn.aspx?n=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