Fix: Change gr.Image(source=...) to gr.Image(sources=[...]) for Gradio compatibility Gradio uses sources parameter (plural, as a list) instead of source parameter for webcam input
Rewrite app.py to use gr.Image(source='webcam') for HuggingFace Spaces - Replace manual cv2.VideoCapture with Gradio's native webcam component - Use streaming webcam input with real-time PPG processing - Maintain all signal processing: HR, HRV, SpO2 estimation - Clean ROI extraction and signal quality gating - Updated UI layout for better streaming experience