Spaces:
Runtime error
Runtime error
File size: 5,550 Bytes
fb7c72e 7b932b1 7dc4c93 cdaf17f 15e77fc cdaf17f 15a3cdd 9a96d60 cdaf17f 4a841bd cdaf17f 4a841bd cdaf17f 4a841bd cdaf17f 7c1a22d cdaf17f 7c1a22d 68645db d152942 1e8f98d d152942 afa0abc 772ddff d152942 093487e 2cf05e4 772ddff 9a96d60 2cf05e4 2e6f372 afa0abc 772ddff 2cf05e4 772ddff 7c1a22d 1a8741b 6df9545 1e8f98d 864fc76 e7333b2 faae610 d152942 7d2bcd6 5c7b4ee 772ddff bfee72a d152942 |
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 76 77 78 |
import gradio as gr
import torch
import numpy as np
import modin.pandas as pd
from PIL import Image
from diffusers import DiffusionPipeline
device = 'cuda' if torch.cuda.is_available() else 'cpu'
if torch.cuda.is_available():
PYTORCH_CUDA_ALLOC_CONF={'max_split_size_mb': 8000}
torch.cuda.max_memory_allocated(device=device)
torch.cuda.empty_cache()
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)
pipe.enable_xformers_memory_efficient_attention()
pipe = pipe.to(device)
torch.cuda.empty_cache()
refiner = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0", use_safetensors=True, torch_dtype=torch.float16, variant="fp16")
refiner.enable_xformers_memory_efficient_attention()
refiner = refiner.to(device)
torch.cuda.empty_cache()
upscaler = DiffusionPipeline.from_pretrained("stabilityai/sd-x2-latent-upscaler", torch_dtype=torch.float16, use_safetensors=True)
upscaler.enable_xformers_memory_efficient_attention()
upscaler = upscaler.to(device)
torch.cuda.empty_cache()
else:
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", use_safetensors=True)
pipe = pipe.to(device)
pipe.unet = torch.compile(pipe.unet, mode="reduce-overhead", fullgraph=True)
refiner = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0", use_safetensors=True)
refiner = refiner.to(device)
refiner.unet = torch.compile(refiner.unet, mode="reduce-overhead", fullgraph=True)
def genie (prompt, negative_prompt, height, width, scale, steps, seed, upscaling, prompt_2, negative_prompt_2, refining, high_noise_frac, n_steps):
generator = np.random.seed(0) if seed == 0 else torch.manual_seed(seed)
if refining == 'Yes':
int_image = pipe(prompt, prompt_2=prompt_2, negative_prompt=negative_prompt, negative_prompt_2=negative_prompt_2, num_inference_steps=steps, height=height, width=width, guidance_scale=scale, num_images_per_prompt=1, generator=generator, output_type="latent").images
if upscaling == 'Yes':
image = refiner(prompt=prompt, prompt_2=prompt_2, negative_prompt=negative_prompt, negative_prompt_2=negative_prompt_2, image=int_image, num_inference_steps=n_steps, denoising_start=high_noise_frac).images[0] #num_inference_steps=n_steps,
upscaled = upscaler(prompt=prompt, negative_prompt=negative_prompt, image=image, num_inference_steps=15, guidance_scale=0).images[0]
torch.cuda.empty_cache()
return upscaled
else:
image = refiner(prompt=prompt, prompt_2=prompt_2, negative_prompt=negative_prompt, negative_prompt_2=negative_prompt_2, image=image, num_inference_steps=n_steps ,denoising_start=high_noise_frac).images[0]
torch.cuda.empty_cache()
return image
else:
if upscaling == 'Yes':
image = pipe(prompt=prompt, prompt_2=prompt_2, negative_prompt=negative_prompt, negative_prompt_2=negative_prompt_2, num_inference_steps=steps).images[0]
upscaled = upscaler(prompt=prompt, negative_prompt=negative_prompt, image=image, num_inference_steps=15, guidance_scale=0).images[0]
torch.cuda.empty_cache()
return upscaled
else:
image = pipe(prompt, prompt_2=prompt_2, negative_prompt=negative_prompt, negative_prompt_2=negative_prompt_2, num_inference_steps=steps, height=height, width=width, guidance_scale=scale, num_images_per_prompt=1, generator=generator).images[0]
torch.cuda.empty_cache()
return image
gr.Interface(fn=genie, inputs=[gr.Textbox(label='What you want the AI to generate. 77 Token Limit. A Token is Any Word, Number, Symbol, or Punctuation. Everything Over 77 Will Be Truncated!'),
gr.Textbox(label='What you Do Not want the AI to generate. 77 Token Limit'),
gr.Slider(512, 1024, 768, step=128, label='Height'),
gr.Slider(512, 1024, 768, step=128, label='Width'),
gr.Slider(1, 15, 10, step=.25, label='Guidance Scale: How Closely the AI follows the Prompt'),
gr.Slider(25, maximum=100, value=50, step=25, label='Number of Iterations'),
gr.Slider(minimum=0, step=1, maximum=999999999999999999, randomize=True, label='Seed: 0 is Random'),
gr.Radio(['Yes', 'No'], value='No', label='Upscale using SD x2 Latent Upscaling?'),
gr.Textbox(label='Embedded Prompt'),
gr.Textbox(label='Embedded Negative Prompt'),
gr.Radio(["Yes", "No"], label='SDXL 1.0 Refiner: Use if the Image has too much Noise', value='No'),
gr.Slider(minimum=.7, maximum=.99, value=.95, step=.01, label='Refiner Denoise Start %'),
gr.Slider(minimum=1, maximum=100, value=100, step=1, label='Refiner Number of Iterations %')],
outputs='image',
title="Stable Diffusion XL 1.0 GPU",
description="SDXL 1.0 GPU. <br><br><b>WARNING: Capable of producing NSFW (Softcore) images.</b>",
article = "If You Enjoyed this Demo and would like to Donate, you can send to any of these Wallets. <br>BTC: bc1qzdm9j73mj8ucwwtsjx4x4ylyfvr6kp7svzjn84 <br>BTC2: 3LWRoKYx6bCLnUrKEdnPo3FCSPQUSFDjFP <br>DOGE: DK6LRc4gfefdCTRk9xPD239N31jh9GjKez <br>SHIB (BEP20): 0xbE8f2f3B71DFEB84E5F7E3aae1909d60658aB891 <br>PayPal: https://www.paypal.me/ManjushriBodhisattva <br>ETH: 0xbE8f2f3B71DFEB84E5F7E3aae1909d60658aB891 <br>Code Monkey: <a href=\"https://huggingface.co/Manjushri\">Manjushri</a>").launch(debug=True, max_threads=80)
|