-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.py
89 lines (73 loc) · 2.99 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Python 3 server example
from http.server import BaseHTTPRequestHandler, HTTPServer
import urllib.parse
import time
import os
import json
hostName = "0.0.0.0"
# hostName = "localhost"
serverPort = 6969
STABLE_DIFFUSION = True
if STABLE_DIFFUSION:
import stableDiffusion2
imggen = stableDiffusion2.theAlgo()
isWorking = False
class MyServer(BaseHTTPRequestHandler):
protocol_version: str = 'HTTP/1.1'
def do_GET(self):
global isWorking
if not isWorking:
try:
isWorking = True
if "ListImages" in self.path.split("/")[1]:
print("They are here!")
files = os.listdir("/opt/stableDiffusion")
arr = []
for file in files:
if file.endswith(".png"):
arr.append("http://coder.binary141.com/pics/" + file)
response = b'{"images": ' + bytes('"' + ','.join(arr) + '"', 'utf-8') + b'}'
self.send_response(200)
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header("Content-Length", len(response))
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(response)
self.close_connection = True
else:
prompt = self.path.split("/")[2]
decodedURL = urllib.parse.unquote(prompt)
if STABLE_DIFFUSION:
path = imggen.generate(decodedURL)
print(path)
response = b'{"data": ' + bytes('"'+path+'"', 'utf-8') + b'}'
else:
response = "Hello"
# print(webServer.client_address())
self.send_response(200)
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header("Content-Length", len(response))
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(response)
self.close_connection = True
print(self.client_address)
isWorking = False
except Exception as e:
print("The error was: \n", e)
self.send_error(500,"there was an error")
else:
self.send_error(500,"there was an error")
if __name__ == "__main__":
webServer = HTTPServer((hostName, serverPort), MyServer)
if STABLE_DIFFUSION:
path = imggen.generate("warmup")
print("Server started http://%s:%s" % (hostName, serverPort))
try:
webServer.serve_forever()
print('hi')
print(webServer.client_address())
except KeyboardInterrupt:
pass
webServer.server_close()
print("Server stopped.")