lea97338 commited on
Commit
d1c22bc
·
verified ·
1 Parent(s): cc77083

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -13
app.py CHANGED
@@ -9,14 +9,15 @@ import gradio as gr
9
  # ==========================================
10
  # 1. CONFIGURATION CHIRURGICALE
11
  # ==========================================
12
- DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
13
  MODEL_INPUT_SIZE = 224 # Taille obligatoire pour le Vision Transformer (ViT)
14
- REPO_ID = "KTXStudio/MinecraftSkinImg-To-Img" # Exemple de nom de repo
15
  FILENAME = "vit_minecraft_core.pth"
16
- DEVICE = torch.device("cpu")
17
  SKIN_SIZE = 128 # Taille cible HD du skin Minecraft
18
- MODEL_PATH = "vit_minecraft_core.pth"
19
- model_weights_path = hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
 
 
20
 
21
  # ==========================================
22
  # 2. ARCHITECTURE EXACTE : VISION TRANSFORMER
@@ -24,8 +25,8 @@ model_weights_path = hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
24
  class ViTSkinGenerator(nn.Module):
25
  def __init__(self):
26
  super().__init__()
27
- # On déclare l'architecture (pretrained=False car on charge vos propres poids)
28
- vit = models.vit_b_16(pretrained=False)
29
  self.transformer_core = vit
30
  num_features = vit.heads.head.in_features
31
 
@@ -49,11 +50,8 @@ class ViTSkinGenerator(nn.Module):
49
  # 3. CHARGEMENT DE VOS POIDS AU LANCEMENT
50
  # ==========================================
51
  model = ViTSkinGenerator().to(DEVICE)
52
- if os.path.exists(MODEL_PATH):
53
- print(f"💾 Chargement des poids depuis {MODEL_PATH}...")
54
- model.load_state_dict(torch.load(MODEL_PATH, map_location=DEVICE))
55
- else:
56
- print(f"⚠️ Attention : Fichier '{MODEL_PATH}' introuvable à la racine.")
57
  model.eval()
58
 
59
  # ==========================================
@@ -79,7 +77,7 @@ def predict_skin(input_image):
79
  # 3. Post-traitement strict Pixel Art (NEAREST pour éviter le flou baveux)
80
  tensor_out = torch.clamp(tensor_out, 0, 1)
81
  skin_pil = transforms.ToPILImage()(tensor_out)
82
- skin_final = skin_pil.resize((SKIN_SIZE, SKIN_SIZE), Image.NEAREST)
83
 
84
  return skin_final
85
 
 
9
  # ==========================================
10
  # 1. CONFIGURATION CHIRURGICALE
11
  # ==========================================
12
+ DEVICE = torch.device("cpu") # Forcé sur CPU pour un Space CPU standard
13
  MODEL_INPUT_SIZE = 224 # Taille obligatoire pour le Vision Transformer (ViT)
14
+ REPO_ID = "KTXStudio/MinecraftSkinImg-To-Img"
15
  FILENAME = "vit_minecraft_core.pth"
 
16
  SKIN_SIZE = 128 # Taille cible HD du skin Minecraft
17
+
18
+ # Téléchargement automatique depuis Hugging Face Hub au démarrage
19
+ print("⏳ Téléchargement des poids depuis le Hub...")
20
+ MODEL_PATH = hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
21
 
22
  # ==========================================
23
  # 2. ARCHITECTURE EXACTE : VISION TRANSFORMER
 
25
  class ViTSkinGenerator(nn.Module):
26
  def __init__(self):
27
  super().__init__()
28
+ # weights=None remplace pretrained=False dans les versions récentes de torchvision
29
+ vit = models.vit_b_16(weights=None)
30
  self.transformer_core = vit
31
  num_features = vit.heads.head.in_features
32
 
 
50
  # 3. CHARGEMENT DE VOS POIDS AU LANCEMENT
51
  # ==========================================
52
  model = ViTSkinGenerator().to(DEVICE)
53
+ print(f"💾 Chargement des poids depuis le cache local : {MODEL_PATH}...")
54
+ model.load_state_dict(torch.load(MODEL_PATH, map_location=DEVICE))
 
 
 
55
  model.eval()
56
 
57
  # ==========================================
 
77
  # 3. Post-traitement strict Pixel Art (NEAREST pour éviter le flou baveux)
78
  tensor_out = torch.clamp(tensor_out, 0, 1)
79
  skin_pil = transforms.ToPILImage()(tensor_out)
80
+ skin_final = skin_pil.resize((SKIN_SIZE, SKIN_SIZE), Image.Resampling.NEAREST)
81
 
82
  return skin_final
83