Spaces:
Paused
Paused
File size: 1,548 Bytes
cf8bafe 65ad1db c9e21fd a97c5ef 3faa194 cf8bafe 65ad1db cf8bafe 65ad1db c9e9e94 36c015f 3faa194 36c015f 3faa194 b9e2ccf 3faa194 b2e5b52 21f56fb b2e5b52 3faa194 36c015f c9e9e94 3faa194 36c015f 3faa194 36c015f 3faa194 65ad1db |
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 |
import gradio as gr
import torch
from diffusers import StableDiffusionPipeline
import boto3
from io import BytesIO
import os
AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY")
S3_BUCKET_NAME = os.getenv("BUCKET_NAME")
model_id = "CompVis/stable-diffusion-v1-4"
device = "cuda" if torch.cuda.is_available() else "cpu"
pipe = StableDiffusionPipeline.from_pretrained(
model_id, torch_dtype=torch.float32)
pipe = pipe.to(device)
def text_to_image(summary, image_name):
# Crea una instancia del cliente de S3
s3 = boto3.client('s3',
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
image_name = '-'.join(image_name.split()) + ".webp"
def save_image_to_s3(image):
# Crea un objeto de BytesIO para almacenar la imagen
image_buffer = BytesIO()
image.save(image_buffer, format='WEBP')
image_buffer.seek(0)
# Ruta completa del archivo en el bucket
s3_key = "public/" + image_name
# Sube la imagen al bucket de S3
s3.upload_fileobj(image_buffer, S3_BUCKET_NAME, s3_key)
def generator_image(summary):
prompt = summary
image = pipe(prompt).images[0]
# Guarda la imagen en S3
save_image_to_s3(image)
# generate image
generator_image(summary)
return image_name
iface = gr.Interface(fn=text_to_image, inputs="text", outputs="text")
iface.launch()
|