tools / run_xl_ediffi.py
patrickvonplaten's picture
up
71da11e
raw
history blame
2.26 kB
#!/usr/bin/env python3
from diffusers import DPMSolverMultistepScheduler, DiffusionPipeline, EulerDiscreteScheduler, StableDiffusionPipeline, KDPM2DiscreteScheduler, StableDiffusionImg2ImgPipeline, HeunDiscreteScheduler, KDPM2AncestralDiscreteScheduler, DDIMScheduler, HeunDiscreteScheduler, DEISMultistepScheduler
from diffusers import DiffusionPipeline
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
from torch.nn.functional import fractional_max_pool2d_with_indices
api = HfApi()
start_time = time.time()
model_id = "/home/patrick/stable-diffusion-xl-base-1.0/"
scheduler = DPMSolverMultistepScheduler.from_pretrained(model_id, subfolder="scheduler")
pipe_high_noise = DiffusionPipeline.from_pretrained("/home/patrick/stable-diffusion-xl-base-1.0/", torch_dtype=torch.float16, variant="fp16", use_safetensors=True, local_files_only=True)
# pipe_high_noise.scheduler = scheduler
pipe_high_noise.to("cuda")
pipe_low_noise = DiffusionPipeline.from_pretrained("/home/patrick/stable-diffusion-xl-refiner-1.0/", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
# pipe_low_noise.scheduler = scheduler
pipe_low_noise.to("cuda")
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
random_generator = torch.Generator()
random_generator.manual_seed(0)
num_inference_steps = 40
high_noise_frac = 0.8
image = pipe_high_noise(prompt=prompt, num_inference_steps=num_inference_steps, num_images_per_prompt=2, denoising_end=high_noise_frac, output_type="latent").images
images = pipe_low_noise(prompt=prompt, num_inference_steps=num_inference_steps, num_images_per_prompt=2, denoising_start=high_noise_frac, image=image).images
print(len(images))
image = images[1]
file_name = f"aaa_1"
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")