秒级生图,大模型 SDXL-turbo、LCM-SDXL 实战案例来了

最近一个月,快速生图成为文生图领域的热点,其中比较典型的两种方式的代表模型分别为SDXL-turbo 和 LCM-SDXL。

SDXL-turbo 模型是 SDXL 1.0 的蒸馏版本,SDXL-Turbo 基于一种称之为对抗扩散蒸馏(ADD)的新颖的训练方法,这种方法在扩散模型采样可以减少到1到4步,而生成高质量图像。ADD的训练方式使用score distillation,利用大规模扩散模型作为教师模型,并将其与对抗性损失相结合,即使在1-2步的采样步骤的低步骤状态下,使用对抗学习的方式,引入discriminator来辅助生成质量的把控,也可以确保高质量图像的保真度。

目前,SDXL-turbo 和 LCM-SDXL 均已开源可体验使用,今天我分享二者秒级生图的推理、微调最佳实践,欢迎围观效果!喜欢本文记得收藏、点赞、关注。

技术交流

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了大模型技术交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2060,备注:技术交流+CSDN

用通俗易懂的方式讲解系列

环境准备

环境配置与安装

  1. python 3.8及以上版本

  2. pytorch 1.12及以上版本,推荐2.0及以上版本

  3. 建议使用CUDA 11.4及以上

本文主要演示的模型推理代码可在魔搭社区免费实例PAI-DSW的配置下运行(显存24G) :

第一步:点击模型右侧Notebook快速开发按钮,选择GPU环境

图片

第二步:新建Notebook

图片

安装依赖库

pip install diffusers -U

秒级生图模型实践

SDXL-Turbo最佳实践

文生图推理:

from diffusers import AutoPipelineForText2Image
import torch
from modelscope import snapshot_download

model_dir = snapshot_download("AI-ModelScope/sdxl-turbo")

pipe = AutoPipelineForText2Image.from_pretrained(model_dir, torch_dtype=torch.float16, variant="fp16")
pipe.to("cuda")

prompt = "Beautiful and cute girl, 16 years old, denim jacket, gradient background, soft colors, soft lighting, cinematic edge lighting, light and dark contrast, anime, art station Seraflur, blind box, super detail, 8k"

image = pipe(prompt=prompt, num_inference_steps=1, guidance_scale=0.0).images[0]
image.save("image.png")

生成图片:

图片

生成速度1秒以内:

图片

图生图推理:

from diffusers import AutoPipelineForImage2Image
from diffusers.utils import load_image
from modelscope import snapshot_download
model_dir = snapshot_download("AI-ModelScope/sdxl-turbo")
pipe = AutoPipelineForImage2Image.from_pretrained(model_dir,  variant="fp16")

init_image = load_image("image.png").resize((512, 512))

prompt = "grey image"

image = pipe(prompt, image=init_image, num_inference_steps=2, strength=0.5, guidance_scale=0.0).images[0]
image.save("image1.png")

生成灰白质感的图片:

图片

生成速度:12秒

图片

LCM-SDXL最佳实践

文生图推理:

from diffusers import UNet2DConditionModel, DiffusionPipeline, LCMScheduler
import torch
from modelscope import snapshot_download

model_dir_lcm = snapshot_download("AI-ModelScope/lcm-sdxl",revision = "master")
model_dir_sdxl = snapshot_download("AI-ModelScope/stable-diffusion-xl-base-1.0",revision = "v1.0.9")

unet = UNet2DConditionModel.from_pretrained(model_dir_lcm, torch_dtype=torch.float16, variant="fp16")
pipe = DiffusionPipeline.from_pretrained(model_dir_sdxl, unet=unet, torch_dtype=torch.float16, variant="fp16")

pipe.scheduler = LCMScheduler.from_config(pipe.scheduler.config)
pipe.to("cuda")

prompt = "Beautiful and cute girl, 16 years old, denim jacket, gradient background, soft colors, soft lighting, cinematic edge lighting, light and dark contrast, anime, art station Seraflur, blind box, super detail, 8k"


image = pipe(prompt, num_inference_steps=4, guidance_scale=8.0).images[0]
image.save("image.png")

生成图片:

2步效果欠佳:

图片

4步效果不错:

图片

4步生成速度1秒多:

图片

微调 LCM-LoRA 在 FaceChain 的最佳实践

FaceChain 是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低一张照片即可获得独属于自己的个人形象数字替身。FaceChain支持在gradio的界面中使用模型训练和推理能力、支持资深开发者使用python脚本进行训练推理,也支持在sd webui中安装插件使用。

