Deva commited on
Commit
454f6b6
·
1 Parent(s): 8041a37

Feature upload a whole folder

Browse files
.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ test_images/*
.gradio/certificate.pem ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
31
+ -----END CERTIFICATE-----
.gradio/flagged/_image/5ee8eb9e218fa514c209/rat_example.png ADDED
.gradio/flagged/dataset1.csv ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ _image,output,timestamp
2
+ .gradio/flagged/_image/5ee8eb9e218fa514c209/rat_example.png,,2025-01-27 12:16:23.332618
app.py CHANGED
@@ -1,30 +1,92 @@
1
  import gradio as gr
 
 
 
 
2
 
3
 
4
- # def greet(name):
5
- # return "Hello " + name + "!"
 
 
 
 
 
 
 
 
 
 
 
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
- def image_classifier():
9
- """
10
- arr = np.expand_dims(im, axis=0)
11
- arr = tf.keras.applications.mobilenet.preprocess_input(arr)
12
- prediction = mobile_net.predict(arr).flatten()
13
- return {labels[i]: float(prediction[i]) for i in range(1000)}
14
- """
15
- pass
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
- def test():
19
- a = 2
20
- pass
21
 
 
 
22
 
23
- iface = gr.Interface
24
- (image_classifier, gr.Image(), "image")
25
 
 
 
 
 
 
 
 
 
 
 
 
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  if __name__ == "__main__":
28
- iface.launch(share=True)
29
- # demo = gr.Interface(fn=greet, inputs="text", outputs="text")
30
- # demo.launch(share=True)
 
1
  import gradio as gr
2
+ import numpy as np
3
+ import pandas as pd
4
+ import os
5
+ from tkinter import Tk, filedialog
6
 
7
 
8
+ def on_browse(data_type):
9
+ root = Tk()
10
+ root.attributes("-topmost", True)
11
+ root.withdraw()
12
+ if data_type == "Files":
13
+ filenames = filedialog.askopenfilenames()
14
+ if len(filenames) > 0:
15
+ root.destroy()
16
+ return str(filenames)
17
+ else:
18
+ filename = "Files not seleceted"
19
+ root.destroy()
20
+ return str(filename)
21
 
22
+ elif data_type == "Folder":
23
+ filename = filedialog.askdirectory()
24
+ if filename:
25
+ if os.path.isdir(filename):
26
+ root.destroy()
27
+ return str(filename)
28
+ else:
29
+ root.destroy()
30
+ return str(filename)
31
+ else:
32
+ filename = "Folder not seleceted"
33
+ root.destroy()
34
+ return str(filename)
35
 
 
 
 
 
 
 
 
 
36
 
37
+ def main():
38
+ with gr.Blocks() as demo:
39
+ data_type = gr.Radio(
40
+ choices=["Files", "Folder"], value="Files", label="Offline data type"
41
+ )
42
+ input_path = gr.Textbox(
43
+ label="Select Multiple videos", scale=5, interactive=False
44
+ )
45
+ image_browse_btn = gr.Button("Browse", min_width=1)
46
+ image_browse_btn.click(
47
+ on_browse, inputs=data_type, outputs=input_path, show_progress="hidden"
48
+ )
49
+ return demo
50
 
 
 
 
51
 
52
+ demo = main()
53
+ demo.launch(inbrowser=True)
54
 
 
 
55
 
56
+ '''
57
+ def get_image_name(_image):
58
+ if _image.any():
59
+ # print(type(_image))
60
+ output_info = f"""
61
+ Image shape:
62
+ {_image.shape}
63
+ """
64
+ return output_info
65
+ else:
66
+ return "No file uploaded"
67
 
68
+
69
+ def list_images(dir):
70
+ return [d.name for d in dir]
71
+
72
+
73
+ with gr.Blocks() as interface:
74
+ gr.Markdown("Import your image and then click the button to see the output.")
75
+ with gr.Row():
76
+ input_img = gr.Image(label="Input Image", height=500, width=500)
77
+ # output_img = gr.Image(label="Recognized Image")
78
+ # display_df = gr.DataFrame(export_results)
79
+ output_info = gr.Textbox()
80
+ # export_info = gr.Textbox()
81
+ labelling_btn = gr.Button("Apply Species Recognition")
82
+ # export_btn = gr.Button("Export result as a CSV")
83
+ labelling_btn.click(fn=get_image_name, inputs=input_img, outputs=[output_info])
84
+ # export_btn.click(fn=export_results, inputs=input_img, outputs=[export_info])
85
+
86
+ with gr.Row():
87
+ gr.Dataframe(pd.DataFrame({"col1": [1, 2], "col2": [3, 4]}))
88
+
89
+ # Launch the app
90
  if __name__ == "__main__":
91
+ interface.launch()
92
+ '''
 
requirement.txt ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ aiofiles==23.2.1
2
+ annotated-types==0.7.0
3
+ anyio==4.8.0
4
+ audioop-lts==0.2.1
5
+ certifi==2024.12.14
6
+ charset-normalizer==3.4.1
7
+ click==8.1.8
8
+ fastapi==0.115.7
9
+ ffmpy==0.5.0
10
+ filelock==3.17.0
11
+ fsspec==2024.12.0
12
+ gradio==5.13.1
13
+ gradio_client==1.6.0
14
+ h11==0.14.0
15
+ httpcore==1.0.7
16
+ httpx==0.28.1
17
+ huggingface-hub==0.27.1
18
+ idna==3.10
19
+ Jinja2==3.1.5
20
+ markdown-it-py==3.0.0
21
+ MarkupSafe==2.1.5
22
+ mdurl==0.1.2
23
+ numpy==2.2.2
24
+ orjson==3.10.15
25
+ packaging==24.2
26
+ pandas==2.2.3
27
+ pillow==11.1.0
28
+ pydantic==2.10.6
29
+ pydantic_core==2.27.2
30
+ pydub==0.25.1
31
+ Pygments==2.19.1
32
+ python-dateutil==2.9.0.post0
33
+ python-multipart==0.0.20
34
+ pytz==2024.2
35
+ PyYAML==6.0.2
36
+ requests==2.32.3
37
+ rich==13.9.4
38
+ ruff==0.9.3
39
+ safehttpx==0.1.6
40
+ semantic-version==2.10.0
41
+ setuptools==75.1.0
42
+ shellingham==1.5.4
43
+ six==1.17.0
44
+ sniffio==1.3.1
45
+ starlette==0.45.3
46
+ tomlkit==0.13.2
47
+ tqdm==4.67.1
48
+ typer==0.15.1
49
+ typing_extensions==4.12.2
50
+ tzdata==2025.1
51
+ urllib3==2.3.0
52
+ uvicorn==0.34.0
53
+ websockets==14.2
54
+ wheel==0.44.0