| | 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() |
| |
|
| |
|
| | |
| | |
| |
|
| | |
| | |
| | |
| | |