Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| # Import build functions from the tools (they are guarded to not auto-launch) | |
| import CFA | |
| import JPEG_Ghost | |
| import PRNU | |
| import shadows | |
| def build_app(): | |
| # Use TabbedInterface to avoid double-rendering nested Blocks | |
| demos = [ | |
| CFA.build_demo(), | |
| JPEG_Ghost.build_demo(), | |
| PRNU.build_demo(), | |
| shadows.build_gradio_interface(), | |
| ] | |
| titles = [ | |
| "CFA Artifacts", | |
| "JPEG Ghost / Double Compression", | |
| "PRNU (Camera Fingerprint)", | |
| "Vanishing Points (Shadows/Geometry)", | |
| ] | |
| demo = gr.TabbedInterface(demos, titles, theme=gr.themes.Soft(), title="🔍 Image Forensics Toolkit") | |
| return demo | |
| return demo | |
| if __name__ == "__main__": | |
| app = build_app() | |
| app.queue() | |
| app.launch() | |