Pujan-Dev's picture
feat: updated detector using Ela fft and meta
0b8f50d
import tensorflow as tf
from tensorflow.keras.models import load_model as keras_load_model
import os
from huggingface_hub import snapshot_download
import shutil
# Constants
REPO_ID = "can-org/AI-VS-HUMAN-IMAGE-classifier"
MODEL_DIR = "./IMG_models"
MODEL_PATH = os.path.join(MODEL_DIR, 'latest-my_cnn_model.h5') # adjust path as needed
_model_img = None # global model variable
def warmup():
global _model_img
if not os.path.exists(MODEL_DIR):
download_model_Repo()
_model_img = load_model()
def download_model_Repo():
if os.path.exists(MODEL_DIR):
return
snapshot_path = snapshot_download(repo_id=REPO_ID)
os.makedirs(MODEL_DIR, exist_ok=True)
shutil.copytree(snapshot_path, MODEL_DIR, dirs_exist_ok=True)
def load_model():
if not os.path.exists(MODEL_DIR):
download_model_Repo()
# Check for GPU availability
gpus = tf.config.list_physical_devices('GPU')
if gpus:
# GPU is available, load model normally
print("GPU detected, loading model on GPU.")
model = keras_load_model(MODEL_PATH)
else:
# No GPU, force CPU usage
print("No GPU detected, forcing model loading on CPU.")
with tf.device('/CPU:0'):
model = keras_load_model(MODEL_PATH)
return model