前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Stable Diffusion XL1.0正式发布了,赶紧来尝鲜吧

Stable Diffusion XL1.0正式发布了,赶紧来尝鲜吧

原创
作者头像
深蓝studyzy
发布2023-08-01 10:18:17
2.7K0
发布2023-08-01 10:18:17
举报
文章被收录于专栏:深蓝居深蓝居

经过SDXL0.9和SDXL Beta的迭代,终于SDXL1.0正式版发布了!

之前使用AIGC生成图片,一般都是生成512*512的图,然后再进行放大,以达到高清出图的要求。但是这里有个问题是底模其实都是海量的512*512图片训练出来的,所以出图效果上经常不如人意,在细节上会差一些。这次SDXL1.0直接使用1024*1024的海量图片训练底模,而且分为了文生图用的base模型和图生图进行优化和放大的refiner模型,从而在开源免费的文生图软件上实现了不输于Midjourney的出图效果。

一、SDXL1.0简介

1. SDXL和SD1.5模型有什么差别

SDXL与原来的SD1.5模型除了大小不同外,最大区别是SDXL由base基础模型和refiner优化模型两组模型构成。您需要先运行基础模型,然后再运行细化模型。基础模型设置全局组成,而细化模型则添加更细节的细节。您也可以选择仅运行基础模型。

语言模型(理解您Prompt提示的模块)是最大的OpenClip模型(ViT-G/14)和OpenAI专有的CLIP ViT-L的组合。这是一个聪明的选择,因为Stable Diffusion v2仅使用OpenClip,很难提示成功。重新引入OpenAI的CLIP可以使提示更容易。在v1.5上有效的提示在SDXL上也有很好的甚至更佳的效果。

扩散模型中最重要的部分U-Net现在大了3倍。加上更大的语言模型,SDXL模型可以生成与提示紧密匹配的高质量图像。

因为底模是1024*1024训练的,比原来的512*512大了4倍,所以底模base基础模型大小也达到接近7GB,refiner也是差不多7GB,对硬件(GPU显存)的要求更高了!如果只有8G以下的显存,建议还是别碰SDXL了。

2.图片的真实感更强

因为对提示词的语义理解更准确,加上底模的分辨率更高,所以对光线、画质、镜头、角度、焦点等等的渲染更到位,以下是我使用提示直接基于XL base模型产生的图片。

1

photo of young Chinese woman, highlight hair, sitting outside restaurant, wearing dress, rim lighting, studio lighting, looking at the camera, dslr, ultra quality, sharp focus, tack sharp, dof, film grain, Fujifilm XT3, crystal clear, 8K UHD, highly detailed glossy eyes, high detailed skin, skin pores

如果基于这个图再进行图生图,并使用refiner模型,那么可以得到更好的效果。

base+refiner
base+refiner

3.对文字的渲染更可靠

之前在SD1.5时,是无法在提示词中提升图片中有哪些文字的,现在在SDXL中,可以比较好的实现对英文单词的渲染,不过有时候也要看运气,经常也会渲染的有些瑕疵,不过瑕不掩瑜,聊胜于无,总是一个不小的进步。这是提示词:

1

A fast food restaurant on the moon with name "Devin Burger"

这是文生图的一个图片:

另外在二次元、场景渲染上SDXL都有不俗的表现,这里就不一一举例了,大家赶紧去体验一下吧!

下面我们就来看看怎么在Linux服务器上安装和使用SDXL1.0吧。

二、安装SDXL

1.环境准备

1.1 安装Git等基础软件

这个就看是Ubuntu还是CentOS,命令可能有所不同,不用纠结,直接按照官方源安装即可,不再赘述。

1.2 安装 Anaconda

Anaconda是一个Python发行版,它包含了Python解释器以及许多常用的Python库和工具。Anaconda的目标是使Python环境的安装和管理变得更加容易,特别是对于数据科学和机器学习等领域的工作。Anaconda中包含了许多用于数据处理、分析和可视化的库,如NumPy、Pandas、Matplotlib等,以及用于机器学习和深度学习的库,如Scikit-learn、TensorFlow和PyTorch等。Anaconda还提供了一个包管理器Conda,可以方便地安装、更新和管理Python库和工具。

进入网站:https://repo.anaconda.com/archive/ 直接下载最新版的Anaconda,比如:

