Spaces:
Running
on
T4
Running
on
T4
File size: 8,578 Bytes
d8fcee4 9f6fb93 8ec67ee d8fcee4 c462fe7 d8fcee4 c4b5d77 d8fcee4 c4b5d77 d8fcee4 c4b5d77 d8fcee4 c4b5d77 d8fcee4 b9c2637 d8fcee4 4406e6c d8fcee4 b9c2637 d8fcee4 51d2448 d8fcee4 c4b5d77 8024d12 e923469 d8c3206 8024d12 d8c3206 bb9a542 91ec6fc 4f26878 8024d12 c4b5d77 8024d12 c4b5d77 fdf21aa d8fcee4 fdf21aa d8fcee4 eedafde d8fcee4 a039a6a d8fcee4 c4b5d77 d8fcee4 c4b5d77 d8fcee4 e7ae5d7 |
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
import gradio as gr
import torch
import numpy as np
import modin.pandas as pd
from PIL import Image
from diffusers import DiffusionPipeline #, StableDiffusion3Pipeline
from huggingface_hub import hf_hub_download
device = 'cuda' if torch.cuda.is_available() else 'cpu'
torch.cuda.max_memory_allocated(device=device)
torch.cuda.empty_cache()
def genie (Model, Prompt, negative_prompt, height, width, scale, steps, seed, refine, high_noise_frac, upscale):
generator = np.random.seed(0) if seed == 0 else torch.manual_seed(seed)
if Model == "PhotoReal":
pipe = DiffusionPipeline.from_pretrained("circulus/canvers-real-v3.9.1", torch_dtype=torch.float16, safety_checker=None) if torch.cuda.is_available() else DiffusionPipeline.from_pretrained("circulus/canvers-real-v3.8.1")
pipe.enable_xformers_memory_efficient_attention()
pipe = pipe.to(device)
torch.cuda.empty_cache()
if refine == "Yes":
refiner = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0", use_safetensors=True, torch_dtype=torch.float16, variant="fp16") if torch.cuda.is_available() else DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0")
refiner.enable_xformers_memory_efficient_attention()
refiner = refiner.to(device)
torch.cuda.empty_cache()
int_image = pipe(Prompt, negative_prompt=negative_prompt, height=height, width=width, num_inference_steps=steps, guidance_scale=scale).images
image = refiner(Prompt, negative_prompt=negative_prompt, image=int_image, denoising_start=high_noise_frac).images[0]
torch.cuda.empty_cache()
return image
else:
image = pipe(Prompt, negative_prompt=negative_prompt, height=height, width=width, num_inference_steps=steps, guidance_scale=scale).images[0]
torch.cuda.empty_cache()
return image
if Model == "Animagine XL 3.0":
animagine = DiffusionPipeline.from_pretrained("cagliostrolab/animagine-xl-3.0", torch_dtype=torch.float16, safety_checker=None) if torch.cuda.is_available() else DiffusionPipeline.from_pretrained("cagliostrolab/animagine-xl-3.0")
animagine.enable_xformers_memory_efficient_attention()
animagine = animagine.to(device)
torch.cuda.empty_cache()
if refine == "Yes":
torch.cuda.empty_cache()
torch.cuda.max_memory_allocated(device=device)
int_image = animagine(Prompt, negative_prompt=negative_prompt, height=height, width=width, num_inference_steps=steps, guidance_scale=scale, output_type="latent").images
torch.cuda.empty_cache()
animagine = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0", use_safetensors=True, torch_dtype=torch.float16, variant="fp16") if torch.cuda.is_available() else DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0")
animagine.enable_xformers_memory_efficient_attention()
animagine = animagine.to(device)
torch.cuda.empty_cache()
image = animagine(Prompt, negative_prompt=negative_prompt, image=int_image, denoising_start=high_noise_frac).images[0]
torch.cuda.empty_cache()
return image
else:
image = animagine(Prompt, negative_prompt=negative_prompt, height=height, width=width, num_inference_steps=steps, guidance_scale=scale).images[0]
torch.cuda.empty_cache()
return image
if Model == "SDXL 1.0":
torch.cuda.empty_cache()
torch.cuda.max_memory_allocated(device=device)
sdxl = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)
sdxl.enable_xformers_memory_efficient_attention()
sdxl = sdxl.to(device)
torch.cuda.empty_cache()
if refine == "Yes":
torch.cuda.max_memory_allocated(device=device)
torch.cuda.empty_cache()
image = sdxl(Prompt, negative_prompt=negative_prompt, height=height, width=width, num_inference_steps=steps, guidance_scale=scale, output_type="latent").images
torch.cuda.empty_cache()
sdxl = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0", use_safetensors=True, torch_dtype=torch.float16, variant="fp16") if torch.cuda.is_available() else DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0")
sdxl.enable_xformers_memory_efficient_attention()
sdxl = sdxl.to(device)
torch.cuda.empty_cache()
refined = sdxl(Prompt, negative_prompt=negative_prompt, image=image, denoising_start=high_noise_frac).images[0]
torch.cuda.empty_cache()
return refined
else:
image = sdxl(Prompt, negative_prompt=negative_prompt, height=height, width=width, num_inference_steps=steps, guidance_scale=scale).images[0]
torch.cuda.empty_cache()
return image
if Model == 'FusionXL':
torch.cuda.empty_cache()
torch.cuda.max_memory_allocated(device=device)
pipe = DiffusionPipeline.from_pretrained("circulus/canvers-fusionXL-v1", torch_dtype=torch.float16, safety_checker=None) if torch.cuda.is_available() else DiffusionPipeline.from_pretrained("circulus/canvers-real-v3.8.1")
pipe.enable_xformers_memory_efficient_attention()
pipe = pipe.to(device)
torch.cuda.empty_cache()
if refine == "Yes":
torch.cuda.empty_cache()
torch.cuda.max_memory_allocated(device=device)
int_image = pipe(Prompt, negative_prompt=negative_prompt, height=height, width=width, num_inference_steps=steps, guidance_scale=scale, output_type="latent").images
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0", use_safetensors=True, torch_dtype=torch.float16, variant="fp16") if torch.cuda.is_available() else DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-refiner-1.0")
pipe.enable_xformers_memory_efficient_attention()
pipe = pipe.to(device)
torch.cuda.empty_cache()
image = pipe(Prompt, negative_prompt=negative_prompt, image=int_image, denoising_start=high_noise_frac).images[0]
torch.cuda.empty_cache()
return image
else:
image = pipe(Prompt, negative_prompt=negative_prompt, height=height, width=width, num_inference_steps=steps, guidance_scale=scale).images[0]
torch.cuda.empty_cache()
return image
return image
gr.Interface(fn=genie, inputs=[gr.Radio(['PhotoReal', 'Animagine XL 3.0', 'SDXL 1.0', 'FusionXL',], value='PhotoReal', label='Choose Model'),
gr.Textbox(label='What you want the AI to generate. 77 Token Limit.'),
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, maximum=15, value=5, step=.25, label='Guidance Scale'),
gr.Slider(5, maximum=100, value=50, step=5, label='Number of Iterations'),
gr.Slider(minimum=0, step=1, maximum=9999999999999999, randomize=True, label='Seed: 0 is Random'),
gr.Radio(["Yes", "No"], label='SDXL 1.0 Refiner: Use if the Image has too much Noise', value='No'),
gr.Slider(minimum=.9, maximum=.99, value=.95, step=.01, label='Refiner Denoise Start %')],
outputs=gr.Image(label='Generated Image'),
title="Manju Dream Booth V2.1 with SDXL 1.0 Refiner - GPU",
description="<br><br><b/>Warning: This Demo is capable of producing NSFW content.",
article = "If You Enjoyed this Demo and would like to Donate, you can send any amount to any of these Wallets. <br><br>SHIB (BEP20): 0xbE8f2f3B71DFEB84E5F7E3aae1909d60658aB891 <br>PayPal: https://www.paypal.me/ManjushriBodhisattva <br>ETH: 0xbE8f2f3B71DFEB84E5F7E3aae1909d60658aB891 <br>DOGE: D9QdVPtcU1EFH8jDC8jhU9uBcSTqUiA8h6<br><br>Code Monkey: <a href=\"https://huggingface.co./Manjushri\">Manjushri</a>").launch(debug=True, max_threads=80) |