|
import streamlit as st |
|
from PIL import Image |
|
import requests |
|
from transformers import pipeline |
|
|
|
|
|
model_name = "vm24bho/net_dfm_myimg" |
|
pipe = pipeline('image-classification', model=model_name) |
|
|
|
st.title("Deepfake vs Real Image Detection") |
|
|
|
uploaded_file = st.file_uploader("Choose an image...", type="jpg") |
|
|
|
if uploaded_file is not None: |
|
image = Image.open(uploaded_file) |
|
st.image(image, caption='Uploaded Image.', use_column_width=True) |
|
|
|
st.write("") |
|
st.write("Classifying...") |
|
|
|
|
|
result = pipe(image) |
|
|
|
|
|
st.write("**Classification Result:**") |
|
st.write("---------------") |
|
for i, res in enumerate(result): |
|
label = res["label"] |
|
score = res["score"] * 100 |
|
st.write(f"**{i+1}. {label}**: {score:.2f}%") |
|
st.write("---------------") |
|
|
|
|
|
real_score = result[0]["score"] * 100 |
|
fake_score = result[1]["score"] * 100 |
|
if real_score > fake_score: |
|
majority_label = "Real" |
|
else: |
|
majority_label = "Fake" |
|
|
|
|
|
st.write(f"**Given image is {majority_label}**") |