woutn-223 commited on
Commit
48dd017
·
verified ·
1 Parent(s): 8e47605

Upload 5 files

Browse files
Files changed (5) hide show
  1. Dockerfile +20 -0
  2. README.md +18 -7
  3. gitattributes +35 -0
  4. requirements.txt +4 -0
  5. streamlit_app.py +52 -0
Dockerfile ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.13.5-slim
2
+
3
+ WORKDIR /app
4
+
5
+ RUN apt-get update && apt-get install -y \
6
+ build-essential \
7
+ curl \
8
+ git \
9
+ && rm -rf /var/lib/apt/lists/*
10
+
11
+ COPY requirements.txt ./
12
+
13
+
14
+ RUN pip3 install -r requirements.txt
15
+
16
+ EXPOSE 8501
17
+
18
+ HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
19
+
20
+ ENTRYPOINT ["streamlit", "run", "--server.port=8501", "--server.address=0.0.0.0"]
README.md CHANGED
@@ -1,12 +1,23 @@
1
  ---
2
- title: Ui Test 002
3
- emoji: 🏆
4
- colorFrom: blue
5
  colorTo: red
6
- sdk: gradio
7
- sdk_version: 5.46.1
8
- app_file: app.py
 
 
 
 
9
  pinned: false
 
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
1
  ---
2
+ title: Deepfake Misinfo
3
+ emoji: 🚀
4
+ colorFrom: red
5
  colorTo: red
6
+ sdk: streamlit
7
+ app_file: streamlit_app.py
8
+ tags:
9
+ - streamlit
10
+ - deepfake
11
+ - misinformation
12
+ - transformers
13
  pinned: false
14
+ license: mit
15
  ---
16
 
17
+
18
+ # Welcome to Streamlit!
19
+
20
+ Edit `/src/streamlit_app.py` to customize this app to your heart's desire. :heart:
21
+
22
+ If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community
23
+ forums](https://discuss.streamlit.io).
gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ streamlit
2
+ transformers
3
+ torch
4
+ pillow
streamlit_app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import pipeline
3
+ from PIL import Image
4
+
5
+ # Sidebar for module selection
6
+ module = st.sidebar.selectbox("Choose Detection Type", ["Text Misinformation", "Image Deepfake"])
7
+
8
+ # Load models directly from Hugging Face (no local saving)
9
+ @st.cache_resource
10
+ def load_text_model():
11
+ return pipeline("text-classification", model="mrm8488/bert-tiny-finetuned-fake-news-detection")
12
+
13
+ @st.cache_resource
14
+ def load_image_model():
15
+ return pipeline("image-classification", model="prithivMLmods/Deep-Fake-Detector-v2-Model")
16
+
17
+ # Text Misinformation Detection
18
+ if module == "Text Misinformation":
19
+ st.title("📰 Misinformation Detection")
20
+ user_input = st.text_area("Enter a news statement or claim:")
21
+ if st.button("Analyze"):
22
+ if user_input.strip():
23
+ model = load_text_model()
24
+ result = model(user_input)[0]
25
+ st.success(f"Prediction: {result['label']}")
26
+ st.write(f"Confidence: {result['score']:.2f}")
27
+ else:
28
+ st.warning("Please enter some text.")
29
+
30
+
31
+ # Image Deepfake Detection
32
+ elif module == "Image Deepfake":
33
+ st.title("🖼️ Deepfake Image Detection")
34
+ uploaded_file = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])
35
+ if uploaded_file:
36
+ image = Image.open(uploaded_file).convert("RGB")
37
+ st.image(image, caption="Uploaded Image", use_column_width=True)
38
+ model = load_image_model()
39
+ result = model(image)[0]
40
+
41
+ # Map label_0 and label_1 to meaningful labels with icons and colors
42
+ label_map = {
43
+ "LABEL_0": ("Unauthentic", "❌", "red"),
44
+ "LABEL_1": ("Authentic", "✅", "green")
45
+ }
46
+ label, icon, color = label_map.get(result['label'].upper(), (result['label'], "❓", "gray"))
47
+
48
+ st.markdown(
49
+ f"<h4 style='color:{color};'>{icon} Prediction: {label}</h4>",
50
+ unsafe_allow_html=True
51
+ )
52
+ st.write(f"Confidence: {result['score']:.2f}")