File size: 3,045 Bytes
942fb36
 
 
 
 
70ea471
942fb36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import streamlit as st
from diffusers import DiffusionPipeline
import requests

# Simulaci贸n de las APIs (sustituir por las URLs reales de las APIs)
LLAMA_API_URL = "https://api-inference.huggingface.co/models/meta-llama/Llama-3.2-11B-Vision-Instruct"
FLUX_API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev"
COGVIDEO_API_URL = DiffusionPipeline.from_pretrained("bertjiazheng/KoolCogVideoX-5b")


st.title("ChatBot Multi-IA")

# Secci贸n para chat y an谩lisis de im谩genes (meta-llama/Llama-3.2-11B-Vision-Instruct)
st.header("Chat y an谩lisis de im谩genes")

# Entrada de texto para chat
user_input = st.text_area("Escribe tu pregunta o sube una imagen para analizar", "")

# Entrada de imagen para an谩lisis
uploaded_image = st.file_uploader("Sube una imagen para que la IA la analice", type=["png", "jpg", "jpeg"])

# Bot贸n para enviar la consulta
if st.button("Enviar para an谩lisis"):
    if uploaded_image:
        # Enviar la imagen a la API de an谩lisis de im谩genes
        files = {"image": uploaded_image.getvalue()}
        response = requests.post(LLAMA_API_URL, files=files)
        st.image(uploaded_image, caption="Imagen subida", use_column_width=True)
        st.write("Respuesta de an谩lisis:", response.text)
    elif user_input:
        # Enviar el texto al modelo Llama para chat
        data = {"text": user_input}
        response = requests.post(LLAMA_API_URL, json=data)
        st.write("Respuesta del chat:", response.text)
    else:
        st.warning("Escribe algo o sube una imagen para an谩lisis")

# Secci贸n para generaci贸n de im谩genes (black-forest-labs/FLUX.1-dev)
st.header("Generaci贸n de im谩genes")

# Entrada de texto para la generaci贸n de imagen
image_prompt = st.text_input("Describe la imagen que deseas generar", "")

# Bot贸n para generar la imagen
if st.button("Generar imagen"):
    if image_prompt:
        # Enviar la descripci贸n al modelo FLUX.1-dev
        data = {"prompt": image_prompt}
        response = requests.post(FLUX_API_URL, json=data)
        st.image(response.content, caption="Imagen generada", use_column_width=True)
    else:
        st.warning("Por favor, ingresa una descripci贸n para generar una imagen.")

# Secci贸n para generaci贸n de video (THUDM/CogVideoX-5b)
st.header("Generaci贸n de video")

# Entrada de texto para la generaci贸n de video
video_prompt = st.text_input("Describe el video que deseas generar", "")

# Bot贸n para generar el video
if st.button("Generar video"):
    if video_prompt:
        # Enviar la descripci贸n al modelo CogVideoX-5b
        data = {"prompt": video_prompt}
        response = requests.post(COGVIDEO_API_URL, json=data)
        # Guardar y mostrar el video generado
        with open("video_generado.mp4", "wb") as f:
            f.write(response.content)
        st.video("video_generado.mp4")
    else:
        st.warning("Por favor, ingresa una descripci贸n para generar un video.")

# Footer
st.write("Aplicaci贸n que combina chat, generaci贸n de im谩genes y videos con m煤ltiples IAs.")