本文参考:Stable Diffusion XL1.0正式发布了,赶紧来尝鲜吧-云海天教程
Stable Diffision最新模型SDXL 1.0使用全教程 - 知乎
1、SDXL与SD的区别
(1)分辨率得到了提升
原先使用SD生成图片,一般都是生成512*512(模型就是基于这个分辨率进行训练的)的图然后再进行放大,以达到高清出图的效果。
这次SDXL1.0直接使用1024*1024的图片训练底模
(2)SDXL1.0由base模型和refiner模型共同组成
SDXL由文生图的base模型和图生图进行优化放大的refiner模型组成,所以生图过程中会先运行基础模型,然后再运行细化模型。基础模型设置全局组成,而细化模型则添加了更多的细节。
2、安装的硬软件环境
硬件:如果希望在GPU上运行,则需要GPU显存在16G以上,否则很难运行。
软件:python需要在3.10以上。
3、下载Stable Diffusion WebUI源码到本地
执行命令:git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
将代码从GitHub下载到了本地
4、 切换到支持SDXL的版本
支持SDXL的webUI版本需要v1.5.0以上。
在stable-diffusion-webui目录下运行:
git checkout -b v1.6.0
5、启动WebUI服务
python launch.py --listen --port 12346 --theme dark --xformers --enable-insecure-extension-access
首次执行该命令后,会自动下载相关算法源码到repositories中,以及相关模型到对应的目录下。
如果运行成功则直接跳到第8步,否则按照6-9步依次手工处理相关问题。
6、repositories安装错误处理
如果出错,则需要手工下载这些代码放到指定目录。以下过程仅针对启动不成功时需要手工安装的步骤:
(1)下载stablediffusion源码
提示错误:“Command: "git" clone "https://github.com/Stability-AI/stablediffusion.git" "/xxx/stable-diffusion-webui/repositories/stable-diffusion-stability-ai"”
则手工再执行git clone https://github.com/Stability-AI/stablediffusion.git ,(如果下载还是不成功则从git中下载zip文件,放到相应目录后解压,该方法适用以下的其他源码。)然后更名为stable-diffusion-stability-ai。
(2)下载k-diffusion源码
手工执行git clone https://github.com/crowsonkb/k-diffusion.git或手工下载zip包
(3)下载CodeFormer源码
手工执行git clone https://github.com/sczhou/CodeFormer.git或手工下载zip包
7、py的requirements_versions.txt安装错误处理
报错信息:
处理方法:
pip3 install -r requirements_versions.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
直接官网下载不通的话,建议换成清华大学的数据源进行安装。
8、下载SDXL大模型
(1)首先考虑直接从HuggingFace中下载模型
SDXL大模型涉及stable-diffusion-xl-base和stable-diffusion-xl-refiner两部分,链接地址为:
https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors
https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors
这两个文件是底模,大约7个G每个文件,下载到GPU服务器后,需要放到stable-diffusion-webui/models/Stable-diffusion文件夹中
针对base模型,如果直接使用stablebilityai的stable-diffusion-xl-base-1.0模型,自己使用时效果可能没那么好,我则从c站下载自己喜欢style的基模,比如:https://civitai.com/models/139565/realistic-stock-photo
这个是真实电影感比较强的SDXL1.0的base模型。
而refiner模型则还是使用huggingface提供的refiner模型。
(2)如果HuggingFace和civitai无法连通,可以从https://aliendao.cn/下载对应模型。
9、下载VAE模型
(1)首先下载vaeapprox-sdxl.pt模型(必选)
WebUI启动过程中可能会出现如下类似错误:
Downloading VAEApprox model to: /xxx/stable-diffusion-webui/models/VAE-approx/vaeapprox-sdxl.pt
TimeoutError: [Errno 60] Operation timed out
During handling of the above exception, another exception occurred:
这是因为缺少一个vaeapprox-sdxl.pt模型,一般自动下载会很容易失败,推荐大家去GitHub上手动下载,链接地址为:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre
下载后放到stable-diffusion-webui/models/VAE-approx/目录下即可
(2)安装VAE模型(可选)
https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors
下载后放到stable-diffusion-webui/models/VAE目录下即可。
10、使用WebUI的SDXL功能
webui通过以下命令执行成功后,
python launch.py --listen --port 12346 --theme dark --xformers --enable-insecure-extension-access
然后chrome浏览器中输入<服务器ip>:12346后即打开了SD的WebUI服务如下:
注意点1的位置:选择SDXL的base模型
注意点2的位置:选择SDXL的refiner模型,该模型会在base模型运行进展到80%(Refiner的Switch at参数)时切换为refiner模型继续执行。
注意点3的位置:将分辨率从默认的512*512调整为1024*1024,这个是SDXL和SD的显著差异之一。
根据以下prompt我们生成测试图片,
prompt及相关参数信息:
photograph close up portrait of Embraced couple enjoying in a movie in theatre , cinematic 4k epic detailed 4k epic detailed photograph shot on kodak detailed bokeh cinematic hbo dark moody
Steps: 35, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1847092677, Size: 1024x1024, Model hash: 2d44ce378d, Model: realisticStockPhoto_v10, Refiner: sd_xl_refiner_1.0 [7440042bbd], Refiner switch at: 0.8, Version: v1.6.0
图片达到了电影感的效果:
此生成过程耗时1分32秒,占用12.9G的显存。
如果进展到这里都没有问题,那么请开始SDXL的旅程吧!!