BirdM commited on
Commit
d3de79a
·
verified ·
1 Parent(s): 3793a0d

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -0
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import pipeline
3
+
4
+ # 1. Define el ID del modelo que vamos a usar
5
+ # Este modelo está entrenado para clasificar si una imagen es Real o Deepfake (Synthetic)
6
+ MODEL_ID = "prithivMLmods/deepfake-detector-model-v1"
7
+
8
+ # 2. Carga el pipeline de clasificación de imágenes
9
+ try:
10
+ print(f"Cargando el modelo: {MODEL_ID}...")
11
+ detector = pipeline("image-classification", model=MODEL_ID)
12
+ print("Modelo cargado con éxito.")
13
+ except Exception as e:
14
+ print(f"Error al cargar el modelo: {e}")
15
+ # En caso de error, puedes definir una función dummy para que la app no falle
16
+ def detector(image):
17
+ return [{'label': 'Error en la carga del modelo', 'score': 1.0}]
18
+
19
+
20
+ # 3. Definición de la función de predicción
21
+ def predecir_deepfake(imagen):
22
+ """
23
+ Toma una imagen y devuelve la predicción del modelo.
24
+ """
25
+ if imagen is None:
26
+ return "Por favor, sube una imagen para analizarla."
27
+
28
+ # Llama al modelo
29
+ resultados = detector(imagen)
30
+
31
+ # El resultado es una lista, tomamos la predicción con mayor puntuación
32
+ prediccion_principal = resultados[0]
33
+ etiqueta = prediccion_principal['label']
34
+ probabilidad = prediccion_principal['score'] * 100
35
+
36
+ # Formatear el resultado
37
+ if "fake" in etiqueta.lower() or "synthetic" in etiqueta.lower():
38
+ etiqueta_final = "FALSA (GENERADA POR IA) 🤖"
39
+ color = "red"
40
+ else:
41
+ etiqueta_final = "VERDADERA (REAL) ✅"
42
+ color = "green"
43
+
44
+ markdown_output = f"""
45
+ ### Resultado del Análisis
46
+
47
+ La imagen es clasificada como {etiqueta_final} con una confianza del {probabilidad:.2f}%.
48
+ """
49
+ return markdown_output
50
+
51
+ # 4. Creación de la Interfaz Gradio
52
+ iface = gr.Interface(
53
+ fn=predecir_deepfake,
54
+ inputs=gr.Image(type="filepath", label="Sube una imagen para la detección de Deepfake"),
55
+ outputs=gr.Markdown(),
56
+ title="🤖 DeepFake Detector",
57
+ description="Esta aplicación usa un modelo de clasificación de imágenes pre-entrenado para determinar si una foto es real o generada por inteligencia artificial (Deepfake).",
58
+ examples=[
59
+ # Agrega rutas a imágenes de ejemplo si las subes al Space
60
+ # ["path/a/una/imagen_ejemplo.jpg"]
61
+ ]
62
+ )
63
+
64
+ # 5. Lanzamiento de la aplicación (esto es manejado por Hugging Face)
65
+ iface.launch()