File size: 3,480 Bytes
fb7c72e 9a96d60 8d78d08 7b932b1 6df9545 9a96d60 1b1ec40 93db32d 9a96d60 93db32d 1c08fd3 93db32d 9a96d60 1b1ec40 9a96d60 25e7c41 9a96d60 1b1ec40 9a96d60 c55678d 9a96d60 ed90fbc 93db32d 1a8741b 6df9545 9a96d60 3154c91 cb65275 93db32d |
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 |
import gradio as gr
import torch
import numpy as np
import modin.pandas as pd
from PIL import Image
from diffusers import DiffusionPipeline
from huggingface_hub import login
import os
login(token=os.environ.get('HF_KEY'))
device = "cuda" if torch.cuda.is_available() else "cpu"
torch.cuda.max_memory_allocated(device='cuda')
torch.cuda.empty_cache()
def genie (prompt, negative_prompt, height, width, scale, steps, seed, upscaler):
torch.cuda.max_memory_allocated(device='cuda')
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-0.9", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)
pipe = pipe.to(device)
pipe.enable_xformers_memory_efficient_attention()
torch.cuda.empty_cache()
generator = torch.Generator(device=device).manual_seed(seed)
int_image = pipe(prompt, negative_prompt=negative_prompt, num_inference_steps=steps, height=height, width=width, guidance_scale=scale, num_images_per_prompt=1, generator=generator, output_type="latent").images
torch.cuda.empty_cache()
if upscaler == 'Yes':
torch.cuda.max_memory_allocated(device='cuda')
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-0.9", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)
pipe = pipe.to(device)
pipe.enable_xformers_memory_efficient_attention()
image = pipe(prompt=prompt, image=int_image).images[0]
torch.cuda.empty_cache()
torch.cuda.max_memory_allocated(device='cuda')
pipe = DiffusionPipeline.from_pretrained("stabilityai/sd-x2-latent-upscaler", torch_dtype=torch.float16, use_safetensors=True)
pipe.to("cuda")
pipe.enable_xformers_memory_efficient_attention()
upscaled = pipe(prompt=prompt, negative_prompt=negative_prompt, image=image, num_inference_steps=5, guidance_scale=0).images[0]
torch.cuda.empty_cache()
return (image, upscaled)
else:
torch.cuda.empty_cache()
torch.cuda.max_memory_allocated(device=device)
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-0.9", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)
pipe = pipe.to(device)
pipe.enable_xformers_memory_efficient_attention()
image = pipe(prompt=prompt, negative_prompt=negative_prompt, image=int_image).images[0]
torch.cuda.empty_cache()
return (image, 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=1, step=1, maximum=999999999999999999, randomize=True, label='Seed'),
gr.Radio(['Yes', 'No'], label='Upscale?')],
outputs=['image', 'image'],
title="Stable Diffusion XL 0.9 GPU",
description="SDXL 0.9 GPU. <br><br><b>WARNING: Capable of producing NSFW (Softcore) images.</b>",
article = "Code Monkey: <a href=\"https://huggingface.co/Manjushri\">Manjushri</a>").launch(debug=True, max_threads=80)
|