ElBeh's picture
Upload app.py
472dc50 verified
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
SVAT - Synthetic Video Analyze Tool
Created on Wed Oct 29 12:00:23 2025
@author: standarduser
"""
import gradio as gr
from tabs.tab_videoframes import create_tab_videoframes
from tabs.tab_info import create_tab_info
from tabs.tab_video_analysis import create_tab_video_analysis
from tabs.tab_classify_image import create_tab_classify_image
from processing.image_processing import process_image
# Gradio App erstellen
with gr.Blocks() as demo:
gr.Markdown("# SVAT - Synthetic Video Analyze Tool")
gr.Markdown("*Analyze videos for synthetic/AI-generated content artifacts*")
# Shared state for video frames across tabs
shared_video_frames = gr.State([])
with gr.Tabs():
# Tab 1: Frame-by-frame analysis
video_frames_output = create_tab_videoframes("Video-Frames", process_image, shared_video_frames)
# Tab 2: Video-level analysis
video_analysis_frames = create_tab_video_analysis("Video Analysis")
create_tab_classify_image("Classify Image")
# Tab 4: Help
create_tab_info("Info")
# Connect the video frames state between tabs
# When frames are loaded in tab 1, update tab 2
video_frames_output.change(
fn=lambda frames: frames,
inputs=[video_frames_output],
outputs=[video_analysis_frames]
)
if __name__ == "__main__":
demo.launch()