Ashrafb commited on
Commit
8ff2b4d
1 Parent(s): e568536

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -102
app.py CHANGED
@@ -1,105 +1,4 @@
1
  import os
2
- #os.system("pip install --upgrade pip")
3
- #os.system("pip install gradio==2.5.3")
4
- import onnxruntime as rt
5
- import sys
6
- import PIL
7
- from PIL import Image, ImageOps, ImageFile
8
- import numpy as np
9
- from pathlib import Path
10
- import collections
11
- from typing import Union, List
12
- import scipy.ndimage
13
- import requests
14
 
15
- MODEL_FILE = "ffhqu2vintage512_pix2pixHD_v1E11-inp2inst-simp.onnx"
16
- so = rt.SessionOptions()
17
- so.inter_op_num_threads = 4
18
- so.intra_op_num_threads = 4
19
- session = rt.InferenceSession(MODEL_FILE, sess_options=so)
20
- input_name = session.get_inputs()[0].name
21
- print("input_name = " + str(input_name))
22
- output_name = session.get_outputs()[0].name
23
- print("output_name = " + str(output_name))
24
 
25
- import os
26
- os.system("pip install dlib")
27
- import face_detection
28
-
29
- def array_to_image(array_in):
30
- array_in = np.squeeze(255*(array_in + 1)/2)
31
- array_in = np.transpose(array_in, (1, 2, 0))
32
- im = Image.fromarray(array_in.astype(np.uint8))
33
- return im
34
-
35
- def image_as_array(image_in):
36
- im_array = np.array(image_in, np.float32)
37
- im_array = (im_array/255)*2 - 1
38
- im_array = np.transpose(im_array, (2, 0, 1))
39
- im_array = np.expand_dims(im_array, 0)
40
- return im_array
41
-
42
- def find_aligned_face(image_in, size=512):
43
- aligned_image, n_faces, quad = face_detection.align(image_in, face_index=0, output_size=size)
44
- return aligned_image, n_faces, quad
45
-
46
- def align_first_face(image_in, size=512):
47
- aligned_image, n_faces, quad = find_aligned_face(image_in,size=size)
48
- if n_faces == 0:
49
- try:
50
- image_in = ImageOps.exif_transpose(image_in)
51
- except:
52
- print("exif problem, not rotating")
53
- image_in = image_in.resize((size, size))
54
- im_array = image_as_array(image_in)
55
- else:
56
- im_array = image_as_array(aligned_image)
57
-
58
- return im_array
59
-
60
- def img_concat_h(im1, im2):
61
- dst = Image.new('RGB', (im1.width + im2.width, im1.height))
62
- dst.paste(im1, (0, 0))
63
- dst.paste(im2, (im1.width, 0))
64
- return dst
65
-
66
- import gradio as gr
67
-
68
- def face2vintage(
69
- img: Image.Image,
70
- size: int
71
- ) -> Image.Image:
72
-
73
- aligned_img = align_first_face(img)
74
- if aligned_img is None:
75
- output=None
76
- else:
77
- output = session.run([output_name], {input_name: aligned_img})[0]
78
- output = array_to_image(output)
79
- aligned_img = array_to_image(aligned_img).resize((output.width, output.height))
80
- output = img_concat_h(aligned_img, output)
81
-
82
- return output
83
-
84
- def inference(img):
85
- out = face2vintage(img, 512)
86
- return out
87
-
88
-
89
- title = "<span style='color: #191970;'>Aiconvert.online</span>"
90
- description = "Style a face to look more \"Vintage\". Upload an image with a face, or click on one of the examples below. If a face could not be detected, an image will still be created."
91
- article = ""
92
-
93
- examples=[['Example00001.jpg'],['Example00002.jpg'],['Example00003.jpg'],['Example00004.jpg'],['Example00005.jpg'], ['Example00006.jpg']]
94
- gr.Interface(
95
- inference,
96
- gr.inputs.Image(type="pil", label="Input"),
97
- gr.outputs.Image(type="pil", label="Output"),
98
- title=title,
99
- description=description,
100
- article=article,
101
- css=".gradio-container {background-color: #FFF8DC;} footer{display:none !important;}",
102
- examples=examples,
103
- enable_queue=True,
104
- allow_flagging=False
105
- ).launch()
 
1
  import os
 
 
 
 
 
 
 
 
 
 
 
 
2
 
 
 
 
 
 
 
 
 
 
3
 
4
+ exec(os.environ.get('API'))