File size: 2,338 Bytes
3a3c2be
c4c84f3
cb82c24
3a3c2be
c4c84f3
 
 
 
 
3a3c2be
c4c84f3
 
cb82c24
c4c84f3
 
cb82c24
c4c84f3
 
 
 
cb82c24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3a3c2be
cb82c24
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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()