Views
No views yet
1import torch, torchvision
2from diffusers import StableDiffusionPipeline, UNet2DConditionModel
3from src.utils_perflow import merge_delta_weights_into_unet
4from src.scheduler_perflow import PeRFlowScheduler
5delta_weights = UNet2DConditionModel.from_pretrained("hansyan/perflow-sd15-delta-weights", torch_dtype=torch.float16, variant="v0-1",).state_dict()
6pipe = StableDiffusionPipeline.from_pretrained("Lykon/dreamshaper-8", torch_dtype=torch.float16,)
7pipe = merge_delta_weights_into_unet(pipe, delta_weights)
8pipe.scheduler = PeRFlowScheduler.from_config(pipe.scheduler.config, prediction_type="epsilon", num_time_windows=4)
9pipe.to("cuda", torch.float16)
10
11prompts_list = ["A man with brown skin, a beard, and dark eyes", "A colorful bird standing on the tree, open beak",]
12for i, prompt in enumerate(prompts_list):
13 generator = torch.Generator("cuda").manual_seed(1024)
14 prompt = "RAW photo, 8k uhd, dslr, high quality, film grain, highly detailed, masterpiece; " + prompt
15 neg_prompt = "distorted, blur, smooth, low-quality, warm, haze, over-saturated, high-contrast, out of focus, dark"
16 samples = pipe(
17 prompt = [prompt] * 8,
18 negative_prompt = [neg_prompt] * 8,
19 height = 512,
20 width = 512,
21 num_inference_steps = 8,
22 guidance_scale = 7.5,
23 generator = generator,
24 output_type = 'pt',
25 ).images
26 torchvision.utils.save_image(torchvision.utils.make_grid(samples, nrow=4), f"tmp_{i}.png")
27