GAN1 / src /utils.py
vtablas001's picture
Update src/utils.py
eb2e8f5 verified
#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
@classmethod
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