eesfeg's picture
docker
0aa3dbd
import tensorflow as tf
import keras
keras.config.enable_unsafe_deserialization()
# Then load your model as usual:
import gradio as gr
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.image import img_to_array
import joblib
import cv2
from huggingface_hub import hf_hub_download
import tensorflow as tf
model_path = hf_hub_download(
repo_id="abdelac/FakeImageModelKeras",
filename="feature_extractor.h5"
)
feature_extractor = load_model(model_path, compile=False, safe_mode=False)
#feature_extractor = tf.keras.models.load_model(model_path)
print("Model loaded successfully!")
# Load the models first model jjjff fkfkfkfkfkfk
# feature_extractor = load_model("feature_extractor.keras", safe_mode=False)
classifier = joblib.load("adaboost_model.pkl")
label_encoder = joblib.load("label_encoder.pkl")
S = 299 # Your image size
def predict(input_img):
# Preprocess
img = cv2.resize(input_img, (S, S))
img = img.astype("float32") / 255.0
img = np.expand_dims(img, axis=0)
# Extract Features
features = feature_extractor.predict(img)
features = features.reshape(1, -1)
# Classify
prediction_idx = classifier.predict(features)[0]
# Logic from your code
if prediction_idx == 0:
return "Fake or Dog"
else:
return "Real or Cat"
# Create Gradio UI
interface = gr.Interface(
fn=predict,
inputs=gr.Image(),
outputs="text",
title="Hybrid AI: InceptionResNetV2 + AdaBoost",
description="Upload an image to detect if it's Real/Cat or Fake/Dog."
)
if __name__ == "__main__":
interface.launch()