GAN1 / src /streamlit_app.py
vtablas001's picture
Update src/streamlit_app.py
bb8d0ad verified
import re
if not hasattr(re, 'TEMPLATE'):
re.TEMPLATE = 1
import streamlit as st
from utils import carga_modelo, genera
## Página principal
st.title("Generador de imagenes")
st.write("Este es un modelo Light GAN")
st.write("Las Redes Generativas Adversariales (GANs) son un tipo de modelo de deep learning compuesto por dos redes neuronales que compiten entre sí: un generador, que crea imágenes sintéticas, y un discriminador, que intenta distinguirlas de las reales. A través de este entrenamiento adversarial, el generador aprende a producir imágenes cada vez más realistas. Este demo utiliza el modelo Lightweight GAN ceyda/butterfly_cropped_uniq1K_512, entrenado por Ceyda Cinarel sobre un conjunto de datos curado de aproximadamente 1,000 imágenes únicas de mariposas del Smithsonian, generando imágenes de 512×512 píxeles.")
st.write("Haz clic en Generar para crear una mariposa que no existe en la naturaleza")
## Barra lateral
st.sidebar.subheader("Esta mariposa en realidad no existe")
st.sidebar.image("assets/logo.png", width=200)
st.sidebar.caption("Demo creado en vivo")
## Cargando el modelo
repo_id = "ceyda/butterfly_cropped_uniq1K_512"
modelo_gan = carga_modelo(repo_id)
# Generamos n mariposas
n_mariposas = 12
def corre():
with st.spinner("Generando"):
ims = genera(modelo_gan, n_mariposas)
st.session_state["ims"] = ims
if "ims" not in st.session_state:
st.session_state["ims"] = None
corre()
ims = st.session_state["ims"]
corre_botton = st.button(
"Genera mariposas",
on_click=corre,
help="Estamos generando las imágenes, abrocha tu cinturón"
)
if ims is not None:
cols = st.columns(n_mariposas)
for j, im in enumerate(ims):
i = j % n_mariposas
cols[i].image(im, use_container_width=True)