GiuliDev commited on
Commit
942fb36
1 Parent(s): ee8b15a

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +74 -0
app.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from diffusers import DiffusionPipeline
3
+ import requests
4
+
5
+ # Simulación de las APIs (sustituir por las URLs reales de las APIs)
6
+ LLAMA_API_URL = "https://api-inference.huggingface.co/models/meta-llama/Llama-3.2-11B-Vision-Instruct""
7
+ FLUX_API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev"
8
+ COGVIDEO_API_URL = DiffusionPipeline.from_pretrained("bertjiazheng/KoolCogVideoX-5b")
9
+
10
+
11
+ st.title("ChatBot Multi-IA")
12
+
13
+ # Sección para chat y análisis de imágenes (meta-llama/Llama-3.2-11B-Vision-Instruct)
14
+ st.header("Chat y análisis de imágenes")
15
+
16
+ # Entrada de texto para chat
17
+ user_input = st.text_area("Escribe tu pregunta o sube una imagen para analizar", "")
18
+
19
+ # Entrada de imagen para análisis
20
+ uploaded_image = st.file_uploader("Sube una imagen para que la IA la analice", type=["png", "jpg", "jpeg"])
21
+
22
+ # Botón para enviar la consulta
23
+ if st.button("Enviar para análisis"):
24
+ if uploaded_image:
25
+ # Enviar la imagen a la API de análisis de imágenes
26
+ files = {"image": uploaded_image.getvalue()}
27
+ response = requests.post(LLAMA_API_URL, files=files)
28
+ st.image(uploaded_image, caption="Imagen subida", use_column_width=True)
29
+ st.write("Respuesta de análisis:", response.text)
30
+ elif user_input:
31
+ # Enviar el texto al modelo Llama para chat
32
+ data = {"text": user_input}
33
+ response = requests.post(LLAMA_API_URL, json=data)
34
+ st.write("Respuesta del chat:", response.text)
35
+ else:
36
+ st.warning("Escribe algo o sube una imagen para análisis")
37
+
38
+ # Sección para generación de imágenes (black-forest-labs/FLUX.1-dev)
39
+ st.header("Generación de imágenes")
40
+
41
+ # Entrada de texto para la generación de imagen
42
+ image_prompt = st.text_input("Describe la imagen que deseas generar", "")
43
+
44
+ # Botón para generar la imagen
45
+ if st.button("Generar imagen"):
46
+ if image_prompt:
47
+ # Enviar la descripción al modelo FLUX.1-dev
48
+ data = {"prompt": image_prompt}
49
+ response = requests.post(FLUX_API_URL, json=data)
50
+ st.image(response.content, caption="Imagen generada", use_column_width=True)
51
+ else:
52
+ st.warning("Por favor, ingresa una descripción para generar una imagen.")
53
+
54
+ # Sección para generación de video (THUDM/CogVideoX-5b)
55
+ st.header("Generación de video")
56
+
57
+ # Entrada de texto para la generación de video
58
+ video_prompt = st.text_input("Describe el video que deseas generar", "")
59
+
60
+ # Botón para generar el video
61
+ if st.button("Generar video"):
62
+ if video_prompt:
63
+ # Enviar la descripción al modelo CogVideoX-5b
64
+ data = {"prompt": video_prompt}
65
+ response = requests.post(COGVIDEO_API_URL, json=data)
66
+ # Guardar y mostrar el video generado
67
+ with open("video_generado.mp4", "wb") as f:
68
+ f.write(response.content)
69
+ st.video("video_generado.mp4")
70
+ else:
71
+ st.warning("Por favor, ingresa una descripción para generar un video.")
72
+
73
+ # Footer
74
+ st.write("Aplicación que combina chat, generación de imágenes y videos con múltiples IAs.")