import gradio as gr
import torch
from torch import autocast
from diffusers import StableDiffusionPipeline

model_id = "CompVis/stable-diffusion-v1-4"
pipe = StableDiffusionPipeline.from_pretrained(model_id, use_auth_token='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', low_cpu_mem_usage=True)
device = 'cpu'  
pipe = pipe.to(device)

def convert(prompt):
    samples = 4
    images_list = pipe([prompt] * samples, height=256, width=384, num_inference_steps=50)
    images = []
    for i, image in enumerate(images_list["sample"]):
        images.append(image)
    return images


gr.Interface(convert,
             inputs = [gr.Textbox(label="Enter text")],    
             outputs = [gr.Gallery(label="Images").style(grid=4)], 
             title="Text to Image Generation").launch()