Stable Diffusion Quick Start | 深度学习算法

本文基于 Diffusers 给出了一个简单的 Stable Diffusion 简单 demo,对比了使用 LCM 的 SDXL 和原版 SDXL 的运行效率和算法效果。

主流代码库

目前主流的基于扩散模型的生成任务代码有两个,一个是 Stability-AI/stablediffusion,另一个就是 Diffusers。前者就是著名的 AUTOMATIC1111/stable-diffusion-webui 的底层实现,后者主要用于训练。

模型格式

在 HuggingFace 上下载模型时,一般会在仓库中见到两种格式的模型,即 diffusers 格式和 ckpt 格式。下图展示了一个模型仓库的文件,其中上面的红框对应的是 diffusers 格式,下面的红框对应的是 ckpt 格式:

ckpt 格式也分为两种:原始 ckpt 格式和 safetensors 格式。safetensors 格式是 ckpt 格式转换得到的,防止有人在 ckpt 文件中加入恶意代码。safetensor 格式和 ckpt 格式都能直接用于 stable-diffusion-webui 项目,而 diffusers 格式的模型则只能使用 diffusers 运行。

算法效果

虽然 stable-diffusion-webui 项目是主流的用于推理的项目,但是需要配合浏览器使用,不能在纯命令行环境下使用,在某些云服务器上运行不方便,所以本文采用 Diffusers 进行演示。

本文参考这个脚本进行了效果和性能测试。使用的 prompt 是:close-up photography of beautiful young woman in the sunshine, leica 35mm summilux。

模型类型 采样次数 算法效果
SDXL 20
SDXL + LCM-LoRA 4

性能对比

测试所用显卡为 NVIDIA A10,并且开启了 FP16。

模型类型 采样次数 运行时间 显存占用 模型大小
SDXL 20 8.851 s 10.75 GB x
SDXL + LCM-LoRA 4 1.824 s 14.63 GB 376 MB + x

可以看出,因为采样次数的减少,推理时间大大减少。同时因为使用了额外的 LoRA 模型,整体模型体积和显存占用都增加了。

参考

Stablediffusion模型diffusesr格式和ckpt格式相互转换x

使用 LCM LoRA 4 步完成 SDXL 推理

Stable Diffusion Quick Start | 深度学习算法

http://www.zh0ngtian.tech/posts/2b693535.html

作者

zhongtian

发布于

2023-12-29

更新于

2024-02-02

许可协议

评论