ivanmorals commited on
Commit
c3cdac5
1 Parent(s): 8b9436b

feat: patch app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -15
app.py CHANGED
@@ -12,8 +12,6 @@ from addict import Dict
12
  # 馃専 PARCHE EXTENDIDO PARA EVITAR CRASHEOS EN CPU
13
  if not torch.cuda.is_available():
14
  print("Aplicando parches de CPU para ClimateGAN...")
15
-
16
- # 1. Parche para el temporizador (Timer)
17
  class DummyEvent:
18
  def __init__(self, *args, **kwargs): pass
19
  def record(self, *args, **kwargs): pass
@@ -22,10 +20,8 @@ if not torch.cuda.is_available():
22
 
23
  torch.cuda.Event = DummyEvent
24
  torch.cuda.synchronize = lambda *args, **kwargs: None
25
-
26
- # 2. NUEVO: Parche para interceptar .cuda() forzados en el c贸digo fuente
27
- # Evita que el SPADEResnetBlock y otros m贸dulos crasheen al instanciarse
28
  torch.nn.Module.cuda = lambda self, *args, **kwargs: self
 
29
  # ---------------------------------------------------------------------------
30
  # CARGA DEL MODELO
31
  # ---------------------------------------------------------------------------
@@ -35,11 +31,9 @@ try:
35
  print("Descargando pesos y configuraci贸n...")
36
  hf_token = os.environ.get("HF_TOKEN")
37
 
38
- # 1. Descargamos los pesos
39
  m_path = hf_hub_download(repo_id="ivanmorals/climategan_weights", filename="masker.pth", token=hf_token)
40
  p_path = hf_hub_download(repo_id="ivanmorals/climategan_weights", filename="painter.pth", token=hf_token)
41
 
42
- # 2. Descargamos LOS DOS archivos de configuraci贸n (YAML)
43
  opts_m_path = hf_hub_download(repo_id="ivanmorals/climategan_weights", filename="opts_masker.yaml", token=hf_token)
44
  opts_p_path = hf_hub_download(repo_id="ivanmorals/climategan_weights", filename="opts_painter.yaml", token=hf_token)
45
 
@@ -50,10 +44,10 @@ try:
50
  with open(opts_p_path, "r") as f_p:
51
  opts_painter = Dict(yaml.safe_load(f_p))
52
 
53
- # 3. 馃専 LA FUSI脫N: Injertamos la arquitectura del Painter en la base del Masker
54
  opts.gen.p = opts_painter.gen.p
55
 
56
- # 4. Ajustes forzados para inferencia en Hugging Face
57
  opts.tasks = ["m", "p", "d", "s"]
58
  opts.load_paths.m = m_path
59
  opts.load_paths.p = p_path
@@ -68,12 +62,9 @@ try:
68
  opts.train.kitti.pretrain = False
69
  opts.train.pseudo.tasks = []
70
 
71
- # Parche de seguridad: Aseguramos resoluciones y eventos por si los YAML no los traen
72
- # Parche de seguridad: Aseguramos resoluciones y eventos por si los YAML no los traen
73
- transform_dict = Dict()
74
- transform_dict.name = "resize"
75
- transform_dict.new_size.default = (640, 640)
76
- opts.data.transforms = [transform_dict]
77
  opts.events.smog.airlight = 1.0
78
  opts.events.smog.beta = 0.1
79
  opts.events.smog.vr = 10.0
 
12
  # 馃専 PARCHE EXTENDIDO PARA EVITAR CRASHEOS EN CPU
13
  if not torch.cuda.is_available():
14
  print("Aplicando parches de CPU para ClimateGAN...")
 
 
15
  class DummyEvent:
16
  def __init__(self, *args, **kwargs): pass
17
  def record(self, *args, **kwargs): pass
 
20
 
21
  torch.cuda.Event = DummyEvent
22
  torch.cuda.synchronize = lambda *args, **kwargs: None
 
 
 
23
  torch.nn.Module.cuda = lambda self, *args, **kwargs: self
24
+
25
  # ---------------------------------------------------------------------------
26
  # CARGA DEL MODELO
27
  # ---------------------------------------------------------------------------
 
31
  print("Descargando pesos y configuraci贸n...")
32
  hf_token = os.environ.get("HF_TOKEN")
33
 
 
34
  m_path = hf_hub_download(repo_id="ivanmorals/climategan_weights", filename="masker.pth", token=hf_token)
35
  p_path = hf_hub_download(repo_id="ivanmorals/climategan_weights", filename="painter.pth", token=hf_token)
36
 
 
37
  opts_m_path = hf_hub_download(repo_id="ivanmorals/climategan_weights", filename="opts_masker.yaml", token=hf_token)
38
  opts_p_path = hf_hub_download(repo_id="ivanmorals/climategan_weights", filename="opts_painter.yaml", token=hf_token)
39
 
 
44
  with open(opts_p_path, "r") as f_p:
45
  opts_painter = Dict(yaml.safe_load(f_p))
46
 
47
+ # 馃専 LA FUSI脫N: Injertamos la arquitectura del Painter en la base del Masker
48
  opts.gen.p = opts_painter.gen.p
49
 
50
+ # Ajustes forzados para inferencia en Hugging Face
51
  opts.tasks = ["m", "p", "d", "s"]
52
  opts.load_paths.m = m_path
53
  opts.load_paths.p = p_path
 
62
  opts.train.kitti.pretrain = False
63
  opts.train.pseudo.tasks = []
64
 
65
+ # 馃専 SE ELIMIN脫 EL PARCHE DE RESOLUCI脫N (opts.data.transforms). EL YAML TIENE EL CONTROL.
66
+
67
+ # Parche de seguridad para eventos (Por si acaso el YAML no los trae completos)
 
 
 
68
  opts.events.smog.airlight = 1.0
69
  opts.events.smog.beta = 0.1
70
  opts.events.smog.vr = 10.0