Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import tensorflow as tf | |
| import numpy as np | |
| from pathlib import Path | |
| from PIL import Image | |
| LATENT_DIM = 100 | |
| MODEL_FILE = Path(__file__).with_name("generator_full.keras") | |
| _gen = None # cargamos “lazy” para arrancar rápido | |
| def get_generator(): | |
| global _gen | |
| if _gen is None: | |
| _gen = tf.keras.models.load_model(MODEL_FILE, compile=False) | |
| return _gen | |
| def generate(digit: int): | |
| z = tf.random.normal([5, LATENT_DIM]) | |
| lbl = tf.constant([[digit]] * 5) | |
| imgs = (get_generator()([z, lbl], training=False) + 1) / 2 # [0,1] | |
| return [ | |
| Image.fromarray((img.numpy() * 255).astype("uint8").squeeze(), mode="L") | |
| for img in imgs | |
| ] | |
| demo = gr.Interface( | |
| fn=generate, | |
| inputs=gr.Number(label="Digit 0-9", precision=0, value=4), | |
| outputs=gr.Gallery(label="Five samples", columns=5, rows=1), | |
| title="Hand-written Digit Generator (cGAN · 20 epochs)", | |
| description="Pick a digit and get five MNIST-style images." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |