tstone87 commited on
Commit
030641e
·
verified ·
1 Parent(s): cb07698

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -4
app.py CHANGED
@@ -1,3 +1,13 @@
 
 
 
 
 
 
 
 
 
 
1
  import sys
2
  import gradio as gr
3
  import os
@@ -6,6 +16,7 @@ import cv2
6
  import requests
7
  from ultralytics import YOLO
8
 
 
9
  sys.argv = [arg for arg in sys.argv if arg != "--import"]
10
 
11
  model = YOLO("yolo11n-pose.pt")
@@ -65,8 +76,7 @@ def process_input(uploaded_file, youtube_link, image_url, sensitivity):
65
  return None, None, None, "Invalid video properties detected."
66
 
67
  output_path = os.path.join(tempfile.gettempdir(), f"out_{os.urandom(8).hex()}.mp4")
68
- # Use H.264 codec which is more widely supported
69
- fourcc = cv2.VideoWriter_fourcc(*'avc1') # Changed from 'mp4v' to 'avc1'
70
  out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
71
 
72
  if not out.isOpened():
@@ -94,7 +104,7 @@ def process_input(uploaded_file, youtube_link, image_url, sensitivity):
94
  if processed_frames == 0:
95
  return None, None, None, "No frames processed from video."
96
 
97
- if not os.path.exists(output_path) or os.path.getsize(output_path) < 1024: # Check if file is too small
98
  return None, None, None, f"Output video created but too small ({os.path.getsize(output_path)} bytes) - processing failed."
99
 
100
  return output_path, None, output_path, f"Video processed successfully! ({processed_frames}/{frame_count} frames)"
@@ -119,7 +129,6 @@ def process_input(uploaded_file, youtube_link, image_url, sensitivity):
119
  except:
120
  pass
121
 
122
- # Gradio interface (unchanged)
123
  with gr.Blocks(css="""
124
  .result_img > img {
125
  width: 100%;
 
1
+ # This script is designed for Hugging Face Spaces
2
+ # Dependencies are specified in requirements.txt in the Space's repository root
3
+ # Expected dependencies:
4
+ # gradio>=4.0.0
5
+ # opencv-python>=4.8.0
6
+ # requests>=2.28.0
7
+ # ultralytics>=8.2.0
8
+ # pytubefix>=6.0.0
9
+ # numpy>=1.23.0
10
+
11
  import sys
12
  import gradio as gr
13
  import os
 
16
  import requests
17
  from ultralytics import YOLO
18
 
19
+ # Remove extra CLI arguments that Spaces might pass
20
  sys.argv = [arg for arg in sys.argv if arg != "--import"]
21
 
22
  model = YOLO("yolo11n-pose.pt")
 
76
  return None, None, None, "Invalid video properties detected."
77
 
78
  output_path = os.path.join(tempfile.gettempdir(), f"out_{os.urandom(8).hex()}.mp4")
79
+ fourcc = cv2.VideoWriter_fourcc(*'avc1')
 
80
  out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
81
 
82
  if not out.isOpened():
 
104
  if processed_frames == 0:
105
  return None, None, None, "No frames processed from video."
106
 
107
+ if not os.path.exists(output_path) or os.path.getsize(output_path) < 1024:
108
  return None, None, None, f"Output video created but too small ({os.path.getsize(output_path)} bytes) - processing failed."
109
 
110
  return output_path, None, output_path, f"Video processed successfully! ({processed_frames}/{frame_count} frames)"
 
129
  except:
130
  pass
131
 
 
132
  with gr.Blocks(css="""
133
  .result_img > img {
134
  width: 100%;