File size: 3,106 Bytes
2acb9f2 6421583 2acb9f2 7f2323b 2acb9f2 71da11e 7f2323b 71da11e f985b1c 71da11e 04896b2 f985b1c 04896b2 71da11e 04896b2 f985b1c 04896b2 f985b1c 04896b2 f985b1c 04896b2 f985b1c 04896b2 f985b1c 2acb9f2 a67f088 6421583 04896b2 6421583 71da11e 6421583 2acb9f2 04896b2 6421583 2acb9f2 04896b2 a67f088 04896b2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
#!/usr/bin/env python3
from diffusers import DiffusionPipeline, EulerDiscreteScheduler, StableDiffusionPipeline, KDPM2DiscreteScheduler, StableDiffusionImg2ImgPipeline, HeunDiscreteScheduler, KDPM2AncestralDiscreteScheduler, DDIMScheduler
from diffusers import StableDiffusionXLPipeline, StableDiffusionXLImg2ImgPipeline, AutoencoderKL
import time
from pytorch_lightning import seed_everything
import os
from huggingface_hub import HfApi
# from compel import Compel
import torch
import sys
from pathlib import Path
import requests
from PIL import Image
from io import BytesIO
api = HfApi()
start_time = time.time()
# use_refiner = bool(int(sys.argv[1]))
use_refiner = True
use_diffusers = True
path = "/home/patrick/sai/stable-diffusion-xl-base-1.0"
refiner_path = "/home/patrick/sai/stable-diffusion-xl-refiner-1.0"
vae_path = "/home/patrick/sai/stable-diffusion-xl-base-1.0/vae/"
vae_path = "/home/patrick/sai/sdxl-vae"
vae = AutoencoderKL.from_pretrained(vae_path, torch_dtype=torch.float16, force_upcast=True)
if use_diffusers:
# pipe = StableDiffusionXLPipeline.from_pretrained(path, vae=vae, torch_dtype=torch.float16, variant="fp16", use_safetensors=True, local_files_only=True)
pipe = StableDiffusionXLPipeline.from_pretrained(path, torch_dtype=torch.float16, vae=vae, variant="fp16", use_safetensors=True, local_files_only=True)
print(time.time() - start_time)
pipe.to("cuda")
if use_refiner:
start_time = time.time()
refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained(refiner_path, vae=vae, torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
print(time.time() - start_time)
refiner.to("cuda")
# refiner.enable_sequential_cpu_offload()
else:
start_time = time.time()
pipe = StableDiffusionXLPipeline.from_single_file("https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9/blob/main/sd_xl_base_0.9.safetensors", torch_dtype=torch.float16, use_safetensors=True)
print(time.time() - start_time)
pipe.to("cuda")
if use_refiner:
start_time = time.time()
refiner = StableDiffusionXLImg2ImgPipeline.from_single_file("https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-0.9/blob/main/sd_xl_refiner_0.9.safetensors", torch_dtype=torch.float16, use_safetensors=True)
print(time.time() - start_time)
refiner.to("cuda")
prompt = "An astronaut riding a green horse on Mars"
steps = 20
seed = 0
seed_everything(seed)
start_time = time.time()
image = pipe(prompt=prompt, num_inference_steps=steps, output_type="latent" if use_refiner else "pil").images[0]
print(time.time() - start_time)
if use_refiner:
image = refiner(prompt=prompt, num_inference_steps=steps - 10, image=image).images[0]
file_name = f"aaa"
path = os.path.join(Path.home(), "images", "ediffi_sdxl", f"{file_name}.png")
image.save(path)
api.upload_file(
path_or_fileobj=path,
path_in_repo=path.split("/")[-1],
repo_id="patrickvonplaten/images",
repo_type="dataset",
)
print(f"https://huggingface.co/datasets/patrickvonplaten/images/blob/main/{file_name}.png")
|