import os import sys import gradio as gr # Clone the GitHub repository securely using the token from Hugging Face secret REPO_URL = "https://github.com/NeeravSood/AllMark-MVP.git" GITHUB_TOKEN = os.getenv("GITHUB_TOKEN") # Get the token from Hugging Face secret if not os.path.exists("AllMark-MVP"): os.system(f"git clone https://{GITHUB_TOKEN}:x-oauth-basic@{REPO_URL.split('https://')[1]}") # Add the cloned repository to the Python path sys.path.append("AllMark-MVP") # Now you can import any module from the entire repository import app # Assuming app.py is the main file, or use `from app import *` if needed # Initialize the DeepfakeAnalyzer (or any other component from the repo) analyzer = app.DeepfakeAnalyzer() # Define the Gradio function to analyze the video def analyze_video(video_file): results = analyzer.analyze_media(video_file) combined_probability = results['combined_assessment'] audio_analysis = results["audio_analysis"] video_probability = results['video_analysis']['probability'] frame_count = len(results['video_analysis']['frame_results']) # Format the output for display output = { "Audio Analysis": audio_analysis, "Deepfake Probability (Combined Assessment)": f"{combined_probability:.2f}%", "Video Analysis": { "Deepfake Probability": f"{video_probability:.4f}", "Frames Analyzed": frame_count, "Frame Analysis Summary": [ { "Frame Number": frame_result["frame_number"], "Noise Level": frame_result["noise"], "Edge Density": frame_result["edge_density"], "Color Consistency": frame_result["color_consistency"], "Temporal Difference": frame_result["temporal_difference"], "Probability": frame_result["probability"] } for frame_result in results['video_analysis']['frame_results'] ] } } return output # Define the Gradio interface interface = gr.Interface( fn=analyze_video, inputs=gr.Video(label="Upload Video"), outputs="json", title="Deepfake Analyzer", description="Upload a video to analyze for deepfake content." ) # Launch Gradio app if __name__ == "__main__": interface.launch()