Ifeanyi commited on
Commit
a337076
1 Parent(s): 27aeeb4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -16
app.py CHANGED
@@ -1,24 +1,62 @@
1
- from transformers import pipeline
 
2
  import gradio as gr
 
 
 
3
 
4
- def PromptGenerator(prompt):
5
- pipe = pipeline("text-generation", model="Gustavosta/MagicPrompt-Stable-Diffusion")
 
 
 
 
 
 
 
6
 
7
- prompt = pipe(prompt)
 
8
 
9
- prompt = prompt[0]
10
 
11
- prompt = prompt["generated_text"]
12
 
13
- return prompt
14
 
15
- app = gr.Interface(PromptGenerator,
16
- inputs = "text",
17
- outputs = "text",
18
- theme = gr.themes.Soft(primary_hue="blue",secondary_hue="stone"),
19
- title = "AI Prompt Generator",
20
- examples = ["Landscape of","Pixar style little girl","A racecar driving","Fireflies at night"],
21
- css = ".gradio-container {background: url('file=boy 2.jpeg')}"
22
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
- app.launch()
 
1
+ from deepface import DeepFace
2
+ import pandas as pd
3
  import gradio as gr
4
+ import matplotlib.pyplot as plt
5
+ import tempfile
6
+ import os
7
 
8
+ def faceAnalyzer(image_path):
9
+ def analyze(image_path, attribute):
10
+ analysis = DeepFace.analyze(img_path=image_path, actions=['gender', 'race', 'emotion', 'age'])
11
+ df = pd.DataFrame(analysis[0])
12
+ plot = df[attribute].plot(kind='line', figsize=(9, 5), title=attribute).get_figure()
13
+ _, temp_filename = tempfile.mkstemp(suffix=".png")
14
+ plot.savefig(temp_filename, dpi=600)
15
+ plt.close(plot)
16
+ return temp_filename
17
 
18
+ attributes = ['gender', 'race', 'emotion']
19
+ images = [analyze(image_path, attribute) for attribute in attributes]
20
 
21
+ return [gr.Image(image) for attribute, image in zip(attributes, images)]
22
 
 
23
 
24
+ def faceAnalyzer2(image_path, attribute):
25
 
26
+ analysis = DeepFace.analyze(img_path=image_path, actions=['age', 'gender', 'race', 'emotion'])
27
+ # convert the resulting dictionary to a DataFrame
28
+ df = pd.DataFrame(analysis[0])
29
+
30
+ if attribute == "gender":
31
+ gender = df['gender'].plot(kind = 'line', figsize = (9, 5), title = 'Gender').get_figure()
32
+ return gender
33
+
34
+ elif attribute == "race":
35
+ race = df['race'].plot(kind = 'line', figsize = (9, 5), title = 'Race').get_figure()
36
+ return race
37
+
38
+ elif attribute == "emotion":
39
+ emotion = df['emotion'].plot(kind = 'line', figsize = (9, 5), title = 'Emotion').get_figure()
40
+ return emotion
41
+
42
+
43
+ app1 = gr.Interface(faceAnalyzer,
44
+ inputs=gr.Image(label="Upload Photo"),
45
+ outputs=[gr.Image(label="Gender Analysis"),
46
+ gr.Image(label="Race Analysis"),
47
+ gr.Image(label="Emotion Analysis")],
48
+ theme=gr.themes.Soft())
49
+
50
+ app2 = gr.Interface(faceAnalyzer2,
51
+ inputs=[gr.Image(label="Upload Photo"),gr.Radio(choices=["gender","race","emotion"],
52
+ value="gender",
53
+ label="Attributes",
54
+ info="Select an attribute")],
55
+ outputs=gr.Plot(label="Analysis Output"),
56
+ theme=gr.themes.Soft())
57
+
58
+ application = gr.TabbedInterface([app1,app2],["Full Analysis","Select Analysis"],theme=gr.themes.Soft())
59
+
60
+
61
+ application.launch()
62