代码语言:javascript
复制
curl -O https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-x86_64.sh

下载完成后,执行:

代码语言:javascript
复制
bash Anaconda3-2023.07-1-Linux-x86_64.sh

然后一路回车,该yes的时候yes一下,最终安装完成。

安装完成后需要添加环境变量到~/.bashrc中:

代码语言:javascript
复制
export PATH=$PATH:/root/anaconda3/bin

然后source ~/.bashrc,载入环境变量,接下来查看版本,确定是否安装成功:

代码语言:javascript
复制
 conda -V

正确显示就说明安装成功了。

1.3 创建并进入 conda 环境

接着我们需要通过 Anaconda 创建 conda 环境,并基于该环境部署相应服务。

代码语言:javascript
复制
conda create -n sdwebui python=3.10

然后

代码语言:javascript
复制
conda init bash

执行完成后需要重启终端。然后

代码语言:javascript
复制
conda activate sdwebui

进入了为SD WebUI准备的环境中。

(sdwebui) [root@localhost]

2.Stable Diffusion WebUI的安装

2.1 克隆Stable Diffusion WebUI源码到本地

执行命令:

代码语言:javascript
复制
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

将代码从GitHub克隆到本地。然后记得切换到支持SDXL的版本,比如v1.5.1,当然更高的版本也可以!

代码语言:javascript
复制
git checkout v1.5.1

2.2 修改配置并下载安装依赖启动服务

当然由于我们是在服务器上运行,所以我们需要开启远程访问,而不能是127.0.0.1来访问,另外也需要开启一些优化之类的。我们需要修改webui-user.sh中的

代码语言:javascript
复制
export COMMANDLINE_ARGS="--disable-nan-check --no-half-vae --api --xformers --listen --share --enable-insecure-extension-access --medvram --opt-split-attention"

这里参数是我经过使用总结出来的,建议开启的,当然如果不想通过API来编程访问,可以去掉--api,不过强烈建议开启的是xformers,有了这个可以极大的节约GPU显存的消耗。

修改好后运行./webui.sh 系统在第一次运行的时候会发现少了很多依赖的库,所以会自动下载,这里我们保持网络通畅即可。

如果依赖下载完成,可以从控制台日志中看到启动成功。我们在自己的电脑浏览器中访问GPU服务器的IP:

http://192.168.100.100:7860/

即可看到SD WebUI了!

3.SDXL1.0大模型和vae下载

当前我们并没有下载SDXL1.0的底模,需要手动从HuggingFace下载,具体URL:

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文件夹中。另外还有一个VAE文件,是可选的,下载地址:

https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors

下载后放到stable-diffusion-webui/models/VAE 文件夹中。

然后我们来SD WebUI,刷新底模列表,即可看到XL的base和refiner模型。

至于VAE,默认是不显示在UI中的,可以在设置的用户界面选项中添加。接下来就可以在SD WebUI中享受SDXL带来的新体验吧!

三、总结

1.之前在SDXL1.0发布之前,需要给sd-webui安装Demo扩展才能使用SDXL,现在不需要了,所以如果之前已经安装了Demo扩展的可以删除掉了。

2.直接出尺寸在1024或者之上的图,不要出512*512的图。

3.之前下载的Lora和底模、Embedding等都不能在SDXL1.0上使用,所以需要重新从C站下载专门的SDXL版。很多Lora都没有出XL版Lora,所以大家还是等等生态丰富了再作为生产工具吧。

4.Lora训练工具也更新了,有对应的SDXL版本分支,所以要搞Lora训练的同学,记得切换训练工具的版本,重新训练属于自己的XL Lora。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、SDXL1.0简介
    • 1. SDXL和SD1.5模型有什么差别
      • 2.图片的真实感更强
        • 3.对文字的渲染更可靠
        • 二、安装SDXL
          • 1.环境准备
            • 1.1 安装Git等基础软件
            • 1.2 安装 Anaconda
            • 1.3 创建并进入 conda 环境
          • 2.Stable Diffusion WebUI的安装
            • 2.1 克隆Stable Diffusion WebUI源码到本地
            • 2.2 修改配置并下载安装依赖启动服务
          • 3.SDXL1.0大模型和vae下载
          • 三、总结
          相关产品与服务
          GPU 云服务器
          GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档