DetectAI / app.py
carru8's picture
Update app.py
5416177 verified
import gradio as gr # type: ignore
import tensorflow as tf # type: ignore
from PIL import Image
import numpy as np
# Cargar el modelo previamente entrenado
modelo = tf.keras.models.load_model('combinado.h5')
# Definir la funci贸n de predicci贸n
def predict(image):
# Redimensionar la imagen a 32x32 p铆xeles
image = image.resize((32, 32))
# Convertir la imagen a un array de numpy y normalizarla
img_ar = np.asarray(image) / 255.0 # Normalizar la imagen
img_ar_rs1 = img_ar.reshape(-1, 32, 32, 3) # Redimensionar la imagen al tama帽o esperado por el modelo
# Realizar la predicci贸n
pred = modelo.predict(img_ar_rs1)[0][0]
# Convertir la probabilidad a porcentaje
porcentaje = pred * 100
# Interpretar la predicci贸n
if pred > 0.6:
return f"La imagen es Real con un {porcentaje:.2f}% de confianza."
else:
return f"La imagen est谩 generada por IA con un {100 - porcentaje:.2f}% de confianza."
# Crear la interfaz de Gradio mejorada
interfaz = gr.Interface(
fn=predict, # Funci贸n de predicci贸n
inputs=gr.Image(type="pil", label="Carga tu imagen"), # Input de tipo imagen con herramientas de edici贸n
outputs=gr.Textbox(label="Resultado de la predicci贸n"), # Output con un label m谩s claro
title="DetectAI ", # T铆tulo de la aplicaci贸n
description="Una aplicaci贸n que identifica las im谩genes generadas por Inteligencia Artificial.", # Descripci贸n de la aplicaci贸n
examples=["Jarulis.jpg"], # Imagen de ejemplo para cargar
theme="compact", # Tema compacto para una apariencia m谩s elegante
allow_flagging="never", # Desactiva la opci贸n de flagging
live=False, # Desactiva el modo en vivo para optimizar el rendimiento
)
# Iniciar la aplicaci贸n
if __name__ == "__main__":
interfaz.launch(share=True)