import gradio as gr
import torch
import numpy as np
import modin.pandas as pd
from PIL import Image
from diffusers import StableDiffusionXLPipeline
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()
pipe = StableDiffusionXLPipeline.from_pretrained(
"cagliostrolab/animagine-xl-4.0",
torch_dtype=torch.float32,
use_safetensors=True,
custom_pipeline="lpw_stable_diffusion_xl",
add_watermarker=False)
pipe = pipe.to(device)
torch.cuda.empty_cache()
def genie (Prompt, negative_prompt, scale, steps, seed, progress=gr.Progress(track_tqdm=True), max_sequence_length=512):
generator = np.random.seed(0) if seed == 0 else torch.manual_seed(seed)
torch.cuda.empty_cache()
image = pipe(Prompt, negative_prompt=negative_prompt, height=768, width=768, num_inference_steps=steps, guidance_scale=scale).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.'),
gr.Textbox(label='What you Do Not want the AI to generate. 77 Token Limit'),
gr.Slider(3, maximum=12, value=7, step=.25, label='Guidance Scale', info="7-10 for Animagine"),
gr.Slider(25, maximum=50, value=25, step=25, label='Number of Iterations'),
gr.Slider(minimum=0, step=1, maximum=9999999999999999, randomize=True, label='Seed: 0 is Random'),
],
outputs=gr.Image(label='Generated Image'),
title="Animagine XL 4.0 - CPU",
description="
Warning: This Demo is capable of producing NSFW content.",
article = "Code Monkey: Manjushri").launch(debug=True)