许可协议:cc-by-nc-4.0
库名称:diffusers
基础模型:stabilityai/stable-diffusion-3-medium
标签:
⚡ 闪电扩散:FlashSD3 ⚡
闪电扩散(Flash Diffusion)是Jasper Research团队在论文《Flash Diffusion: Accelerating Any Conditional Diffusion Model for Few Steps Image Generation》中提出的一种扩散蒸馏方法,作者包括Clément Chadebec、Onur Tasar、Eyal Benaroche和Benjamin Aubin。
该模型是SD3模型的9040万参数LoRA蒸馏版本,能够在4步内生成1024x1024分辨率的图像。
查看我们的在线演示和官方Github仓库。
使用方法
该模型可直接通过diffusers
库中的StableDiffusion3Pipeline
使用,可将采样步骤减少至4步。
⚠️ 首先,您需要安装特定版本的diffusers
,运行以下命令:⚠️
pip install git+https://github.com/initml/diffusers.git@clement/feature/flash_sd3
然后,运行以下代码生成图像:
import torch
from diffusers import StableDiffusion3Pipeline, SD3Transformer2DModel, FlashFlowMatchEulerDiscreteScheduler
from peft import PeftModel
transformer = SD3Transformer2DModel.from_pretrained(
"stabilityai/stable-diffusion-3-medium-diffusers",
subfolder="transformer",
torch_dtype=torch.float16,
)
transformer = PeftModel.from_pretrained(transformer, "jasperai/flash-sd3")
pipe = StableDiffusion3Pipeline.from_pretrained(
"stabilityai/stable-diffusion-3-medium-diffusers",
transformer=transformer,
torch_dtype=torch.float16,
text_encoder_3=None,
tokenizer_3=None
)
pipe.scheduler = FlashFlowMatchEulerDiscreteScheduler.from_pretrained(
"stabilityai/stable-diffusion-3-medium-diffusers",
subfolder="scheduler",
)
pipe.to("cuda")
prompt = "一只浣熊被困在装满彩色糖果的玻璃罐中,背景是蒸汽弥漫的鲜艳色彩。"
image = pipe(prompt, num_inference_steps=4, guidance_scale=0).images[0]
训练细节
模型在2块H100 GPU上训练了约50小时。
💡 训练提示:如果在包含文本的图像数据集上进行蒸馏,模型在文本生成方面表现会更好,欢迎自行尝试。
引用
如果您觉得这项工作有用或在研究中使用,请考虑引用我们:
@misc{chadebec2024flash,
title={Flash Diffusion: Accelerating Any Conditional Diffusion Model for Few Steps Image Generation},
author={Clement Chadebec and Onur Tasar and Eyal Benaroche and Benjamin Aubin},
year={2024},
eprint={2406.02347},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
许可
本模型基于知识共享署名-非商业性使用协议(Creative Commons BY-NC)发布。