|
|
|
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 |
|
|
|
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.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.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") |
|
|