Spaces:
Sleeping
Sleeping
| #para crear funciones que ayuden al resto de la aplicacion | |
| import numpy as np | |
| import torch | |
| from huggan.pytorch.lightweight_gan.lightweight_gan import LightweightGAN | |
| from huggan.pytorch.lightweight_gan.lightweight_gan import LightweightGAN | |
| # ---Patching--- | |
| _old_from_pretrained = LightweightGAN._from_pretrained | |
| def _new_from_pretrained(cls, model_id, use_auth_token=False, **kwargs): | |
| # Interceptamos la llamada interna y le inyectamos el argumento obligatorio | |
| return _old_from_pretrained(model_id, use_auth_token=use_auth_token, **kwargs) | |
| LightweightGAN._from_pretrained = _new_from_pretrained | |
| # --- Patching end --- | |
| # Tu función original puede quedar limpia de nuevo | |
| def carga_modelo(model_name): | |
| # Ya no necesitas pasarle el parámetro aquí, el parche lo maneja | |
| gan = LightweightGAN.from_pretrained(model_name) | |
| return gan | |
| ## Cargamos el modelo desde el Hub de Hugging Face | |
| def carga_modelo(model_name="ceyda/butterfly_cropped_uniq1K_512", model_version=None): | |
| gan = LightweightGAN.from_pretrained(model_name, use_auth_token=False) | |
| gan.eval() | |
| return gan | |
| ## Usamos el modelo GAN para generar imágenes | |
| def genera(gan, batch_size=1): | |
| with torch.no_grad(): | |
| ims = gan.G(torch.randn(batch_size, gan.latent_dim)).clamp_(0.0, 1.0) * 255 | |
| ims = ims.permute(0, 2, 3, 1).detach().cpu().numpy().astype(np.uint8) | |
| return ims |