adridonha commited on
Commit
4195f01
·
1 Parent(s): c46f5e4
Files changed (1) hide show
  1. app.py +51 -6
app.py CHANGED
@@ -4,13 +4,58 @@ from PIL import Image
4
  from diffusers import DiffusionPipeline
5
  from transformers import pipeline
6
 
7
- modeloObtenerTextoImagen = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")
8
- modeloGenerarImagen = DiffusionPipeline.from_pretrained("sd-legacy/stable-diffusion-v1-5", torch_dtype=torch.float32)
 
 
 
 
 
 
 
 
9
 
10
  def obtenerDescripcion(imagen):
11
- resultadoModeloTI = modeloObtenerTextoImagen(Image.fromarray(imagen))
12
- print(f'La frase que se ha obtenido de la imagen es {resultadoModeloTI}')
13
- return modeloGenerarImagen(resultadoModeloTI[0]['generated_text']).images[0]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
- demo = gr.Interface(fn=obtenerDescripcion, inputs="image", outputs="image")
16
  demo.launch(share=True)
 
4
  from diffusers import DiffusionPipeline
5
  from transformers import pipeline
6
 
7
+ # Modelos
8
+ modeloObtenerTextoImagen = pipeline(
9
+ "image-to-text",
10
+ model="Salesforce/blip-image-captioning-base"
11
+ )
12
+
13
+ modeloGenerarImagen = DiffusionPipeline.from_pretrained(
14
+ "sd-legacy/stable-diffusion-v1-5",
15
+ torch_dtype=torch.float32
16
+ )
17
 
18
  def obtenerDescripcion(imagen):
19
+ """
20
+ Función que recibe una imagen, genera una descripción de la misma
21
+ y luego crea una nueva imagen basada en esa descripción.
22
+ """
23
+ # Obtener descripción de la imagen
24
+ descripcion = modeloObtenerTextoImagen(Image.fromarray(imagen))
25
+ texto_generado = descripcion[0]['generated_text']
26
+
27
+ # Generar imagen a partir de la descripción
28
+ imagen_generada = modeloGenerarImagen(texto_generado).images[0]
29
+
30
+ return imagen_generada, texto_generado
31
+
32
+ # Layout con Gradio Blocks
33
+ with gr.Blocks(title="Asistente Visual para Personas con Discapacidad") as demo:
34
+
35
+ gr.Markdown(
36
+ """
37
+ # Asistente Visual
38
+ Esta herramienta ayuda a personas con discapacidad visual a comprender imágenes.
39
+ 1. Sube una imagen.
40
+ 2. La IA generará una descripción de la imagen y una nueva imagen interpretativa.
41
+ """
42
+ )
43
+
44
+ with gr.Row():
45
+ with gr.Column():
46
+ imagen_input = gr.Image(label="Sube tu imagen aquí", type="numpy")
47
+ boton_generar = gr.Button("Generar descripción e imagen")
48
+
49
+ with gr.Column():
50
+ imagen_output = gr.Image(label="Imagen generada")
51
+ descripcion_output = gr.Textbox(label="Descripción generada por IA", lines=4)
52
+
53
+ # Conectar botón a función
54
+ boton_generar.click(
55
+ fn=obtenerDescripcion,
56
+ inputs=imagen_input,
57
+ outputs=[imagen_output, descripcion_output]
58
+ )
59
 
60
+ # Lanzar app
61
  demo.launch(share=True)