tools / run_xl_ediffi.py
patrickvonplaten's picture
more
f1bde35
raw
history blame
2.15 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()
random_generator = torch.Generator()
random_generator.manual_seed(12345)
model_id = "stabilityai/stable-diffusion-xl-base-0.9"
pipe_high_noise = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16, variant="fp16", use_safetensors=True, local_files_only=True)
pipe_high_noise.scheduler = DPMSolverMultistepScheduler.from_config(pipe_high_noise.scheduler.config)
pipe_high_noise.to("cuda")
pipe_low_noise = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-0.9", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
pipe_low_noise.scheduler = pipe_high_noise.scheduler
pipe_low_noise.to("cuda")
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
num_inference_steps = 40
high_noise_frac = 0.8
# seed = 0
# seed_everything(seed)
image = pipe_high_noise(prompt=prompt, num_inference_steps=num_inference_steps, denoising_end=high_noise_frac, output_type="pt").images
image = pipe_low_noise(prompt=prompt, num_inference_steps=num_inference_steps, denoising_start=high_noise_frac, image=image).images[0]
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")