AMontiB
upload
d0f7752
raw
history blame contribute delete
798 Bytes
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()