#!/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")