| import tensorflow as tf |
| from tensorflow.keras.models import load_model |
| from PIL import Image |
| import requests |
| from io import BytesIO |
| from matplotlib import pyplot as plt |
| import numpy as np |
| import gradio as gr |
| import json |
|
|
| model = load_model('real-fake-best.h5') |
|
|
| def index(image_url): |
| response = requests.get(image_url) |
| img = Image.open(BytesIO(response.content)) |
| img = np.array(img) |
|
|
| resize = tf.image.resize(img, (32, 32)) |
|
|
| y_pred = model.predict(np.expand_dims(resize / 255, 0)) |
|
|
| predictions = {"Fake": y_pred[0][0]*100, "Real": y_pred[0][1]*100} |
|
|
| print("Predictions:", y_pred) |
| predicted_class = np.argmax(y_pred) |
| print("Predicted Class:", predicted_class) |
|
|
| return json.dumps(predictions) |
|
|
| inputs_image_url = [ |
| gr.Textbox(type="text", label="Image URL"), |
| ] |
|
|
| outputs_result_dict = [ |
| gr.Textbox(type="text", label="Result Dictionary"), |
| ] |
|
|
| interface_image_url = gr.Interface( |
| fn=index, |
| inputs=inputs_image_url, |
| outputs=outputs_result_dict, |
| title="AI Image Detection", |
| cache_examples=False, |
| ) |
|
|
| gr.TabbedInterface( |
| [interface_image_url], |
| tab_names=['Image inference'] |
| ).queue().launch() |
|
|
|
|
| |
| |
|
|
| |
| |
| |
| |