Views
No views yet

StableDiffusion3Pipeline from diffusers library directly. It can allow reducing the number of required sampling steps to 4 steps.diffusers by running ⚠️pip install git+https://github.com/initml/diffusers.git@clement/feature/flash_sd31import torch
2from diffusers import StableDiffusion3Pipeline, SD3Transformer2DModel, FlashFlowMatchEulerDiscreteScheduler
3from peft import PeftModel
4
5# Load LoRA
6transformer = SD3Transformer2DModel.from_pretrained(
7 "stabilityai/stable-diffusion-3-medium-diffusers",
8 subfolder="transformer",
9 torch_dtype=torch.float16,
10)
11transformer = PeftModel.from_pretrained(transformer, "jasperai/flash-sd3")
12
13
14# Pipeline
15pipe = StableDiffusion3Pipeline.from_pretrained(
16 "stabilityai/stable-diffusion-3-medium-diffusers",
17 transformer=transformer,
18 torch_dtype=torch.float16,
19 text_encoder_3=None,
20 tokenizer_3=None
21)
22
23# Scheduler
24pipe.scheduler = FlashFlowMatchEulerDiscreteScheduler.from_pretrained(
25 "stabilityai/stable-diffusion-3-medium-diffusers",
26 subfolder="scheduler",
27)
28
29pipe.to("cuda")
30
31prompt = "A raccoon trapped inside a glass jar full of colorful candies, the background is steamy with vivid colors."
32
33image = pipe(prompt, num_inference_steps=4, guidance_scale=0).images[0]
1@misc{chadebec2024flash,
2 title={Flash Diffusion: Accelerating Any Conditional Diffusion Model for Few Steps Image Generation},
3 author={Clement Chadebec and Onur Tasar and Eyal Benaroche and Benjamin Aubin},
4 year={2024},
5 eprint={2406.02347},
6 archivePrefix={arXiv},
7 primaryClass={cs.CV}
8}