GitHub链接: https://github.com/modelscope/facechain

FaceChain SDXL模型结合LCM采样器进行推理加速。推理步数由40步减少至8步,推理时间由40s减少至8s。

运行FaceChain WebUI示例代码:

# Step1: 我的notebook -> PAI-DSW -> GPU环境

# Step2: Entry the Notebook cell,clone FaceChain from github:
!GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/modelscope/facechain.git --depth 1

# Step3: Change the working directory to facechain, and install the dependencies:
import os
os.chdir('/mnt/workspace/facechain')    # You may change to your own path
print(os.getcwd())

!pip3 install gradio==3.50.2
!pip3 install controlnet_aux==0.0.6
!pip3 install python-slugify
!pip3 install onnxruntime==1.15.1
!pip3 install edge-tts

# Step4: Start the app service, click "public URL" or "local URL", upload your images to 
# train your own model and then generate your digital twin.
!python3 app.py

在FaceChain的Web-UI demo中,图片推理时,高级选项中采样器选项选择使用LCM采样器,如下图:

图片

生成效果如下:

图片

小编认为,LCM-LoRA在个人数字形象生成这个场景中,表现不如原版SDXL,有一定的图片受损。

总结

本文使用的模型链接:

SDXL-Turbo:

https://modelscope.cn/models/AI-ModelScope/sdxl-turbo

LCM-SDXL:

https://modelscope.cn/models/AI-ModelScope/lcm-sdxl

LCM-LoRA-SDXL:

https://modelscope.cn/models/AI-ModelScope/lcm-lora-sdxl

模型

推理速度

达到较稳定效果的步长

支持lora

支持图生图

SDXL-Turbo

很高

1

支持

LCM-SDXL

较高

4

不支持

LCM-LoRA-SDXL

较高

4

不支持

相关模型链接:

SDXL 1.0:

https://modelscope.cn/models/AI-ModelScope/stable-diffusion-xl-base-1.0

### 关于 SDXL-Lightning 技术文档和资源 #### 项目概述 SDXL-Lightning 是由字节跳动开源的一个基于 PyTorch Lightning 实现的高效训练框架,旨在简化大规模分布式训练过程中的复杂度并提高效率[^1]。 #### 获取源码 该项目托管在 GitCode 上,完整的仓库地址为 [https://gitcode.com/mirrors/bytedance/SDXL-Lightning](https://gitcode.com/mirrors/bytedance/SDXL-Lightning),开发者可以直接通过该链接访问最新的代码库以及提交问题或贡献代码。 #### 容器化部署指导 对于希望利用 Docker 来加速开发环境搭建的人来说,《SDXL-Lightning容器构建指南》提供了详细的步骤说明。特别是为了加快 Python 包依赖项的安装速度,建议配置国内镜像源来优化 `pip` 的下载体验;例如设置清华 TUNA 镜像作为默认索引 URL 可显著减少等待时间。完成这些准备工作后,按照给定命令依次执行即可启动服务[^5]: ```bash # 设置 pip 使用清华大学镜像站 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 安装必要的Python包 pip install -r requirements.txt pip install gradio pip install modelscope pip install transformers # 启动应用前设定Gradio服务器参数 export GRADIO_SERVER_NAME=0.0.0.0 export GRADIO_SERVER_PORT=8080 python app.py ``` #### 性能对比分析 当考虑不同版本间的性能差异时,Hyper-SD 在多个测试场景下展现了优于其他变体的表现。特别是在单步推理方面,Hyper-SDXL 不仅获得了更高的 CLIP 得分(相比 SDXL-Lightning 提升了0.68),而且审美分数也有所增长(增加了0.51)。这表明 Hyper-SDXL 或许更适合那些追求高质量成的应用场合[^2]。 #### 数据集与预训练模型管理 针对特定任务所需的权重文件存储位置也有清晰指引。比如 VAE 组件对应的浮点数半精度格式的安全张量文件路径被记录下来,方便用户直接加载使用而无需重新训练整个网络结构[^3]: ```plaintext models/sdxl-vae-fp16-fix/diffusion_pytorch_model.safetensors ``` #### 用户界面交互技巧 最后值得一提的是,在实际操作过程中还有一些便捷的操作方法可以帮助用户体验更加流畅。例如批量选择片进行打包下载的功能——只需按下 Shift 键配合鼠标点击就能轻松实现多选效果,随后右键菜单中会出现“Download”选项供用户快速获取所需素材[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值