assile commited on
Commit
d5144c2
·
verified ·
1 Parent(s): 514e2c6

Update run.py

Browse files
Files changed (1) hide show
  1. run.py +4 -21
run.py CHANGED
@@ -6,33 +6,20 @@ from insightface.app import FaceAnalysis
6
  import tempfile
7
  from moviepy.editor import VideoFileClip
8
 
9
- # ===== Configuration précoce pour éviter les erreurs =====
10
-
11
- # Désactiver les warnings d'Albumentations (optionnel)
12
  os.environ["NO_ALBUMENTATIONS_UPDATE"] = "1"
13
 
14
  # Rediriger les chemins problématiques
15
  os.environ['MPLCONFIGDIR'] = '/tmp/matplotlib'
16
  os.environ['FONTCONFIG_PATH'] = '/tmp/fontconfig'
17
- os.environ['FONTCONFIG_FILE'] = '/tmp/fontconfig/fonts.conf'
18
-
19
- # Créer les répertoires temporaires nécessaires
20
- os.makedirs(os.environ['MPLCONFIGDIR'], exist_ok=True)
21
- os.makedirs(os.environ['FONTCONFIG_PATH'], exist_ok=True)
22
 
23
- # Créer un fichier minimal de configuration Fontconfig si nécessaire
24
- with open(os.environ['FONTCONFIG_FILE'], 'w') as f:
25
- f.write('''<?xml version="1.0"?>
26
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
27
- <fontconfig>
28
- </fontconfig>''')
29
 
30
  # Forcer InsightFace à utiliser un répertoire accessible
31
  os.environ['INSIGHTFACE_ROOT'] = '/tmp/.insightface'
32
  os.environ["ORT_DISABLE_CUDA"] = "1" # Désactiver CUDA si GPU indisponible
33
 
34
- # ===== Fonction de swap de visage =====
35
-
36
  def swap_face(source_face, target_face, frame):
37
  src_emb = source_face.normed_embedding
38
  tgt_bbox = target_face.bbox.astype(int)
@@ -48,7 +35,6 @@ def swap_face(source_face, target_face, frame):
48
  result = cv2.seamlessClone(resized_face, frame, mask, center, cv2.NORMAL_CLONE)
49
  return result
50
 
51
-
52
  def process_video(source_img, target_video):
53
  try:
54
  face_app = FaceAnalysis(name="buffalo_l", root="/tmp/.insightface")
@@ -96,9 +82,7 @@ def process_video(source_img, target_video):
96
  print(f"Erreur lors du traitement : {str(e)}")
97
  return None
98
 
99
-
100
- # ===== Interface Gradio =====
101
-
102
  demo = gr.Interface(
103
  fn=process_video,
104
  inputs=[
@@ -111,6 +95,5 @@ demo = gr.Interface(
111
  allow_flagging="never"
112
  )
113
 
114
-
115
  if __name__ == "__main__":
116
  demo.launch(share=True)
 
6
  import tempfile
7
  from moviepy.editor import VideoFileClip
8
 
9
+ # Désactiver les avertissements d'Albumentations
 
 
10
  os.environ["NO_ALBUMENTATIONS_UPDATE"] = "1"
11
 
12
  # Rediriger les chemins problématiques
13
  os.environ['MPLCONFIGDIR'] = '/tmp/matplotlib'
14
  os.environ['FONTCONFIG_PATH'] = '/tmp/fontconfig'
 
 
 
 
 
15
 
16
+ os.makedirs('/tmp/matplotlib', exist_ok=True)
17
+ os.makedirs('/tmp/fontconfig', exist_ok=True)
 
 
 
 
18
 
19
  # Forcer InsightFace à utiliser un répertoire accessible
20
  os.environ['INSIGHTFACE_ROOT'] = '/tmp/.insightface'
21
  os.environ["ORT_DISABLE_CUDA"] = "1" # Désactiver CUDA si GPU indisponible
22
 
 
 
23
  def swap_face(source_face, target_face, frame):
24
  src_emb = source_face.normed_embedding
25
  tgt_bbox = target_face.bbox.astype(int)
 
35
  result = cv2.seamlessClone(resized_face, frame, mask, center, cv2.NORMAL_CLONE)
36
  return result
37
 
 
38
  def process_video(source_img, target_video):
39
  try:
40
  face_app = FaceAnalysis(name="buffalo_l", root="/tmp/.insightface")
 
82
  print(f"Erreur lors du traitement : {str(e)}")
83
  return None
84
 
85
+ # Interface Gradio
 
 
86
  demo = gr.Interface(
87
  fn=process_video,
88
  inputs=[
 
95
  allow_flagging="never"
96
  )
97
 
 
98
  if __name__ == "__main__":
99
  demo.launch(share=True)