diffuserEjemplo / app.py
adridonha's picture
prueba
4195f01
import gradio as gr
import torch
from PIL import Image
from diffusers import DiffusionPipeline
from transformers import pipeline
# Modelos
modeloObtenerTextoImagen = pipeline(
"image-to-text",
model="Salesforce/blip-image-captioning-base"
)
modeloGenerarImagen = DiffusionPipeline.from_pretrained(
"sd-legacy/stable-diffusion-v1-5",
torch_dtype=torch.float32
)
def obtenerDescripcion(imagen):
"""
Función que recibe una imagen, genera una descripción de la misma
y luego crea una nueva imagen basada en esa descripción.
"""
# Obtener descripción de la imagen
descripcion = modeloObtenerTextoImagen(Image.fromarray(imagen))
texto_generado = descripcion[0]['generated_text']
# Generar imagen a partir de la descripción
imagen_generada = modeloGenerarImagen(texto_generado).images[0]
return imagen_generada, texto_generado
# Layout con Gradio Blocks
with gr.Blocks(title="Asistente Visual para Personas con Discapacidad") as demo:
gr.Markdown(
"""
# Asistente Visual
Esta herramienta ayuda a personas con discapacidad visual a comprender imágenes.
1. Sube una imagen.
2. La IA generará una descripción de la imagen y una nueva imagen interpretativa.
"""
)
with gr.Row():
with gr.Column():
imagen_input = gr.Image(label="Sube tu imagen aquí", type="numpy")
boton_generar = gr.Button("Generar descripción e imagen")
with gr.Column():
imagen_output = gr.Image(label="Imagen generada")
descripcion_output = gr.Textbox(label="Descripción generada por IA", lines=4)
# Conectar botón a función
boton_generar.click(
fn=obtenerDescripcion,
inputs=imagen_input,
outputs=[imagen_output, descripcion_output]
)
# Lanzar app
demo.launch(share=True)