File size: 1,403 Bytes
856a8b1
b53517b
 
 
856a8b1
 
b53517b
856a8b1
b53517b
 
 
 
 
 
 
 
 
856a8b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import numpy as np
import random
from diffusers import DiffusionPipeline
import torch

device = "cuda" if torch.cuda.is_available() else "cpu"

if torch.cuda.is_available():
    torch.cuda.max_memory_allocated(device=device)
    pipe = DiffusionPipeline.from_pretrained("stabilityai/sdxl-turbo", torch_dtype=torch.float16, variant="fp16", use_safetensors=True)
    pipe.enable_xformers_memory_efficient_attention()
    pipe = pipe.to(device)
else: 
    pipe = DiffusionPipeline.from_pretrained("stabilityai/sdxl-turbo", use_safetensors=True)
    pipe = pipe.to(device)
    
# Define the image generation function
def generate_image(prompt, steps, guidance):
    image = pipe(prompt=prompt, num_inference_steps=steps, guidance_scale=guidance).images[0]
    return image

# Create the Gradio interface
iface = gr.Interface(
    fn=generate_image,
    inputs=[
        gr.inputs.Textbox(lines=2, placeholder="Enter your prompt here...", label="Prompt"),
        gr.inputs.Slider(minimum=1, maximum=50, default=10, step=1, label="Inference Steps"),
        gr.inputs.Slider(minimum=0.0, maximum=20.0, default=8.0, step=0.5, label="Guidance Scale")
    ],
    outputs=gr.outputs.Image(type="pil", label="Generated Image"),
    title="SDXL-Turbo Image Generator",
    description="Generate images based on text prompts using the SDXL-Turbo model."
)

# Launch the interface
iface.launch()